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

    Accadere a funzioni della classe principale

    Salve a tutti, ho due classi che uso come attributi della classe principale, come in questo schemino
    codice:
    package mio{
     public class Main{
      private var a : AAA;
      private var b : BBB;
      public function Main(){
       a = new AAA();
       b = new BBB();
      }
    
      public function qualcosa():void{
       trace("qualcosa");
      }
    
     }
    }
    codice:
    public class AAA{
     public function AAA(){
       stage.qualcosa();    //  non funziona
       parent.qualcosa();   //  non funziona
       _root.qualcosa();    //  non funziona
     }
    }

  2. #2
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Non funzionano perchè sono proprietà della Classe DisplayObject e non centrano nulla con la comunicazione tra Classi.

    In una struttura di questo tipo:

    ClassePrincipale > ClasseA > ClasseB

    Le Classi ereditano proprietà e metodi dalla ClassePrincipale ma da una Classe secondaria non puoi chiamare una funzione presente su un "livello" superiore (sarebbe come se il "figlio" comanda sul "padre") ma puoi sovrascrivere con "override" una funzione da una classe che estende un'altra classe (modificare o aggiungere proprietà e metodi).

    Codice PHP:
    // ClassePrincipale estensione della classe MovieClip:

    package 
    {
        
    import flash.display.MovieClip;

        public class 
    Main extends MovieClip
        
    {
            private var 
    classeA:ClasseA = new ClasseA();
            private var 
    classeB:ClasseB = new ClasseB();

            public function 
    Main()
            {
                
    trace("Main OK");
                
    classeA.cambiaValore();
                
    classeB.cambiaValore();
            }
        }

    Codice PHP:
    // ClasseA che contiene una funzione di tipo public (cambiaValore):

    package 
    {
        public class 
    ClasseA
        
    {
            public var 
    numero:Number;

            public function 
    ClasseA()
            {
                
    trace("ClasseA OK");
            }
            public function 
    cambiaValore():void
            
    {
                
    numero 10;
                
    trace(numero)
            }
        }

    Codice PHP:
    //ClasseB estensione della ClasseA con una funzione override:

    package 
    {
        public class 
    ClasseB extends ClasseA
        
    {
            public function 
    ClasseB()
            {
                
    trace("ClasseB OK");
            }
            
    override public function cambiaValore():void
            
    {
                
    numero 20;
                
    trace(numero);
            }
        }

    Come puoi vedere tutte le chiamate partono dalla classePrincipale ma la variabile "numero" dichiarata e valorizzata nella ClasseA viene ereditata dalla ClasseB come la funzione public "cambiaValore".
    Dalla classe main la chiamata alla funzione sulla ClasseB modifica il valore della variabile "numero" anche se questa è istanziata e valorizzata nella ClasseA.


    ciao

  3. #3
    Grazie per la risposta

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.