i tried trial , error tracing strings understand program flow of actionscript(or similar language in general) no avail; couldn't understand @ point or maybe because didn't eat breakfast. please explain me why trace statements showed in output first?
here's code of first frame
import flash.events.mouseevent; import flash.events.event; trace("i'm in line 3!"); stage.addeventlistener(event.enter_frame, generateurls); imagethumb.invbutton.addeventlistener(mouseevent.mouse_over, showbar); imagethumb.invbutton.addeventlistener(mouseevent.mouse_out, hidebar); trace("i'm in line 8"); // generates image urls , inject them imageurls array var imageurls:array = new array(); function generateurls(e:event):void { trace("i'm inside generateurls function!"); var url:string = new string(); for(var i:int = 0; <= 31; i++) { url = new string('pokemon/img_' + i); imageurls.push(url + ".jpg"); trace(imageurls[i]); } stage.removeeventlistener(event.enter_frame, generateurls); } trace("i'm in line 24"); function showbar(evt:mouseevent):void { trace("i'm inside showbar function!"); imagethumb.bar.gotoandplay('over'); } function hidebar(evt:mouseevent):void { trace("i'm inside hidebar function!"); imagethumb.bar.gotoandplay('out'); } trace("i'm in line 34");
second frame:
trace("we're not in frame 1 anymore!");
last frame:
stop(); trace("stop!!!");
and output
i'm in line 3! i'm in line 8 i'm in line 24 i'm in line 34 i'm inside generateurls function! pokemon/img_0.jpg pokemon/img_1.jpg pokemon/img_2.jpg pokemon/img_3.jpg pokemon/img_4.jpg pokemon/img_5.jpg pokemon/img_6.jpg pokemon/img_7.jpg pokemon/img_8.jpg pokemon/img_9.jpg pokemon/img_10.jpg pokemon/img_11.jpg pokemon/img_12.jpg pokemon/img_13.jpg pokemon/img_14.jpg pokemon/img_15.jpg pokemon/img_16.jpg pokemon/img_17.jpg pokemon/img_18.jpg pokemon/img_19.jpg pokemon/img_20.jpg pokemon/img_21.jpg pokemon/img_22.jpg pokemon/img_23.jpg pokemon/img_24.jpg pokemon/img_25.jpg pokemon/img_26.jpg pokemon/img_27.jpg pokemon/img_28.jpg pokemon/img_29.jpg pokemon/img_30.jpg pokemon/img_31.jpg we're not in frame 1 anymore! stop!!!
what i'm trying trigger event when stage loaded; generates url of images , inject them array trace back.
it crucial me understand flow, don't want move forward without understanding this. thank you.
well hope can break down enough:
your program starts runs line 3 producing output:
i'm in line 3!
then gets following section:
stage.addeventlistener(event.enter_frame, generateurls); imagethumb.invbutton.addeventlistener(mouseevent.mouse_over, showbar); imagethumb.invbutton.addeventlistener(mouseevent.mouse_out, hidebar);
the important thing release here above code infact not trigger anything, instead register listener (some function have defined) executed when event occurs. example, first line stage.addeventlistener(event.enter_frame, generateurls); attaches event listener fire first frame entered , execute generateurls function.
then program interprets line 8 , executes it:
i'm in line 8
after defining generateurls function followed trace outputs:
i'm in line 24
after again defining functions (showbar, hidebar) followed trace statement resulting in the:
i'm in line 34
ok important thing release here have done registered event listeners listen events. however, none of events have been fired yet why haven't seen of trace calls execute of functions. because last line on frame 1 program fires event.enter_frame, have registered listen in turn calls generateurls function resulting in pokemon/img_xx.jpg output.
the rest self explanatory here if understood have said far.
hope helps.
Comments
Post a Comment