| | #1 (Permalink) |
| Neuer User Registriert seit: Jan 2009
Beiträge: 53
| 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: 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: PHP-Code: Gruss Mando Geändert von Mando (26-02-2010 um 13:58 Uhr) |
| | |
| | #4 (Permalink) |
| lebt in stereo Registriert seit: Mar 2008 Ort: karlsruhe
Beiträge: 1.073
|
achso, haha. ich sehe, was dein fehler ist. schau mal:ActionScript:
Quelle hier wird ein clip namens "_swfContent" erstellt, der sozusagen deine swf ist, weil er mit dem CONTENT des loader-objekts referenziert wird. du hingegen addest den loader lediglich in einem clip und müsstest, wenn du deinen code nicht ändern willst, das ganze so ansprechen: ActionScript:
ist natürlich super-uncool, deswegen versuch einfach, mein script-snippet zu benutzen.. Geändert von figure8 (26-02-2010 um 15:29 Uhr) |
| | |
| | #5 (Permalink) |
| Neuer User Registriert seit: Jan 2009
Beiträge: 53
|
ja..hab auch schon überlegt dein script-snippet zu nehmen...müsste das ganze dann halt en weng anpassen da bei mir ja beim klick auf einen button immer ein neues Film eingeladen wird....wollt aber erst mal schauen ob ich es si hinbekomme....
|
| | |
| | #6 (Permalink) | |
| Neuer User Registriert seit: Jan 2009
Beiträge: 53
| Zitat:
habs grad versucht ...geht leider nicht Code: 1061: Aufruf für eine möglicherweise nicht definierte Methode meineFunktion über einen Verweis mit statischem Typ flash.display:DisplayObject. | |
| | |
| | #7 (Permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 14.805
|
__________________ die ultimative antwort auf alle programmierfragen: der debugger! - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #8 (Permalink) |
| lebt in stereo Registriert seit: Mar 2008 Ort: karlsruhe
Beiträge: 1.073
|
aber dein script ist eh total wüst, du kannst nicht wild irgendwelche funktionen verschachteln, verschiedene events irgendwo registrieren und hoffen, dass zur richtigen zeit die richtigen daten / methoden zur verfügung stehen wegen multiple-swf loading: click (en)! aber falls du nicht so viel verändern willst bei dir, wirst du nicht drumrum kommen, da ordnung reinzubringen. // erste swf laden, eventlistener registrieren // btn-eventlistener registrieren // beim click auf einen button aktuelle swf runterschmeißen von der bühne (NICHT alpha=0) // neue swf laden (würde ich anders machen, siehe englischen artikel) // neue swf adden, dann funktion ausführen momentan weißt du garnicht, was genau dein loader gerade drin hat, es kann ja sein, dass die alte noch garnicht geladen war, als du gedrückt hast. falls du immernoch nicht weiterkommst, einfach bescheidgeben und am besten die fla's hochladen oder den gesamten code zeigen. |
| | |
| | #9 (Permalink) |
| Neuer User Registriert seit: Apr 2004 Ort: Kalifornien
Beiträge: 234
|
Ich verstehe nicht, warum du solch ein kompliziertes Script machst. Dies funktioniert. var loadit = new Loader(); loadit.load (new URLRequest("underpages/home.swf")); contentswf.addChild (loadit); loadit.contentLoaderInfo.addEventListener (Event.COMPLETE, ende); function ende (evt:Event):void { trace("ENDE"); var l:Object = evt.currentTarget.content; l.meineFunktion (); }
__________________ Es war schon immer etwas teurer, einen guten Flash Film zu machen. www.flashscript.biz |
| | |
| | #10 (Permalink) |
| Neuer User Registriert seit: Jan 2009
Beiträge: 53
| cancerinform ich hab ne leere datei genommen und das von dir ausprobiert..und es geht einwandfrei nur wenn ich es in mein script einbaue eben nicht... kommt immer diese Fehlermeldung Code: ArgumentError: Error #2025: Das angegebene DisplayObject muss ein untergeordnetes Element des Aufrufers sein. at flash.display::DisplayObjectContainer/removeChild() at gallery_fla::MainTimeline/testas() at MethodInfo-363() |
| | |
| | #11 (Permalink) |
| Neuer User Registriert seit: Apr 2004 Ort: Kalifornien
Beiträge: 234
|
Dein Problem liegt vermutlich hier: removeChild(galmovie); Ich wuerde den Movie mal alleine ausprobieren mit dieser Zeile nur und das klaeren. Ich weiss nicht wo galmovie liegt oder was das ist.
__________________ Es war schon immer etwas teurer, einen guten Flash Film zu machen. www.flashscript.biz |
| | |
| | #12 (Permalink) |
| Neuer User Registriert seit: Jan 2009
Beiträge: 53
|
galmovie liegt in der externen swf...also die die in dem Hauptfilm gealden wird... habs grad mal ausgeklammert und es funktioniert....aber nur so lange ich das Event weg lassen.... Code:
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");
index.closeas.alpha = 1;
var l:Object = evt.currentTarget.content;
l.testas();
}
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich. at MethodInfo-363() at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at MethodInfo-70() |
| | |
| | #13 (Permalink) |
| Neuer User Registriert seit: Apr 2004 Ort: Kalifornien
Beiträge: 234
|
Dann teste jetzt deinen geladenen Movie alleine mit nur einer Zeile removeChild(galmovie); und finde den richtigen path, um galmovie zu entfernen. Uebrigens brauchst du keine Eventdispatcher in dem geladenen Movie, da der COMPLETE Event in Verbindung mit dem Loader Object nur dann getriggert wird, wenn der Movie geladen ist und daher der Event ausreicht.
__________________ Es war schon immer etwas teurer, einen guten Flash Film zu machen. www.flashscript.biz Geändert von cancerinform (26-02-2010 um 17:25 Uhr) |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| externe swf, fehler, funktion |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Eine Funktion aus einer anderen Komponente aufrufen - wie? | fabbsen | Flex programmieren | 3 | 16-07-2009 16:48 |
| für jedes Element in einer XML eine Funktion ausführen | Fellkneul | ActionScript 3 | 8 | 01-07-2008 13:11 |
| Zugriff auf MovieClip einer geladenen swf | HorizontLaeufer | ActionScript 3 | 2 | 01-12-2007 16:51 |
| zugriff auf eine funktion in dokumentenklasse | hobbit20001 | ActionScript 3 | 1 | 24-07-2007 14:08 |
| Zugriff auf Methoden einer über loadMovie geladenen .swf-Datei | andbub | ActionScript 1 | 10 | 22-08-2004 20:01 |