Laden und spielen eingebettete SWF-Datei in Flex / Actionscript
Ich versuche zu erstellen /verwenden Sie einen pre-loader in meine flex-Anwendung. Der preloader ist ein SWF-Datei, die 100 frames (1 für jedes Prozent der loader Fortschritt). Grundsätzlich bin ich versuchen Embed this SWF-Datei in meine Anwendung ein, zeigt Sie auf dem Bildschirm und ändern Sie die frame-Nummer angezeigt wird, wie der Fortschritt abgeschlossen ist.
Den code habe ich so weit ist (die sich Canvas):
[Embed("/../assets/preLoader.swf")]
private var SWFClass:Class;
private var _preLoader:MovieClip;
private var _progress:Number;
public function set progress(value:Number) : void {
_progress = value;
if(progress < 100) {
_preLoader.gotoAndPlay(progress, null);
}else {
_preLoader.gotoAndStop(0, null);
}
}
[Bindable]
public function get progress() : Number {
return _progress;
}
(Called on creationComplete event)
private function init() : void {
_preLoader = MovieClip(new SWFClass());
this.addChild(_preLoader);
_preLoader.play();
}
Den Fehler bin ich immer:
TypeError: Error #1034: Type Coercion failed: cannot convert widgets::PreLoader_SWFClass@30b3be51 to mx.core.IUIComponent.at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::addingChild()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:3259]
Bitte um Hilfe!!
InformationsquelleAutor Richard Walton | 2009-03-02
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie sprite statt der Leinwand, wie eine Basis-Klasse. Zwei Gründe, dies zu tun:
Leinwand hat eine Menge von Abhängigkeiten (in der Höhe von 100k+ von flex-Komponenten). Sie wollen nicht warten, für alle diese zu laden, bevor die Anzeige Ihrer preloader
Leinwand ist UIComponent-container. Verwenden Sie es, wenn Sie wollen, um das Layout UIComponents. In Ihrem Fall, Sie brauchen keine komplizierte canvas-layout-Logik - man muss nur display ein MovieClip. Also zögern Sie nicht, verwenden Sie eine Leinwand.
Zur Beantwortung Ihrer ursprünglichen Frage, SWFLoader und Bild sind UIComponents, die wissen, wie Bitmaps und Videoclips. Tun Sie etwas wie dieses, statt:
InformationsquelleAutor Brian
Müssen Sie einen wrapper über
MovieClip
implementiert, dass dasIUIComponent
um der Lage sein, um pass zuaddChild()
. Aus deraddChild()
Dokumentation:Müssen Sie etwas wie dieses:
Achtung: code Ungetestet, sollte Ihnen eine Vorstellung nur!
Es ist ziemlich trivial zu implementieren einen wrapper. Siehe Hinweis in meiner Antwort aktualisiert.
InformationsquelleAutor dirkgently
Hoffen, dass diese Arbeit
Ich habe versucht, diese.
InformationsquelleAutor Jatin
Haben Sie einen Blick auf die Preloader Klasse und die preloader - Eigenschaft der Application-Klasse.
Wie die Dokumentation sagt, Sie sollten nicht definitiv verlängern die Flex UIComponent - (oder Bild-oder SWFLoader -) Klassen für einen preloader.
Hier sind ein paar Beispiele, wie man über die Anpassung der preloader:
http://www.pathf.com/blogs/2008/08/custom-flex-3-lightweight-preloader-with-source-code/
http://groups.adobe.com/posts/15d371c71d
http://www.webapper.net/index.cfm/2008/1/17/Flex-NotSo-Custom-Preloader
InformationsquelleAutor Sly_cardinal
fand ich custom preloader mit externen swf-code aus diesem link
http://askmeflash.com/article_m.php?p=article&id=7
InformationsquelleAutor