2012-04-04 8 views
2

Ich bin auf dieses hier gestoßen, aber es scheint wie etwas einfaches, das ich übersehe.Wie kann ich einen MovieClip von einer SWF-Datei in eine Flex-App einbetten, ohne ihn zu loopen?

Meine Flex App bettet (dh kompiliert in) eines anderen SWFs MovieClip-, etwa so:

[Embed(source='assets/clips.swf', symbol='MyClip')] 
private var MyClip:Class; 

... und dann verwendet ein mx:Image Tag, um es anzuzeigen:

<mx:Image source="{MyClip}" width="300" height="100" /> 

.. Der resultierende Clip wird jedoch für immer in Schleife wiedergegeben. Ich will es nur einmal spielen und dann aufhören.

Der Quellclip hat eine stop() Aktion in seinem endgültigen Frame definiert, aber ich vermute, dass Skript zur Kompilierzeit entfernt wird, also frage ich mich, wie ich das Image-Tag oder MyClip-Klasse irgendwie sagen kann, dass Clip sollte nicht kontinuierlich loopen.

Vielen Dank im Voraus!

Antwort

0

Ich arbeite nicht mit Flex, also sind diese Ideen nicht etwas, das ich aus der Praxis kenne; aber hier ist das, was ich gefunden habe:

Wenn die SWF-Datei mit einem beliebigen Actionscript-Code enthält, Flex gibt eine Warnung während der Kompilierung und dann Streifen aus dem Actionscript aus dem einbetten Symbol. Dies bedeutet, dass Sie nur das Symbol selbst einbetten können. - http://livedocs.adobe.com/flex/3/html/help.html?content=embed_4.html

Ich glaube auch, MyClip ist eine Class, und nicht eine Instanz dieser Klasse auf der Bühne. Damit . . . Sie müssen so etwas wie:

<mx:Image source="{new MyClip()}" width="300" height="100" /> 

oder eine Variable erstellen und damit arbeiten, wie this example from Adobe docs.

Wenn all dies im Bereich der Wahrheit liegt, können Sie() und stop() wie jede andere eingebettete SWF-Datei abspielen.