You are on page 1of 6

Podstawy ActionScript 3.

Przykad 1 Sterowanie listw czasow


Otwrz nowy plik. Nie zmieniaj waciwoci dokumentu. Wstaw nowy symbol typu przycisk i
okrel jego wygld w klatkach W gr, Over, Down i Hit.

Umie przycisk na gwnej scenie i nazwij go button1_btn.

W klatce 10 wstaw klatk kluczow (F6) i usu z niej zawarto:

W klatce nr 1 i 10 otwrz panel Operacje i wstaw akcj stop();


W klatce nr 1 wstaw dodatkowo kod:
function przekierowanie(myevent:MouseEvent):void {
gotoAndPlay(10);
}
button1_btn.addEventListener(MouseEvent.CLICK, przekierowanie);
Przetestuj film (Ctrl+Enter). Nacinicie przycisku powinno nas przekierowa do pustej klatki
nr 10 i zatrzyma animacj w tej klatce.

Przykad 2 Przeciganie obiektw


Do tego wiczenia mona wykorzysta gotowy ju przycisk w stworzonym przed chwil pliku
bdzie to kontynuacja poprzedniego przykadu. Zaznacz klatk nr 10 i wstaw tam now
instancj przycisku z biblioteki. Nazwij wstawiony przycisk button2_btn.
W tej samej klatce otwrz panel Operacje i poniej akcji stop(); wpisz kod:

function startDragging(event:MouseEvent):void{
this.startDrag();
}
function stopDragging(event:MouseEvent):void{
this.stopDrag();
}
button2_btn.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
button2_btn.addEventListener(MouseEvent.CLICK, stopDragging);

W tym momencie trzymajc klawisz myszy mona go przenosi, a gdy klawisz zwolnisz
to obiekt pozostanie tam gdzie go zostawisz.

Przykad 3 Przemieszczanie klipu


1. Otwrz nowy plik. Narysuj koo i przekonwertuj je do symbolu klip (F8).

2. W oknie Waciwoci klipu w polu Nazwa Instancji wpisz ball_mc.


3. Otwrz okienko Operacji i wpisz kod:import flash.events.Event;
function ballMove(event:Event):void{
ball_mc.x++
}
stage.addEventListener(Event.ENTER_FRAME, ballMove);

Uruchom film (Ctrl+Enter)

Wprowadzimy teraz zmienn o nazwie speed i zmodyfikujmy kod:

import flash.events.Event;
var speed:Number = 5;
function ballMove(event:Event):void{
ball_mc.x += speed;
}
stage.addEventListener(Event.ENTER_FRAME, ballMove);

Przykad 4 Widoczno klipu


ActionScript jest jzykiem zorientowanym obiektowo. Moe zauwaye pewn rzecz...
Czsto w kodzie AS uywana jest kropka. Suy ona do adresowania symboli oraz do
okrelania waciwoci i metod. Jak zmieni waciwo klipu? To proste wiczenie to wyjani.
Bdziemy zmniejsza waciwo alpha (widoczno) klipu filmowego.
1. Utwrz nowy plik Flasha z domylnymi parametrami.
2. Narysuj koo i przekonwertuj je do klipu (F8). Nazwij instancj klipu nazw ball_mc.
3. Otwrz okienko Operacji i wpisz poniszy skrypt:

import flash.events.Event;
function alphaChange(event:Event):void{
ball_mc.alpha -= 0.01;
}
stage.addEventListener(Event.ENTER_FRAME, alphaChange);

Przetestuj animacj (CTRL + ENTER).


Jest to do prosta animacja, ktra po kadym przejciu klipu do nastpnej klatki zmniejsza o
0.01 parametr alpha tego konkretnego klipu.
Niestety, gdybymy chcieli, aby nasz klip pulsowa musimy ju bardzo skomplikowa skrypt:

import flash.events.Event;
var switchA:Boolean = true;
function alphaChange(event:Event):void{
if (ball_mc.alpha>0 && switchA == true){
ball_mc.alpha-=0.05;
if (ball_mc.alpha<=0){
switchA=false;
}
}
if (switchA==false){
if(ball_mc.alpha<1){
ball_mc.alpha+=0.05;
if(ball_mc.alpha>=1){
switchA=true;
}
}
}
}
stage.addEventListener(Event.ENTER_FRAME, alphaChange);

