Реализация класса из строки - PullRequest
4 голосов
/ 06 июля 2010

Возможно ли иметь строку "ClassA" и использовать ее для создания экземпляра реального ClassA в моем приложении?

Ответы [ 4 ]

4 голосов
/ 06 июля 2010

Вы можете использовать getDefinitionByName в пакете flash.utils

var ClassReference:Class = getDefinitionByName("ClassA") as Class;

Вам понадобится полный путь к имени, поэтому, например, скажите mypackage.stuff.ClassA, что для вызова потребуется

var ClassReference:Class = getDefinitionByName("mypackage.stuff.ClassA") as Class;
var instance:Object = new ClassReference();

Тогда используйте можете использовать instance, чтобы сделать ваши методы

instance.methodname();

Помните, что если вы хотите добавить его в список отображения, вы должны будете разыграть его как DisplayObject

addChild(DisplayObject(instance));
4 голосов
/ 06 июля 2010

Посмотрите на flash.utils.getDefinitionByName. Вы должны быть в состоянии использовать это, чтобы получить объект класса из строки имени класса.

0 голосов
/ 16 января 2014

Теперь я могу создать экземпляр библиотеки изображений в виде строки, это мой код!

import flash.display.Bitmap;
import flash.display.BitmapData;
var ClassReference:Class = getDefinitionByName("my0002") as Class;
var instance:BitmapData = new ClassReference();
var myb:Bitmap =new Bitmap (instance)
this.addChild (myb)
0 голосов
/ 06 июля 2010

Вы можете использовать

Eval("new "+myString+"()");

или, возможно, даже

new Eval(myString)();

, но я не уверен, что Actionscript будет поддерживать второй.

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