Einzelnen Beitrag anzeigen
Alt 26-02-2010, 14:51   #1 (permalink)
Mando
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 85
Zugriff auf eine Funktion einer geladenen swf

Tag zusammen,

ich verusche nun seit mehreren Stunden auf eine Funktionen einer geladenen swf zuzugreifen...dabei hab ich mich an folgende Tutorials orientiert.
Sobald eine externe swf geladen worden ist (eine bestimmt swf), bekommt der Hauptfilm ne kleine Meldung mit Hilfe eines Events ...(Link 1)..darauf hin versuche ich dann auf eine Funktion des geladenen Swf aufzurufen ...(Link 2)

Aus externer SWF Funktionen im Hauptfilm aufrufen (AS3) | Beautify Code Blog

Auf MovieClips & Funktionen von externen SWFs zugreifen | Beautify Code Blog

ich bekomme aber immer wieder diese Fehlermeldung
PHP-Code:

TypeError
Error #1006: meineFunktion ist keine Funktion.
    
at MethodInfo-363()
    
at flash.events::EventDispatcher/dispatchEventFunction()
    
at flash.events::EventDispatcher/dispatchEvent()
    
at MethodInfo-69() 
die kommunikation von der externen Swf auf den Hauptfilm geht...sprich dass mit dem Event funktionniert es komm nur nicht von dem Hauptfilm auf die Funktions der externen swf.
Wenn ich das richtig verstehe kommt er an die Funktion nicht dran...ich versuch die ganze Zeit schon irgendwie ne Lösung zu finden...steht aber glaub vor einer Sackgase...


Das ganze ist so aufgebaut.

Ich habe im Hautpfilm ein Mc namens contentswf in den wird die swf geladen....

PHP-Code:

var loadit = new Loader();
loadit.load(new URLRequest("underpages/home.swf"));//laden den Home Film
contentswf.addChild(loadit);

function 
mousedrueber_klick(evt:MouseEvent):void
{

evt.currentTarget.addEventListener(Event.ENTER_FRAME,prufe);//Enter_Frame der prüft ob der MC alpha 0 oder alpha 1 ist
                                                            //demnach entscheide ich dann was ich mache

function prufe(e:Event):void//function des Enter_Frame
{      
    
    if(
contentswf.alpha == 0){ // wenn der contentswf = alpha 0 ist ladet er einen Film
                            
                    
        
loadit.load(new URLRequest("underpages/"+e.currentTarget.name+".swf"));//laden den neuen Film
        
                    
        
loadit.contentLoaderInfo.addEventListener(Event.COMPLETEende);//Complete Ereignis
                    
        
e.currentTarget.removeEventListener(Event.ENTER_FRAMEprufe);//löschen des Enter_Frame
                            
        
function ende(evt:Event)//funktion Complete
        
{
            
contentswf.alpha 1;
                        
            
contentswf.addEventListener("start"buttonaktiv);//hier horche ich auf das Event der geladenen swf
                                                              //und führe dann die Funktion aus
            
function buttonaktiv(evt:Event):void
            
{        
                
trace("was geht ab");
                
                
contentswf.meineFunktion();//die Funktion soll später von einenm Buttons gesteuert werden
            
}
                                
            
removeEventListener(Event.COMPLETEende);
                                
        }
    }
    if(
contentswf.alpha == 1){ //wenn content swf alpha = 1 setzt er ihn auf null
        
contentswf.alpha 0;
     }

und hier den Code der geladenen swf
PHP-Code:

var closeEvent:Event = new Event("start"true);// Das Event das das sozusagen das Signal gibt
// dispatched
dispatchEvent(closeEvent);

    

    
    
}

////////////////////////////////////
////////////////////////////////////
////////////////////////////////////

//und hier die Funktion die Eigentlich ausgelöst werden soll
function meineFunktion():void
{
        
trace("hallo");
    
removeChild(galmovie);//hier wird einfach nur ein Mc gelöscht

Vllt kann mir jemand helfen...Dank schon mal...hoffe ich hab es gescheit erklärt

Gruss
Mando

Geändert von Mando (26-02-2010 um 14:58 Uhr)
Mando ist offline   Mit Zitat antworten