Zauwa, e klip szybciej zmienia swoj widoczno, gdy zmienilimy warto 0.01 na 0.05.
Waciwoci klipw to take wymienione ju wsprzdne x i y, a take width i height oraz
scaleX i scaleY (dziki nim moesz manipulowa wielkoci klipu).

Przykad 5 Poruszanie obiektem strzakami z klawiatury


Teraz obiekt key, ktry reaguje na naciskane klawisze klawiatury (najczciej wykorzystuje
si tu strzaki). Jeli bdziesz chcia zrobi gr we Flashu (np. apanie czego, biegajcym
stworkiem), to wtedy docenisz obiekt key. Obiekt ten reaguje na naciniecie jakiego
przycisku i wykonuje okrelon akcj.
1. Utwrz nowy film Flasha. Ustaw 60 kl/s.
2. Narysuj dowolny ksztat i przekonwertuj go w klip.
3. Nadaj instancji tego klipu nazw circle.
4. Otwrz okienko Operacji i wpisz:

function clipMove(event:KeyboardEvent):void{
if (event.keyCode==Keyboard.RIGHT) {
circle.x ++;
}
if (event.keyCode==Keyboard.LEFT) {
circle.x --;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, clipMove);

5. Ustaw klon w na rodku stou montaowego.


6. I wcinij Ctrl+Enter.
Dziaa to do prosto. Obiekt key sprawdza, czy przycisk zosta nacinity. Jeli tak si stao
zostaje wykonana akcja w nawiasach klamrowych.

Przykad 6 Poruszanie obiektem strzakami z klawiatury (kombinacja klawiszy)


Wykonanym teraz zblione wiczenie do poprzedniego, z tym, e wykorzystamy wszystkie
strzaki (na boki, do gry i w d oraz ich kombinacj. Klip bdzie take zmienia swoj
orientacj wzgldem kierunku ruchu oraz wraca na scen, jeli wyjdzie poza ni.
Utwrz animacj, ktr chcesz porusza, w formie klipu. Nazwij jego instancj po prostu
klip.
I wpisz w panel operacji:

import flash.events.Event;
var speed:Number = 10;
var hold_U:Boolean = false;
var hold_D:Boolean = false;
var hold_L:Boolean = false;
var hold_R:Boolean = false;
function keyRespond(event:KeyboardEvent):void{
switch(event.keyCode) {
case 37:
hold_L = true;

break;
case 38:
hold_U = true;
break;
case 39:
hold_R = true;
break;
case 40:
hold_D = true;
break;
}
}
// adding this new function to clear key states when released
function keyLetGo(event:KeyboardEvent):void
{
switch(event.keyCode) {
case 37:
hold_L = false;
break;
case 38:
hold_U = false;
break;
case 39:
hold_R = false;
break;
case 40:
hold_D = false;
break;
}
}
function clipMove(event:KeyboardEvent):void{
if (hold_L==true) {
klip.x -= speed;
klip.rotation = 270;
}
if (hold_R==true) {
klip.x += speed;
klip.rotation = 90;
}
if (hold_U==true) {
klip.y -= speed;
klip.rotation = 0;
}
if (hold_D==true) {
klip.y += speed;
klip.rotation = 180;
}
// move diagonally
if (hold_L==true && hold_U==true) {
klip.rotation = 315;
}
if (hold_R==true && hold_U==true) {
klip.rotation = 45;
}
if (hold_L==true && hold_D==true) {
klip.rotation = 225;
}
if (hold_R==true && hold_D==true) {
klip.rotation = 135;
}
// loop to opposite side of the area when the clip travels off-screen
if (klip.y<0) {
klip.y = 400;
}
if (klip.y>400) {
klip.y = 0;
}
if (klip.x<0) {
klip.x = 550;
}
if (klip.x>550) {
klip.x = 0;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyRespond);
stage.addEventListener(KeyboardEvent.KEY_UP, keyLetGo);
stage.addEventListener(KeyboardEvent.KEY_DOWN, clipMove);

You might also like