0

Ich machte ein einfaches Testbeispiel in as2. Dies enthält zwei Schaltflächen mit den folgenden Handlern.Laden as3 in as2 Arbeit nur auf _root

_ROOT:

on (release) 
{ 
    this.loadMovie("AS3.swf");  
} 

_root.test.testmc:

on (release) 
{ 
    test.testmc.loadMovie("AS3.swf");  
} 

Die AS3.swf ist ein Video-Player (youtube AS3 api verwenden). Wenn ich es in _root lade, funktioniert es, aber wenn ich es an einen anderen Ort laden will, tut es das nicht. Ich suchte und fand diese von Adobe.

„SWF-Dateien geschrieben in Actionscript 1.0 oder 2.0 kann nicht SWF-Dateien geschrieben in Actionscript 3.0 laden Dies bedeutet, dass SWF-Dateien in Flash 8 oder Flex Builder verfassten 1.5 oder frühere Versionen können nicht geladen werden ActionScript 3.0 SWF-Dateien

Die einzige Ausnahme von dieser Regel besteht darin, dass eine ActionScript 2.0-SWF-Datei sich selbst durch eine ActionScript 3.0-SWF-Datei ersetzen kann, sofern die ActionScript 2.0-SWF-Datei zuvor noch nichts geladen hat Eine ActionScript 2.0-SWF-Datei kann dies über einen Aufruf von loadMovieNum() tun und den Wert 0 an den Level-Parameter übergeben. "

Funktioniert der "_root-Teil" meines Codes aufgrund der obigen "Ausnahmeregel"? Ich bin neu im Flash (yeah du könntest fragen warum ich mit as2 angefangen habe, leider nicht meine Wahl ...) und ich frage mich, ob mein Denken richtig ist. Auch wenn es irgendeine Art von Workaround gibt (außer alles in AS3 neu zu schreiben), lass es mich wissen (vielleicht Verwendung von localconnection?).

+0

Ich glaube, dass Sie richtig sind, und dass '_root.loadMovie()' arbeitet als ein Äquivalent zu 'loadMovieNum()'. Ich fürchte, wenn Sie Ihren Player swf nicht in die Root laden möchten, müssen Sie entweder Ihre Anwendung auf AS3 portieren oder Ihren Videoplayer mithilfe der AS2 API von YouTube umschreiben: https://developers.google.com/ youtube/flash_api_reference_as2 – shanethehat

+0

Danke für die Antwort, leider wird der youtube as2 api weiterhin bis zum 14. Oktober laufen, ich denke nach diesem Datum würde es nicht funktionieren. Ich denke, ich werde versuchen, den Chef davon zu überzeugen, AS2 zu vergessen und alles in AS3 zu portieren. – Alex

Antwort

0

Try this:

auf Wurzel as2:

test.testmc.loadMovie("AS3.swf"); 

oder im mc wollen u den AS3-Player:

this.loadMovie("AS3.swf"); 

Ihr zweiter Code test.testmc.test.testmc ruft, weil es bereits platziert in der "testmc", so dass Sie nicht mit dem vollständigen Pfad verweisen müssen. Es wird empfohlen, dass Sie relative Pfade für solche Dinge verwenden.

Also, in der mc testmc müssen Sie nur this.loadmovie anstelle der Suche nach test.testmc INSIDE testmc tun.

Hoffe, dass das war, was Sie suchen.

+0

Ich bekomme die gleichen Ergebnisse (funktioniert nicht). Ich bin mir ziemlich sicher, dass mein Code korrekt ist, aber es ist wahrscheinlich nicht gelungen, es im Eröffnungsbeitrag zu erklären, sorry dafür. Wie auch immer, danke für den Versuch. – Alex