AddChild с Dynamic DispalyObject во Flex - PullRequest
       3

AddChild с Dynamic DispalyObject во Flex

1 голос
/ 05 августа 2010

Я почти уверен, что это именно то, что мне нужно, однако я не могу заставить его работать по какой-то причине.То, что я хотел бы сделать, это назвать произвольный компонент, который расширяет Canvas.Поскольку могут существовать различные компоненты с именами TestCanvasA, TestCanvasC, TestCanvasC, о которых я не узнаю до времени выполнения, я подумал, что это будет способ сделать это.Вот что у меня есть.

<mx:Script>
    <![CDATA[
        import component.TestCanvas;
        import mx.containers.Canvas;
        import flash.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>

Любые идеи будут замечательными!

1 Ответ

1 голос
/ 05 августа 2010

Дайте ему полное имя класса:

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

Также простой оператор import не должен включать определение класса в скомпилированном SWF, если в приложении нет ссылок на класс.Просто объявите (не нужно инициализировать) переменную этого типа где-то в SWF, чтобы убедиться, что определение действительно включено.

var dummy:TestCanvas;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...