Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-08-2008, 17:52   #1 (permalink)
tino
 
Benutzerbild von naturtrueb
 
Registriert seit: Mar 2005
Beiträge: 27
methodenaufruf aus anderer klasse

hej. ich verzweifle an einem für mich eigentlich einfach verständlichen problem

folgende dokumentenklasse:
PHP-Code:
package Classes{

    
import flash.display.MovieClip;
    
import Classes.Navi;
    
import Classes.Maincontainer;

    public class 
Admin extends MovieClip {

        public function 
Admin() {
            var 
nav:Navi = new Navi();
            
nav.name "navi";
            
addChild(nav);        
            
            var 
mc:Maincontainer = new Maincontainer();
            
addChild(mc);
        }
    }

Nun möchte ich aus dem mc (Maincontainer) eine methode aufrufen die sich in nav (Navi) befindet. Bsp: ich klicke im Maincontainer was an und daraufhin soll eine information an Navi gesendet werden die in irgendeiner art und weise genutzt wird.

so habe ich das derzeit versucht... komme aber da zu keinerlei erfolg:

PHP-Code:
package Classes{

    
import flash.display.MovieClip;
    
    public class 
Maincontainer extends MovieClip {

        public function 
Maincontainer() {
            
trace("Maincontainer placed");
            
                     
parent.MovieClip(getChildByName("navi")).setID();    
            
        }
    }

setID() ist in dem fall eine methode die sich in Navi befindet (public function setID():void...)

Irgendwas schein ich da grundlegend falsch verstanden zu haben...
versuche ich die metode von der dokumentenklasse direkt aufzurufen per getChildByName("navi")).setID(); geht es...aber so wie ich es brauche gehts nicht. vielen dank schon mal für eure hinweise
tino
__________________
www.buntbunt.de

Geändert von naturtrueb (31-08-2008 um 18:06 Uhr)
naturtrueb ist offline   Mit Zitat antworten
Alt 31-08-2008, 23:01   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich würde das etwa so lösen:
PHP-Code:
package Classes{

    
import flash.display.MovieClip;
    
import Classes.Navi;
    
import Classes.Maincontainer;

    public class 
Admin extends MovieClip {

        public function 
Admin() {
            var 
nav:Navi = new Navi();
            
nav.name "navi";
            
addChild(nav);        
            
            var 
mc:Maincontainer = new Maincontainer(nav);
            
addChild(mc);
        }
    }
}  

//in Maincontainer
package Classes{

    
import flash.display.MovieClip;
    
    public class 
Maincontainer extends MovieClip {

        public function 
Maincontainer(nav:Navi) {
            
trace("Maincontainer placed");
            
                     
nav.setID();  //wenn in Klasse Navi eine Methode setID existiert...  
            
        
}
    }

  Mit Zitat antworten
Alt 31-08-2008, 23:29   #3 (permalink)
tino
 
Benutzerbild von naturtrueb
 
Registriert seit: Mar 2005
Beiträge: 27
danke. die methode existiert. wie gesagt führe ich aus der Admin-klasse dieses aus: getChildByName("navi")).setID() geht es.

dein tipp führte zu dieser fehlermeldung:
1120: Zugriff auf eine nicht definierte Eigenschaft nav.


setzte ich ein parent. davor kommt dieses:
1119: Zugriff auf eine möglicherweise nicht definierte Eigenschaft nav über einen Verweis mit statischem Typ flash.displayisplayObjectContainer
__________________
www.buntbunt.de

Geändert von naturtrueb (31-08-2008 um 23:31 Uhr)
naturtrueb ist offline   Mit Zitat antworten
Alt 01-09-2008, 06:47   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
parent ist erst gesetzt, wenn die Instanz in der DisplayList hängt.
Omega Psi ist offline   Mit Zitat antworten
Alt 01-09-2008, 14:57   #5 (permalink)
tino
 
Benutzerbild von naturtrueb
 
Registriert seit: Mar 2005
Beiträge: 27
mach ich doch hiermit? :


PHP-Code:
    addChild(nav);        
            
            var 
mc:Maincontainer = new Maincontainer(nav);
            
addChild(mc); 
nav und mc sind beide zu sehen - also in der Dlist
__________________
www.buntbunt.de
naturtrueb ist offline   Mit Zitat antworten
Alt 01-09-2008, 15:04   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Es kommt aber auf den Zeitpunkt an. Du willst zu schnell drauf zugreifen.
Omega Psi ist offline   Mit Zitat antworten
Alt 01-09-2008, 16:37   #7 (permalink)
flashkonsole
 
Benutzerbild von Flashkonsole
 
Registriert seit: Sep 2003
Ort: Berlin
Beiträge: 59
ick würde es mit dispatchEvent(...) machen, so muss man nicht irgendwelche Referenzen in die Klasse hineinreichen.
Flashkonsole ist offline   Mit Zitat antworten
Alt 01-09-2008, 18:00   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Ist auch keine Aussage, die man so einfach machen kann. Hängt ganz vom Kontext ab.
Omega Psi ist offline   Mit Zitat antworten
Alt 02-09-2008, 13:23   #9 (permalink)
tino
 
Benutzerbild von naturtrueb
 
Registriert seit: Mar 2005
Beiträge: 27
das ich zu schnell drauf zugreifen will kann nicht sein. wie gesagt tu ich die funktion einfach eine ebene höher ausführen(nat. nachdem nav geaddet ist) geht es perfekt.

und da ich den maincontainer NACH der nav platziere muss die .setID() funktion aus der nav am start sein.

zu dispatchEvent - werde ich ausprobieren - wobei ich leider noch kein plan hab was das überhaupt tut .
__________________
www.buntbunt.de
naturtrueb ist offline   Mit Zitat antworten
Alt 02-09-2008, 13:47   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Im Konstruktor greifst du auf parent zu. Da ist parent nicht gesetzt.
Omega Psi ist offline   Mit Zitat antworten
Alt 02-09-2008, 16:14   #11 (permalink)
tino
 
Benutzerbild von naturtrueb
 
Registriert seit: Mar 2005
Beiträge: 27
aahh.. das klingt nachvollziehbar. danke dir für die erklärung!
__________________
www.buntbunt.de
naturtrueb ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele