Проблема с созданием объекта, когда известно имя класса объекта - PullRequest
0 голосов
/ 23 декабря 2010

Я пытаюсь создать экземпляр класса, когда получил имя этого класса. Я думаю, что лучше объяснить мою проблему будет этот код:

package  
{

import flash.utils.getDefinitionByName;
public class SomeClass extends ParentClass
{
[Embed(source='../assets/gfx/levelImg/level0.png')]
public static const Level0Img:Class; 

public function someFunction():void
{
var imgString:String = "Level0Img";
var imgClass:Class = getDefinitionByName(imgString) as Class;

}
}

Я вызываю someFunction и получаю ошибку: исключение [Fault], информация = ReferenceError: Ошибка # 1065: переменная Level0Img не была определена.

Что может быть не так с этим? }

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

Вы объявляете вложенный класс. Определение не может быть найдено по имени, которое вы указали.

Попробуйте это:

(...)
public class SomeClass extends ParentClass
{
    [Embed(source='../assets/gfx/levelImg/level0.png')]
    public static const Level0Img:Class; 

    public function someFunction():void
    {
        var imgString:String = "SomeClass_Level0Img";
        var imgClass:Class = getDefinitionByName(imgString) as Class;
    }
(...)
0 голосов
/ 24 декабря 2010

почему бы вам просто не написать var imgClass:Class = Level0Img;?
Это лучше, чем угадывание имени класса ...

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