Természetes elvárás, hogy actionscriptben is tudjunk a HTML típusúhoz hasonló linkeket készíteni. Ebben a tutoriálban megnézzük hogyan is kell megcsinálni.
Ezt fogjuk elkészíteni:
Nagyon egyszerű dolgunk van, mert az as3 biztosít nekünk erre egy külön utasítást: navigateToURL(). A referenciában ezt olvashatjuk róla: navigateToURL(request:URLRequest, window:String = null) :void. Tehát meg kell adnunk egy URLRequest típusú változót, és valamilyen stringet, illetve nem tér vissza semmivel a függvényünk, tehát egy eljárás. De mi is az az URLRequest? Ez az objektum végeredményben egy külső erőforrás helyt írja le. Az hogy milyen hálózati protokollokat (http, https, ftb, stb.) használhatunk oprendszer függő, tehát figyeljünk, mit használunk, mert elképzelhető, hogy egyes helyeken ez hibához vezet. Esetünkben ez nem probléma, mert http-t fogunk használni. Nézzünk is akkor egy példát.
//elérési út konstruktornak átadva
var url:URLRequest=new URLRequest("http://www.actionscript.hu/");
A konstruktor egy egyszerű stringet vár. Tehát akár ezt is megtehetjük:
var str:String="http://www.actionscript.hu/"; var url:URLRequest=new URLRequest(str);
Nem csak abszolút, hanem relatív eléréseket is megadhatunk, ill. nem muszáj a konstruktorban megadnunk az elérési utat.
var url:URLRequest = new URLRequest() url.url="blog/pic/dog.jpg"
Az alábbi kódrészletből jól látszik, hogy URLRequest osztálynak van egy public, string típusú „url” adattagja, amit az elérési utat tartalmazza.
Ezek után nézzük a navigateToURL-t működés közben:
var url:URLRequest=new URLRequest("http://www.actionscript.hu/");
navigateToURL(url,"_blank");
Semmi váratlan dolgot nem tapasztalunk. Egyetlen érdekes dolog van, a második string paraméterrel tudjuk megmondani, hogy a link hol nyíljon meg, adott esetben _blank (új ablakban). Négy lehetőség közül választhatunk: _self, _blank, _parent, _top.
Megadhatjuk az előbbi kódot így is:
//
navigateToURL(new URLRequest("http://www.actionscript.hu/"), "_blank");
Viszont ebben az esetben nem tudunk hivatkozni a későbbiekben az elérési utunkra. Ha mostani állapotában lefordítanánk a kódunkat semmi nem történne. Szükségünk van egy eseményre, aminek hatására lefut a navigateToURL. Ez az esemény mi esetünkben, egy gombkattintás lesz.
Hát első körben csináljunk egy gombot. Ehhez csináljunk egy új fla-t, majd keressük meg a Window menüben a Components és Components Inspector ablakokat. Components ablakból egyszerűen húzzuk a stagere a Button komponenst.
Ezután jelöljük ki, és a Components Inspector ablakban megjelenik néhány paraméter, minket csak a label érdekel, ez határozz meg, hogy milyen felirat jelenik meg a gombon. Megjegyzem, hogy az itt megtalálható összes paraméter actionscriptből is konfigurálható, és mi ezt az utat fogjuk választani a példánkban. Ha ezzel megvagyunk, van még egy fontos dolgunk, el kell látnunk egy egyedi azonosítóval a gombunkat, hogy később a kódból tudjunk rá hivatkozni.

Nem kell mást tennünk, mint kijelölni a gombot és a Properties panelen adni neki egy egyedi nevet, esetünkben ez a btn.
Ezek után nincs más dolgunk, mint hozzárendelni egy eseményt.
btn.addEventListener(MouseEvent.CLICK,navigate);
Most nem szeretnék kitérni a listenerekre, egy későbbi postban, majd részletesebben tárgyaljuk őket. Nekünk most ebből csak az a fontos, hogy a gombunkra kattintunk, az kivált egy eseményt, aminek hatására lefut a navigate függvény.
Mindezek ismeretében lássuk egyben a kódot:
btn.label="ActionScript.hu";
var url:URLRequest=new URLRequest("http://www.actionscript.hu/");
btn.addEventListener(MouseEvent.CLICK,navigate);
function navigate(evt:MouseEvent):void {
navigateToURL(url,"_blank");
}
Egyetlen egy újdonság tűnhet fel az 1. sorban. Itt egyszerűen csak beállítom a gomb feliratát, ha esetleg a Components Inspector-ban beállítottunk volna már valamilyen értéket a labelnek, akkor ez felüldefiniálja azt.
Ha nem framere szeretnénk írni ezt a kódot, hanem packagebe szeretnénk használni az itt megismert osztályokat, akkor itt találjuk őket: flash.net.navigateToURL; flash.net.URLRequest;
