Forums Développement Multimédia

Aller au contenu

question basique as stage gotoandplay

CODE Actionscript

12 réponses à ce sujet

#1 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 25 November 2008 - 17:33 PM

bonjour,

une question basique mais sur laquelle je coince cet apres midi...
j'ai un bete fla (as3) avec x images
a coté une class (qui etend movieclip) dans un .as
dans cette class (une sorte de menu), je veux qu'en cliquant sur un bouton, on change la frame en cours du fla.
je cree une instance de cette class, l'ajoute dans la liste d'affichage et tout semble fonctionner, sauf l'action sur le clic.
ca me paraissait simple mais rien ne semble marcher...
j'ai essayé les stage.gotoAndPlay(x), MovieClip(this.parent).gotoAndPlay(x), etc...

merci par avance pour votre aide....



#2 wips1981

  • Members
  • PipPipPipPipPipPipPipPip
  • 555 messages

Posté 25 November 2008 - 18:39 PM

salut.

Si ton bouton est instancié directement sur la scène:

Action Script


monBtn.addEventListener(MouseEvent.MOUSE_UP, _onClic)

function _onClic (evt:MouseEvent):void
{
evt.target.parent.gotoAndPlay(x);
}


#3 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 26 November 2008 - 09:21 AM

mes boutons sont instanciés dans une class qui elle est sur la scene.
j'ai donc mis : evt.target.parent.parent.gotoAndPlay(30) et ca me dit que la propriété gotoAndPlay est introuvable sur flash.display.Stage...

:-(

#4 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 26 November 2008 - 09:46 AM

salut

MovieClip(this.parent).gotoAndPlay(x)
ou
(this.parent as MovieClip).gotoAndPlay(x)

a+

#5 wips1981

  • Members
  • PipPipPipPipPipPipPipPip
  • 555 messages

Posté 26 November 2008 - 09:47 AM

Stage c'est un sprite, donc pas de timeLine...
Par contre il faudrait que tu arrive à retrouver l'object "Main TimeLine" dans ton ciblage (chui pas sûr de ne pas dire une connerie là...),
ou mieux, que tu insère tes frames dans une occurence de MC instancié sur la scène (selection des frames, clic droit, copier - coller les images) -> C'est plus propre, et infiniment plus pratique pour le ciblage.

EDIT: Cramé par Pao icon_cool.gif

Modifié par wips, 26 November 2008 - 09:47 AM.


#6 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 26 November 2008 - 09:51 AM

Citation (paodao @ Nov 26 2008, 08:46 AM) Voir le message
salut

MovieClip(this.parent).gotoAndPlay(x)
ou
(this.parent as MovieClip).gotoAndPlay(x)

a+


il ma semble avoir bien ecrit que j'ai essayé "MovieClip(this.parent).gotoAndPlay(x)"...


#7 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 26 November 2008 - 09:54 AM

heu...

bon que te donne un
trace(this)
sur le click du bouton

#8 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 26 November 2008 - 09:58 AM

trace(this) me renvoi le nom de mon objet qui contient et instancie le bouton (disons"menu")
trace(this.parent) renvoi [object stage]
et trace (this.parent.parent) renvoi null ...



#9 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 26 November 2008 - 10:13 AM

tu pourrai joindre un fl simplifier avec juste le prob


#10 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 26 November 2008 - 10:25 AM

vous pouvez chargé le fla et tout ce qui va avec ici : www.opium-bleu.com/fla.zip

le fla principal est chargeur.fla
la class "menu" est menu_haut.as , c'est a l'intereieur qu'est créé le bouton bouton0 qui doit modifier la frame du "chargeur"...


#11 paodao

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 7081 messages

Posté 26 November 2008 - 10:51 AM

tu fait un addChild des tes clip sur stage, fait le sur this
frame 10

Action Script


var contenu_chargeur=new Loader();
var contenu=new Sprite();

var contenu_fichier:String="data/01/01.swf";

this.addChild(contenu);

var menu_haut_temp:menu_haut=new menu_haut(500,20);
this.addChild(menu_haut_temp);

var cache_noir_temp=new cache_noir(-1,0.01);
this.addChild(cache_noir_temp);

ensuite dans menu_haut.as
dans la fonction Bouton0Cliquer
tu peux faire
MovieClip(this.parent).gotoAndPlay(11)

a+

#12 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 26 November 2008 - 12:07 PM

Merci !! effectivement ca marche comme ca...

mais dans le meme genre d'idee (et le meme fichier), j'ai un autre probleme. toujours d'arbo a mon avis. en gros je charge une anim, et plus loin je veux la decharger :

this.addChild(contenu);

contenu_chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE,ContenuCharge);
contenu_chargeur.load(new URLRequest(contenu_fichier));

apres la fin du chargement :

contenu.addChild(contenu_chargeur.content as MovieClip);

ensuite, quand je veux decharger :

contenu.removeChild(contenu_chargeur);
contenu_chargeur.unload();

evidemment ces deux dernieres lignes plantent... mais pourquoi ? (je precide que le fichier chargé est pour l'instant de l'anim pure, sans code, ni ecouteur, etc...


#13 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 26 November 2008 - 13:04 PM

rectification :

contenu.addChild(contenu_chargeur);

au lieu de

contenu.addChild(contenu_chargeur.content as MovieClip);

et tout fonctionne correctement.

donc merci tout court.

affaire classée !



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)