2012-10-23 1 views
0

Ceci est mon code aidez-moi s'il vous plaît c'est vraiment frustrant! J'ai un MovieClip dans ma bibliothèque et je l'ai ajouté avec AS3 à la scène. Cette partie était facile. Mais maintenant je veux contrôler ce MovieClip. Si introScene "introClass" Atteint la trame 120 alors je veux enlever ce MovieClip et le remplacer par un autre. Le problème est que l'instruction if ne fonctionne pas. J'ai aussi essayé getChildByName mais cela n'a pas fonctionné non plus.Pourquoi cela ne fonctionne-t-il pas? Flash As3, si l'enfant ajouté est au cadre quelque chose?

var introClass = new introScene; 
addChild(introClass); 
introClass.x = 640; 
introClass.y = 387; 

/* ** * ***INTRO-SCENE* ** * ***/

introClass.addEventListener(Event, introLoaded); 

function introLoaded(event):void{ 

    if(introClass == 120){ 
     trace("Frame Reached") 
    } 
} 

je tri ed ceci et cela ne fonctionne pas non plus :(

introClass.addEventListener(Event, introLoaded); 

function introLoaded (e:Event):void{ 

    if(MovieClip(introClass).currentFrame == 120){ 
     trace("120 complete") 
    } 
} 
+1

Vous avez besoin de plus de détails. Quelle est l'erreur que vous recevez? Une chose que je remarque tout de suite est qu'il vous manque '()' après l'instanciation de 'introScene'. Devrait être 'introClass = new introScene();' – BadFeelingAboutThis

+1

Aussi, en passant un objet d'affichage à votre fonction 'introLoaded', qui s'attend à un objet' Event' vraisemblablement – BadFeelingAboutThis

+0

Il n'y a pas d'erreur, il ne fait rien. J'ai ajouté introScene à la scène de la bibliothèque. Et mon but était si le symbole movieclip introScene atteignait l'image 120. Puis un autre écouteur sera activé. – user1492440

Répondre

0

Ceci est faux déclaration:

introClass.addEventListener(Event, introLoaded); 

Vous devez passer une chaîne à addEventListener. Le nom du type d'événement est converti en chaîne au moment de l'exécution, ce qui ajoute un écouteur d'événement à "flash.events.Event" ou quelque chose. Et votre objet n'a évidemment pas cet événement. Vous devez utiliser Event.ENTER_FRAME par exemple.

+0

y a-t-il un autre moyen? ou quelque chose de différent que ENTER_FRAME parce que c'est seulement bon pour les choses qui ont des chargeurs et des trucs pour que vous puissiez voir les progrès. – user1492440

+0

Avec ENTER_FRAME, le code fait exactement ce que vous voulez. Sinon, vous pouvez envoyer un événement personnalisé à l'image 120 'dispatchEvent (new Event (" bla "));' et l'écouter 'introClass.addEventListener (" bla ", introLoaded);'. –

+0

merci cela a fonctionné: D – user1492440

Questions connexes