. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .
 
 
SEGÉDLETEK ActionScript

Egyszerű Debug konzol online tesztelésre
  feltöltve: 2004.01.06 | szerző: zsoltt | olvasva: 6554 alkalommal

 

Bizony nagyon sokszor olvastam itt a fórumon, hogy "lokálisan megy, de feltéve egy webszerverre már nem. Miért?" Ebben a dologban szeretnék segíteni egy nagyon egyszerű kis alkalmazás elkészítésével. Nevezzük nagyképüen Debug konzolnak :)

A konzolt egyszer kell megcsinálnunk, és bármely munkánkban hasznos társunk lehet, amikor nem tudunk igazán tesztelni. Mi nem megy? Megkaptam én azt a változót? Hoppá olyankor hivatkozok valamire amikor az még nem töltődött le? Hibás az xml amit kapok, vagy talán nem is kapok? Idétlen dolgok jönnek a szerverről? Sorolhatnám még, de úgy is tudja mindenki :) Nem lesz más dolgunk ezentúl, csak ezt a saját kozolt használni pont ugyanúgy, mintha a trace utasítást adnánk ki. A konzol egy önálló flash movie, ami egy browser ablakban folyamatosan futhat a háttérben.

Az egész tudomány lelke a LocalConnection() osztály. A LocalConnection() mint neve is mutatja arra való, hogy a lokális gépen futó x darab Flash movie tudjon egymással kommunikálni. Playerben-browserben-exeként, mindegy. A feladat két részből áll. Elkészíteni a konzolt, és írni egy picike kis kódot a meghívó múvinkba (main).

1. A Tracer :

Először csináljuk meg a konzolt (tracer). Nyissunk egy új movie-t, állítsuk be 500*300 as méretüre.(frameRate egyéni izlés szerint) Tegyünk bele egy dinamikus textFieldet ami multiline, van háttere+kerete, és selectable. Rendeljünk hozzá egy scrollBar komponenst. A textField neve legyen "field", a scrollBar-é legyen "sc". (Ne felejtsük el a targetTextField-et beállítani "field" - re) Állítsuk be akkorára őket, hogy pont kitöltsék a movie területét. A következő scriptet pedig szépen az első frame-re írjuk. Nem akarom túlmagyarázni, mivel 9 sor az egész(zárójelestül). Annyi a lényeg hogy egy függvény kiüríti a textFieldet (clear), egy pedig appendeli az új sort (draw). A kód végén kapcsolódunk a LocalConnection-nel.

A Tracer ActionScriptje :

//Létrehozunk egy LocalConnection objektumot.
lc = new LocalConnection();
//Definiáljuk az ő függvényeit, amiket később bármikor meghívhatunk bármelyik Flash movieból.
lc.clear = function () {
//Itt a textField kiürítése történik. Teszünk bele valamit, hogy lássuk lefutott-e a függvény.
     field.text = "Clear All"+newline+"-------------------------------------------------------------------------";
}

lc.draw = function (str) {
      //Rajzolunk. Először is a már meglevő szövegünkhöz hozzáadunk egy új sort,
      //majd amit ki akarunk iratni, és végül egy vonalat.(csak az átláthatóság miatt)
     field.text += newline+str+newline+"----------------------------------------------------------------------";
     //Ezután már csak a scrollBár objektumnak kell szólni, hogy scrollozzon legalulra.
     sc.setScrollPosition(field.maxscroll)
}
//A LocalConnection objektumunkat beregisztráljuk tracer néven. Más Flash movie(k)ból ezen a néven fogjuk elérni kicsiny alkalmazásunkat.
lc.connect("tracer");

2. Main movie:

A debugolandó flash mozink. Akármelyik mozinkba beilleszthetjük ezt a picike kis kódot. Lényege, hogy létrehozzuk a LocalConnection objektumot, és az ő "send" metódusát használva elérjük a tracer egyes függvényeit(clear,draw). Az "lcSender" függvényünk megfigyelhetően úgy fog viselkedni mint a trace utasítás egyébként. Érdemes a _root -ra tenni ezt a kódot, és akkor bárhonnan könnyen tudunk üzenni a tracernek. Pl : _root.lcSender("ezt írd ki");

A meghívó Flash movie (main) ActionScripje :

//Létrehozunk egy LocalConnection objektumot.
lc = new LocalConnection();
//Lehet hogy tracerünk már régebb óta fut, ezért meghívjuk a clear metódusát, hogy törölje a régi bejegyzéseket.
lc.send("tracer","clear");
     //Mindíg ezt a függvényt hívjuk meg ha valamit ki akarunk tracelni. Paraméter az a string amit ki      akarunk írni.
function lcSender (srt) {
      //Itt a protokolnak megfelelően használjuk a send metódust.(ez a LocalConnection saját      metódusa) Az első paraméter a kapcsolat neve, a második a függvény neve, a harmadik pedig az      amit át szeretnénk adni.
     lc.send("tracer","draw",srt);
}
//Íme egy példa a küldésre.
lcSender("Start");
//Majd még egy, hogy látványosabb legyen.
for (var i = 0;i<20;i++) {
     lcSender(i);
}

És akkor a végén egy példa. A felső flash movieból üzenünk a tracernek.

Tracer :

Remélem hasznos segítőtárs tud lenni ez a kis cucc. Be kell vallanom, azért vártam ilyen sokáig a segédlet megírásával, mert bíztam benne hogy a Flash 7 ben már lesz normális futásidőben használható konzol (pl Java), de végülis nem lett. Így van a dolognak létjogosultsága. Hajrá mindenki, és "Flashre fel !" :)

 
 
 

© Devnet.hu. A segédletek semmilyen formában nem másolhatók, publikálhatók a Devnet.hu és a szerzők közös írásos engedélye nélkül.
 
. .. : Swf.hu 1.0 archívum : Swf.hu főoldal >>> : .. .