Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [AS3] errore su pulsante - Access of undefined property

    Io ho due pulsanti "dx1" "sx1" e voglio che cliccandoci sopra l'animazione si sposti su fotogrammi stabiliti.

    Codice PHP:
    var numero:Number 70;
    sx1.addEventListener(MouseEvent.CLICKOnclick); 
    function 
    Onclick(event:MouseEvent) { 
       
       if (
    numero=98){
           
    gotoAndPlay(83);
           
    numero=83;
       }
       if (
    numero=113){
           
    gotoAndPlay(93);
           
    numero=98;
       }
        
    }


    dx1.addEventListener(MouseEvent.CLICKclickHandler2); 
    function 
    clickHandler2 (event:MouseEvent) { 
       
       if (
    numero=83){
           
    gotoAndPlay(93);
           
    numero=93;
       }
       if (
    numero=93){
           
    gotoAndPlay(113);
           
    numero=113;
       }
        

    Non funziona e mi da questi errori:
    1120: Access of undefined property dx1.
    1120: Access of undefined property sx1.

    Dove ho sbagliato?
    Grazie in anticipo!!!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Se i due pulsanti si trovano fisicamente nello stesso frame dello script, rimane solo il fatto che non abbiano il nome istanza che dovrebbero avere.

  3. #3
    Li ho messi su due frame di due livelli diversi dividendo il codice e non mi da errore... appeno clicco sul pulsante di destra "dx1" mi passa al frame successivo (ed è ok) ma se ci riclicco non mi porta sull'altro frame che voglio..perchè?
    Cioè la variabile "numero" non assume il valore che gli ho dato e quindi al click di dopo l' if non fa nulla... devo impostare qualcosa nella variabile per fare in modo che cambi per tutta l'animazione? Grazie
    -------------
    Questo sul livello del pulsante sx1 ma su un frame precedente
    Codice PHP:
    var numero:Number 70
    -------------------
    Codice PHP:
    dx1.addEventListener(MouseEvent.CLICKclickHandler2); 
    function 
    clickHandler2 (event:MouseEvent) { 
        
       if (
    numero==70){
           
    numero=83;
           
    gotoAndPlay(83); 
       } 
       if (
    numero==83){
           
    numero=100;
           
    gotoAndPlay(85); 
       } 
         

    -------------------
    Codice PHP:
    sx1.addEventListener(MouseEvent.CLICKOnclick); 
    function 
    Onclick(event:MouseEvent) { 
        
       if (
    numero==98){ 
           
    numero=83
           
    gotoAndPlay(83); 
       } 
       if (
    numero==113){ 
           
    numero=98;
           
    gotoAndPlay(93); 
       } 
         

    ----------
    GRAZIE

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Non ho ben compreso la situazione ora, ma penso che il problema derivi dal fatto che fai riferimento a determinate variabili che "esistono" solo in determinati frame e andando avanti e indietro nell'animazione arrivi a dei punti in cui ancora non sono dichiarate e quindi generano un errore.

  5. #5
    OK, io ho visto su internet che se utilizzo varibili in livelli differenti dovrei dichiarare una varibile global (spero di nn sbagliarmi) e ho fatto in questo modo (ma mi da errore "Packages cannot be nested.":
    Codice PHP:
    package
    {
        public final class 
    variabiliglobali
        
    {
            public static var 
    numero:Number;
        }
    }

    variabiliglobali.numero 70
    Codice PHP:
    sx1.addEventListener(MouseEvent.CLICKOnclick); 
    function 
    Onclick(event:MouseEvent) { 
      
      
    tracevariabiliglobali.numero );
     
       if (
    numero==98){ 
           
    variabiliglobali.numero=83
           
    gotoAndPlay(83); 
       } 
       if (
    numero==113){ 
           
    variabiliglobali.numero=98;
           
    gotoAndPlay(93); 
       } 
         

    Codice PHP:
    dx1.addEventListener(MouseEvent.CLICKclickHandler2); 
    function 
    clickHandler2 (event:MouseEvent) { 
      
      
    tracevariabiliglobali.numero ); 
       
       if (
    numero==70){
           
    variabiliglobali.numero=98;
           
    gotoAndPlay(98); 
       } 
       if (
    numero==98){
           
    variabiliglobali.numero=113;
           
    gotoAndPlay(113); 
       } 
         


  6. #6
    Ho modificato ma mi da un altro errore "1131: Classes must not be nested." AIUTOOO
    In animazioneAS.as
    Codice PHP:
    package
    {
        
    import flash.display.MovieClip;
        public class 
    Main extends MovieClip
        
    {
           public final class 
    variabiliglobali <-----------
           {
            public static var 
    numero:Number;
           }
        }

    In animazione.fla
    Codice PHP:
    sx1.addEventListener(MouseEvent.CLICKOnclick); 
    function 
    Onclick(event:MouseEvent) { 
      
      
    tracevariabiliglobali.numero );
     
       if (
    numero==98){ 
           
    variabiliglobali.numero=83
           
    gotoAndPlay(83); 
       } 
       if (
    numero==113){ 
           
    variabiliglobali.numero=98;
           
    gotoAndPlay(93); 
       } 
         

    Codice PHP:
    dx1.addEventListener(MouseEvent.CLICKclickHandler2); 
    function 
    clickHandler2 (event:MouseEvent) { 
      
      
    tracevariabiliglobali.numero ); 
       
       if (
    numero==70){
           
    variabiliglobali.numero=98;
           
    gotoAndPlay(98); 
       } 
       if (
    numero==98){
           
    variabiliglobali.numero=113;
           
    gotoAndPlay(113); 
       } 
         


  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Stai facendo molta confusione con il codice delle classi.
    Le classi vanno scritte all'interno di un file .as che abbia lo stesso nome della classe, altrimenti ottieni degli errori. Inoltre il fatto che ti dia quell'errore è indice del fatto che probabilmente stai scrivendo il codice di due classi diverse dentro a un unico fla.

    Il suggerimento che hai letto è corretto, ma per utilizzarlo hai bisogno di una classe preferibilmente statica da utilizzare come "collezione" per le variabili che non hanno bisogno di un riferimento preciso.

    Codice PHP:
    // class Collection - filename: Collection.as
    package {
        public class 
    Collection {
            public function 
    Collection () {
                throw (new 
    Error("Collection is a static class and should not be instantiated."));
            }
            public static var 
    numero:Number 10;
        }

    Nel fla troverai sempre la variabile numero attraverso Collection.numero.

  8. #8
    Ciao, grazie che mi stai aiutando.. ho inserito questo ma mi da cmq 3 errori:
    1046: Type was not found or was not a compile-time constant: MouseEvent.
    1046: Type was not found or was not a compile-time constant: MouseEvent.
    5000: The class 'Collection' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.


    in Collection.as associato al fla
    Codice PHP:
    // class Collection - filename: Collection.as 
    package 
        public class 
    Collection 
            public function 
    Collection () { 
                throw (new 
    Error("Collection is a static class and should not be instantiated.")); 
            } 
            public static var 
    numero:Number 70
        } 

    Codice PHP:
    dx1.addEventListener(MouseEvent.CLICKclickHandler2); 
    function 
    clickHandler2 (event:MouseEvent) {    <-----
      
      
    traceCollection.numero ); 
       
       if (
    Collection.numero==70){
           
    Collection.numero=98;
           
    gotoAndPlay(98); 
       } 
       if (
    Collection.numero==98){
           
    Collection.numero=113;
           
    gotoAndPlay(113); 
       } 
         

    Codice PHP:
    sx1.addEventListener(MouseEvent.CLICKOnclick); 
    function 
    Onclick(event:MouseEvent) {   <---------
      
      
    traceCollection.numero );
     
       if (
    Collection.numero==98){ 
           
    Collection.numero=83
           
    gotoAndPlay(83); 
       } 
       if (
    Collection.numero==113){ 
           
    Collection.numero=98;
           
    gotoAndPlay(93); 
       } 
         


  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Salvo che tu non abbia fatto qualcosa di totalmente diverso, gli errori che hai ottenuto non sono compatibili con la classe che ti ho postato.
    La classe è un file che si deve trovare nella stessa cartella del fla che lo sfrutta, i due errori sul mouseevent non possono esistere se il codice dei pulsanti si trova all'interno del fla, perchè si occupa lui stesso dell'incorporamento degli eventi e delle classi di base (cosa che non avviene nelle classi e quell'errore ci sarebbe se il codice fosse scritto in una classe).

  10. #10
    giuro ke l'ho inserito ugule da come l'ho scritto...i pezzi di codice rigurdo ai pulsati sono sui frame dei pulsanti stessi nel fla... perché succede questo?

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.