Et boum !
Un petit crash du player 9 !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package net.tynambule.exp { import flash.display.MovieClip; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.net.URLRequest; import flash.events.Event; import flash.display.Loader; [SWF(backgroundColor="#ffffff", frameRate="250", width="100", height="100")] public class MovieClipSpriteTest extends Sprite { public function MovieClipSpriteTest() { var l : Loader = new Loader(); l.contentLoaderInfo.addEventListener(Event.INIT, onLoadInit); // Un SWF Flash 9/AS3 avec "Document class" défini à "MobileSprite" l.load(new URLRequest("swfexterne.swf")); } private function onLoadInit(e : Event) : void { var MobileSprite : Class = (e.target as LoaderInfo).applicationDomain.getDefinition("MobileSprite") as Class; var instance : MovieClip = new MobileSprite() as MovieClip; // KA-BOOM this.addChild(instance); } } } |
Ce code fonctionne très bien si l’on utilise l’option « Linkage » d’un clip dans la bibliothèque, mais crash lamentablement si on place directement nos éléments sur la scène et que l’on défini une « Document class ». À noter que c’est l’instanciation de la classe récupérée qui foire, et non pas sa récuperation. Si l’on fait un describeType
sur MobileSprite
dans le code ci-dessus avant de créer l’instance, le retour est normal, il s’agit bien d’une classe qui étend bien MovieClip
.
C’est pô bô. Allez, salut.
Commentaires récents