开发者

AddChild with Dynamic DispalyObject in Flex

I am pretty sure that this is totally what i need, however I can not get it to work for some reason. What i would like to do is call an arbitrary component that extends Canvas. Since there may be a variety of components named TestCanvasA, TestCanvasC, TestCanvasC which i won't know till run-time I figured this would be the way to go about it. Here is what i have.

<mx:Script>
    <![CDATA[
        import component.TestCanvas;
        import mx.containers.Canvas;
        import flash.开发者_Python百科display.Sprite;
        import flash.utils.getDefinitionByName;

        private function init(evt:Event):void{
            var Type:String="TestCanvas";
            var controlClass:Class = getDefinitionByName(Type) as Class;
            this.addChild(new controlClass() as Canvas);
        }
    ]]>
</mx:Script>

Any ideas would be awesome!


Give it the fully qualified class name:

var type:String="component.TestCanvas";
var controlClass:Class = getDefinitionByName(Type) as Class;

Also a mere import statement need not include the definition of the class in the compiled SWF unless there are references to the class inside the application. Just declare (need not initialize) a variable of that type somewhere in the SWF to make sure that the definition is indeed included.

var dummy:TestCanvas;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