Pregunta

Intenté prueba y error rastreando cadenas para poder entender el flujo del programa de actionscript (o cualquier lenguaje similar en general) pero fue en vano;No pude entenderlo en este punto o tal vez porque no desayuné.Explíqueme primero por qué las declaraciones de seguimiento se muestran en la salida.

Aquí está el código del primer marco

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 the image URLs and inject them to the imageURLs array
var imageURLs:Array = new Array();
function generateURLs(e:Event):void {
    trace("I'm inside the generateURLs function!");
    var url:String = new String();
     for(var i:int = 0; i <= 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 the ShowBar function!");
    imageThumb.bar.gotoAndPlay('over');
}
function hideBar(evt:MouseEvent):void {
    trace("I'm inside the hideBar function!");
    imageThumb.bar.gotoAndPlay('out');
}

trace("I'm in line 34");

Segundo fotograma:

trace("We're not in Frame 1 anymore!");

Último fotograma:

stop();
trace("STOP!!!");

Y EL PRODUCTO

I'm in line 3!
I'm in line 8
I'm in line 24
I'm in line 34
I'm inside the 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!!!

Lo que estoy tratando de hacer es activar un evento cuando se carga el escenario;Genera algunas URL de imágenes y las inyecta en una matriz y luego las rastrea.

Es muy importante para mí comprender el flujo, no quiero avanzar sin comprender esto.Gracias.

¿Fue útil?

Solución

Bueno, espero poder desglosarlo lo suficiente:

Su programa se inicia y luego ejecuta la línea 3 produciendo el resultado:

I'm in line 3!
bosque Luego llega a la siguiente sección:

stage.addEventListener(Event.ENTER_FRAME, generateURLs);
imageThumb.invButton.addEventListener(MouseEvent.MOUSE_OVER, showBar);
imageThumb.invButton.addEventListener(MouseEvent.MOUSE_OUT, hideBar);

Lo importante para publicar aquí es que el código anterior de hecho no dispara nada, sino que registra un oyente (alguna función que usted ha definido) para ser ejecutado cuando ocurre un cierto evento. Por ejemplo, la primera línea stage.addEventListener (Event.ENTER_FRAME, generateURLs); adjunta un detector de eventos que se activará tan pronto como se ingrese el primer marco y ejecutará sus generateURLs función.

Luego, el programa interpreta la línea 8 y la ejecuta:

I'm in line 8

Después de eso, está definiendo la función generateURLs seguida de otro seguimiento que da como resultado:

I'm in line 24
Después de que usted está definiendo de nuevo algunas funciones ( showBar , hideBar ) seguido de otra declaración de rastreo resultante en la:

I'm in line 34
Bien Ahora bien, lo importante para publicar aquí es que todo lo que ha hecho es registrar algunos oyentes de eventos para escuchar sus eventos. Sin embargo, ninguno de sus eventos se ha disparado todavía, por lo que no ha visto ejecutar ninguna de las llamadas de seguimiento desde ninguna de sus funciones. Sin embargo, debido a que esta es la última línea en el fotograma 1, el programa ahora activa el Event.ENTER_FRAME , que se registró para escuchar, que a su vez llama a la función generateURLs , lo que da como resultado Salida de pokemon / img_XX.jpg .

El resto se explica por sí mismo desde aquí si entendiste lo que he dicho hasta ahora.

aña Espero que esto ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top