2009-06-23 5 views
1

Hoffentlich kann mir hier jemand helfen.MovieClip Duplikation in FlashLite und AS2

Ich arbeite in einer eingebetteten ActionScript2- und FlashLite 3.0-Umgebung (außerhalb eines Browsers). Die Anwendung, die ich entwickle, verwendet wiederholt Movieclip-Container, die externe Bilder enthalten, die mit loadMovie in diese Movieclips geladen werden. Das Einfügen der Bilder in die Bibliothek und das Verwenden von attachMovie ist keine Option, da die Bilder vom Benutzer hochgeladen werden können und dynamisch von außerhalb von Flash geladen werden müssen. Die Umgebung, in der ich arbeite, ist sehr eingeschränkt und es gibt einen merklichen Leistungseinbruch beim Laden dieser externen Bilder mit loadMovie, wenn sich viele dieser Movieclip-Container gleichzeitig auf dem Bildschirm befinden.

Ich hätte gerne eine Möglichkeit, ein externes Bild einmal in einen Movieclip-Container zu laden und dann wiederholt Kopien des Movieclips an verschiedenen Stellen in der Anwendung zu verwenden, wodurch die Notwendigkeit, externe Bilder zu laden, nicht mehr notwendig ist Zeit.

Zuerst dachte ich, die Antwort wäre ziemlich einfach, mit duplicateMovieClip, aber leider sieht es so aus, dass duplicateMovieClip keine der Eigenschaften oder untergeordneten Objekte des Clips dupliziert, die dupliziert werden. Von dem, was ich sagen kann, müssen Sie jedes Mal, wenn Sie den Clip duplizieren, das externe Bild erneut laden, was den Zweck dieses Vorgangs zunichte macht.

Ich habe auch nach Lösungen gesucht, die sich mit AttachBitmap() und Bitmap-Caching beschäftigen, aber das scheint Adobe in Flash Lite 3 nicht zu unterstützen. (Siehe "Welche Funktionen von Flash 8 hat Flash Lite 3? nicht unterstützt? ") http://www.adobe.com/uk/products/flashlite/faq/.

Hat jemand Erfahrung mit einem solchen Problem?

Edit: An example from Adobe schön illustriert die Situation. Beachten Sie den zweiten Aufruf an loadmovie nach dem Duplikat:

this.createEmptyMovieClip("img_mc", this.getNextHighestDepth()); 
img_mc.loadMovie("http://www.macromedia.com/images/shared/product_boxes/112x112/box_studio_112x112.jpg"); 
duplicateMovieClip(img_mc, "newImg_mc", this.getNextHighestDepth()); 
newImg_mc._x = 200; 
newImg_mc.loadMovie("http://www.macromedia.com/images/shared/product_boxes/112x112/box_studio_112x112.jpg"); 

Antwort

2

Nun, beide BitmapData.draw und MovieClip.attachBitmap werden unterstützt durch Flashlite 3.1.

Wenn Sie FlashLite 3.1 nicht verwenden können, müssen Sie mehrere Ladevorgänge durchführen.

+0

ack, ich bin jetzt mit 3,0 stecken, aber gut zu wissen, diese Optionen sind in 3.1 – beno

+0

Yup, nur tun, die mehrere Lasten. Es sollte keine schrecklich schwere Operation sein, da FL intelligent genug ist, die gleiche Datei nicht mehr als einmal zu laden. – fenomas