Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    [AS3] Error #1009: Impossibile accedere

    ciao a tutti,

    ho una clip con istanza mc1 sullo stage

    poi ho questo codice

    codice:
    package action{
    	
    	import flash.display.*;
    	import flash.events.*;
    	import caurina.transitions.*; 
    	
    	public class MenuMove extends MovieClip {
    
    		private var mc1:MovieClip = new MovieClip();
    		
    		public function MenuMove(){
    			centra();
    			
    		}	//fine funzione di classe
    		
    		private function centra(){
    			
    			mc1.x=stage.stageWidth/2-mc1.width/2;
    			mc1.y=stage.stageHeight/2-mc1.height/2;
    		}
    		
    	}	// chiusura classe
    	
    }	// chiusura pacchetto
    nel fla
    codice:
    import action.MenuMove; 
    var classe:MenuMove = new MenuMove(); 
    addChild(classe);

    non capisco perchè ricevoquesto errore

    codice:
    TypeError: Error #1009: Impossibile accedere a una proprietà o a un metodo di un riferimento oggetto null.
    	at actionlab::MenuMove/centra()
    	at actionlab::MenuMove()
    	at home_fla::MainTimeline/frame1()

    grazie

  2. #2
    Quando richiami il Metodo centra la tua Istanza classe non si trova ancora sullo Stage, quindi al suo interno stage è null.

    Inoltre la Proprietà mc1 interna alla Classe MenuMove non è la stessa cosa dell'Istanza chiamata mc1 che hai posizionato in Flash.

    Dovresti:[list=1][*]Assicurarti di chiamare il Metodo centra solo dopo aver posizionato un'Istanza di questa Classe sullo Stage.[*]Riferire la tua variabile interna al MovieClip che sio trova già sullo Stage.[/list=1]

    Quindi il tuo codice deve diventare così:
    Codice PHP:
    package action{
        
        
    import flash.display.*;
        
    import flash.events.*;
        
    import caurina.transitions.*; 
        
        public class 
    MenuMove extends MovieClip {

            private var 
    mc1:MovieClip = new MovieClip();
            
            public function 
    MenuMove(){
                
    this.addEventListener(Event.ADDED_TO_STAGEcentra); /// solo quando ho lo Stage

                
            
    }    //fine funzione di classe
            
            
    private function centra(e:Event null){ /// riceve un parametro, che è l'evento
                
    mc1=this.parent.getChildByName('mc1') as MovieClip/// riferisce la variabile mc1 al Movieclip già esistente
                
    mc1.x=stage.stageWidth/2-mc1.width/2;
                
    mc1.y=stage.stageHeight/2-mc1.height/2;
            }
            
        }    
    // chiusura classe
        
    }    // chiusura pacchetto 
    Buon lavoro.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    grazie mille

    ho ancora un "piccolo" problema

    disegno una clip contenitore al suo interno disegno un'altra clip ma non capisco perchè la clip che disegno all'interno non prende la posizione del suo contenitore ma si posiziona e x=0e y= 0 rispetto allo stage...

    codice:
    		private function DisegnaMenu(nMenu,colore,testo) {
    			var LarghezzaMenu = (spazioMax-DimLogo)/nMenu;
    			var TotIngombro = LarghezzaMenu*nMenu;
    			var DimStageWidth = stage.stageWidth;
    			var CentraMenu  = (DimStageWidth-TotIngombro)/2;
    			// Creo la clip per contenere il menu
    			var contenitoreMenu:MovieClip = new MovieClip();
    			contenitoreMenu.graphics.lineStyle (5,0xFFFFFF);
    			contenitoreMenu.graphics.drawRect(0,stage.stageHeight/2-this.height/2,TotIngombro, AltezzaMenu);
    			addChild(contenitoreMenu)
    			
    			//Definisco il rettangolo
    			var rettangolo:Shape = new Shape();
    			rettangolo.graphics.lineStyle (1,colore);
    			rettangolo.graphics.beginFill(colore);
    			rettangolo.graphics.drawRect(0,0,LarghezzaMenu, AltezzaMenu);
    			contenitoreMenu.addChild(rettangolo);
    			
    		}
    quello che vorrei fare io è questo

    una clip contenitore ad esempio larga 800 pixel e al suo interno per esempio 6 clip
    quindi devo dividere la larghezza della clip contenitore per il numero di clip in modo da trovare la larghezza di ogni singola clip e poi aggiungere una di fianco all'altra.

    adesso stavo provando a metterne una ma la clip interna sembra disinteressarsi della clip contenitore e si posiziona in base allo stage!


    perchè!!


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.