Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [AS3] problema con gotoAndStop

    Ciao a tutti,
    da poco (oggi) son passato alla CS4 e quindi ad ActionScript 3.

    Il mio problema è il seguente.

    All'interno di un filmato ho la seguente riga di codice:

    aaa.gotoAndStop(1);

    ... solo che mi dà il seguente errore:
    1119: Accesso a una proprietà non definita aaa mediante un riferimento con tipo statico flash.display:Stage.

    ho provato con
    _root.aaa.gotoAndStop(1);
    e con
    _level0.aaa.gotoAndStop(1);
    ... ma evidentemente è cambiato qualcosa e quindi non è più possibile fare così.

    Come posso risolvere?
    Grazie & Ciao!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Intanto dove si trova e cosa è "aaa"? Poi, lui dice che fai riferimento all'oggetto Stage (e questo è strano, al massimo ti starai riferendo a "root"). Hai già provato con this?

    this.aaa.gotoAndStop(1);

  3. #3
    Ciao, hai ragione: dato che stavo facendo un po' di prove ho sbagliato a copiare il messaggio di errore.
    L'oggetto aaa si trova nella root (in AS2 avrei chiamato _root.aaa.funzione()), mentre la funzione viene richiamata all'interno di un oggetto filmato. aaa è un altro oggetto filmato

    Questi i vari tentativi con i rispettivi messaggi di errore:

    aaa.gotoAndStop(1);
    >> 1120: Accesso alla proprietà non definita aaa.

    stage.aaa.gotoAndStop(1);
    >> 1119: Accesso a una proprietà non definita aaa mediante un riferimento con tipo statico flash.display:Stage.

    aaa.gotoAndStop(1);
    >> 1120: Accesso alla proprietà non definita aaa.

    this.aaa.gotoAndStop(1);
    >> Error #1010: Un termine risulta undefined e non ha proprietà.

    _level0.aaa.gotoAndStop(1);
    >> 1120: Accesso alla proprietà non definita _level0.

  4. #4
    Ho trovato la soluzione!!!!

    MovieClip(root).aaa.gotoAndStop(1);


    sfrugolando un po' in giro ho trovato questo link che mi è stato utile!
    http://www.enricoviola.it/blog/2009/...ctionscript-3/

    Grazie & Ciao!

  5. #5
    MovieClip(root).istanza_clip.x = 50;
    questo dimostra non avere capito un caiser
    di as3 puoi fare

    Codice PHP:
    MovieClip(istanza_clip).50;
    //oppure
    (istanza_clip as MovieClip).50
    La root in as3 è lo stage

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  6. #6
    Ovvero?
    Scusa l'ignoranza, ma dato che sono alle primissime armi con AS3 non ho ben capito...

    Se io sono all'interno di un movie_clip e devo "richiamare" un altro movie_clicp presente nella root, posso evirare di usare

    MovieClip(root).aaa.gotoAndStop(1);

    ... ma posso usare direttamente

    MovieClip(aaa_clip).gotoAndStop(1);
    //oppure
    (aaa_clip as MovieClip).gotoAndStop(1);


    ... senza usare riferimenti alla root??

    Grazie &

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da whisher
    questo dimostra non avere capito un caiser
    di as3 puoi fare

    Codice PHP:
    MovieClip(istanza_clip).50;
    //oppure
    (istanza_clip as MovieClip).50
    La root in as3 è lo stage

    Ma no dai, il workaround che ha indicato va bene, ti dice solo che non puoi accedere direttamente a root ma che lo devi ritrasformare in MovieClip, poichè per tutti gli oggetti visuali la proprietà root restituisce un DisplayObject e non un MovieClip (come sarebbe più corretto che fosse, secondo me, ma tant'è e così ce lo teniamo).
    Perciò lui dice che quando devi richiamare un clip che si trova su root da un qualsiasi altro clip e non dalla timeline principale, devi fare in modo che root venga visto come un MovieClip, che poi lo richiede così perchè MovieClip è l'unica classe visuale dichiarata come dinamica ed è quindi l'unica che può accettare variabili create in runtime.

    Ancora una precisazione, in realtà root e stage non coincidono. Stage è la classe di visualizzazione principale che contiene al suo interno un solo child (solitamente) che è appunto la classe della timeline principale inquadrata nel codice come root.

  8. #8

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.