Macromedia Flash ActionScript 2.0 és ActionScript 3.0

Beépített osztályok

Az alábbi fejezetben az AS legfontosabb és leggyakrabban használt beépített osztályairól lesz szó.

MovieClip osztály

Az egész Flash programozásában az egyik leglényegesebb osztály a MovieClip. Ennek az osztálynak a segítségével tudunk animációkat létrehozni, és fontos, hogy ezeket az animációkat dinamikusan tudjuk, az AS3 keretein belül kezelni. A Flash korábbi verzióiban a MovieClip az AS3-beli általános DisplayObject osztálynak felelt meg olyan szempontból, hogy mindennek ez volt az ősosztálya, ami a Stage-en megjelent.

Ezzel szemben az AS3-ban a MovieClip kifejezetten mozgási- és alakzat-animációkat szolgál ki (Motion & Shape tween).

MovieClip-ek programozásakor az alábbi fő problémakörök lépnek fel:

Adott MovieClipeken belüli más MovieClipeket úgy érünk el, mintha azok a szülő propertyjei lennének, tehát pont szintaxissal. Lejátszani például így tudunk egy MovieClipet: szulo.gyerek.play()

Minden MovieClipnek van szélte (width), magassága (height) és méretezése (scaleX, scaleY).

Egy MovieClip lejátszásának a sebességét a frameRate property határozza meg, ami a másodpercenként filmkockák száma.

MovieClipeket a DisplayObject szülőosztályhoz hasonlóan, az addChild(), illetve addChildAt() metódusokkal tudunk egy szülőben elhelyezni a display listben.

TextField osztály (szövegek)

Szövegek megjelenítésére a TextField osztályt használjuk. Ennek leszármazottjai a TextArea (szövegdoboz) és a TextInput (input szövegdoboz).

Szövegdobozok tartalmát HTML formázással is megjeleníthetjük, s formázhatunk a TextFormat és a StyleSheet osztályok segítségével.

Egy szövegdoboz három típusú lehet:

Szöveg megjelenítése

A szövegdoboz szövegét a text propertyvel érhetjük el: myTextField.text = “Hello World”;

HTML megjelenítése

HTML-renderelést könnyen el lehet érni, csupán a htmlText propertyt kell használni a text helyett. myTextField.htmlText = “<h1>Hello World</h1>”;

Ilyenkor képeket is beleilleszthetünk a HTML-ben megszokott <img ... /> taggel.

Scrolling

Szövegek használata esetén gyakran előkerül a görgetés témája, hiszen szükség lehet a Stage-re nem ráférő szövegek megjelenítésére is. egy szövegdoboz scroll pozícióját a scrollH és scrollV attribútumokkal érhetjük el, melyek pixelként értelmezendőek. A maximális görgetés a maxScrollV és maxScrollH attribútumokkal érhetőek el.

Szöveg kijelölése és ennek kezelése

A selectable propertyvel szabályozható, hogy a szövegdoboz tartalma kijelölhető-e, ez alapból true. Programozói oldalról a setSelection() függvénnyel lehet a kijelölést megváltoztatni, ennek két paramétere a kijelölés elejének és végének indexe.

A kiválasztott szöveget a selectionBeginIndex és selectionEndIndex változókból kérdezhetjük le.

Input szövegmezők esetény a kurzor pozícióját a caretIndex property adja meg.

Input szűrése

A szövegmezőket jelszó típusúvá lehet tenni a displayAsPassword propertyvel, valamint karakter alapon szűrni a restrict paraméterrel, ami egy karaktersorozatot vár, melyben a kötőjel intervallumot jelöl.

Szöveg formázása

A szövegmező pár formázási tulajdonsága (pl. textColor, thickness, textHeight, etc.) közvetlenül elérhető, de a részletesebb formázásokhoz a TextFormat osztály használata javasolt.

Miután létrehoztunk egy adott TextFormat objektumot, a TextField setTextFormat() metódusával tudjuk azt a szövegdobozra alkalmazni, aminek első paramétere a TextFormat objektum, második és harmadik - opcionális paramétere az, hogy mettől meddig legyen érvényes az adott formázás.

Stíluslapok használata

Lehetőség van HTML szövegek CSS-es formázására is. Ezze a StyleSheet osztály való. Ez olyan dinamikus osztály, amihez az adott CSS osztályokat tudjuk propertyként megadni, majd azoknak tulajdonságait szintén azok propertyjeként, pl:

var style:StyleSheet = new StyleSheet();
var styleObj:Object = new Object();
styleObj.fontSize = "bold";
styleObj.color = "#FF0000";
style.setStyle(".darkRed", styleObj);
var tf:TextField = new TextField();
tf.styleSheet = style;
tf.htmlText = "<span class = 'darkRed'>Red</span> apple";

CSS-es TextField-ek alapból nem szerkeszthetőek user-oldalról!

Kézzelírt CSS beolvasására a parseCSS() metódussal van lehetőségünk.

Filter osztály

Az AS3 egyik nagy újdonsága a megjelenítés terén a szűrők megjelenése. A szűrők által a grafikák megjelenése sokkal hihetőbb és nagyobb vizuális élményt nyújt. Például egy gyorsan mozgó tárgynál zavaró lehet, ha túlságosan éles, ekkor a mozgási irány szerinti elmosás realisztikusabbá teheti az animációt.

Egy DisplayObject szűrőit a filters változóval érhetjük el.

A beépített szűrőosztályok:

Video osztály

Az AS3 lehetőséget ad videó megjelenítésére is. Ez lehet egy lokális fájl, egy URL-en található fájl, streaming fájl vagy akár a webkamera képe is.

Videó megjelenítéséhez a következő lépések szükségesek:

A videó lejátszását a következő módokon befolyásolhatjunk:

Camera osztály

Lehetőségünk van webkamera képét mint videóforrást használni, ezt visszaadja a Camera osztály getCamera() metódusa, melyet az attachCamera() metódussal csatolhatunk a Video objektumokhoz.

Sound osztály

Az AS3 egyik beépített osztálya a Sound, mellyel hangokat kezelhetünk.

Lehetőség van külső hangfájl betöltésére egy URLRequest objektum segítségével:

  var s:Sound = new Sound(new URLRequest("click.mp3"));

Néhány fontos propertyje és metódusa: