Question

J'ai essayé tâtonnement en traçant des chaînes pour que je puisse comprendre le déroulement du programme de actionscript (ou toute autre langue similaire en général), mais en vain; Je ne pouvais pas le comprendre à ce point ou peut-être parce que je n'ai pas mangé mon petit déjeuner. S'il vous plaît me expliquer pourquoi les déclarations de traces ont montré dans la première sortie?

Voici le code de la première image

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");

Deuxième Cadre:

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

Dernière image:

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

ET LA SORTIE

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!!!

Ce que je suis en train de faire est de déclencher un événement lorsque la scène est chargée; Il génère une URL d'images et de les injecter dans un tableau, puis remonter la filière.

Il me est très crucial pour comprendre le flux, je ne veux pas aller de l'avant sans comprendre cela. Merci.

Était-ce utile?

La solution

Eh bien, je l'espère, je peux décomposer assez pour vous:

Votre programme démarre alors il court ligne 3 produisant la sortie:

I'm in line 3!

Ensuite, il arrive à la section suivante:

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

La chose importante à libérer ici est que le code ci-dessus ne enfait rien de déclenchement, au lieu qu'il enregistrer un écouteur (une fonction que vous avez défini) à exécuter lorsque un événement se produit. Par exemple, la première ligne stage.addEventListener (Event.ENTER_FRAME, generateURLs); attache un écouteur d'événement qui se déclenche dès que la première image est entré et exécuter votre generateURLs fonction.

Ensuite, les interprète du programme ligne 8 et l'exécute:

I'm in line 8

Après que vous définissez generateURLs fonction suivie d'une autre trace que les sorties:

I'm in line 24

Après que vous définissez à nouveau certaines fonctions ( Showbar , hideBar ) suivie d'une autre instruction trace résultant en:

I'm in line 34

OK maintenant la chose importante à libérer ici est tout ce que vous avez fait est enregistré certains écouteurs d'événements pour écouter vos événements. Cependant, aucun de vos événements ont été tirés mais qui est la raison pour laquelle vous ne l'avez pas vu aucun des appels trace d'exécuter à partir de l'une de vos fonctions. Cependant parce que c'est la dernière ligne sur l'image 1 du programme tire maintenant Event.ENTER_FRAME , que vous êtes inscrit à écouter ce qui appelle votre generateURLs fonction résultante dans la pokemon / img_XX.jpg sortie.

Le reste est explicite ici si vous avez compris ce que je l'ai dit jusqu'à présent.

Hope this helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top