Как мне создать экземпляр класса, используя переменную? - PullRequest
0 голосов
/ 21 февраля 2012

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

Мой код класса выглядит следующим образом:

package  {
    import flash.display.MovieClip;
    import flash.display.Sprite;


    public class SlideShow extends MovieClip{

        public function SlideShow() 
            {

                             //does something on start

        }

          //This function should take the string and use it as the class name below.
          public function addImages(BackGround:String):void
             {
            trace(BackGround);

            var main_bg:BackGround = new BackGround();
            addChild(main_bg);
                 }
         }
    }

и когда я вызываю метод из своей основной временной шкалы, он выглядит следующим образом:

var shoeSlide:SlideShow = new SlideShow(); 
shoeSlide.addImages("menPant"); 

SO "menPant" - это фактически имя, которое я присвоил классу мувиклипа, в котором есть несколько изображений.

Я получаю следующую ошибку:

SlideShow.as, Line 30   1046: Type was not found or was not a compile-time constant: BackGround.

1 Ответ

2 голосов
/ 21 февраля 2012

убедитесь, что вы импортируете getDefinitionByName вверху кода вашего класса, если flash не делает это автоматически. Это должно работать.

public function addImages(BackGround:String):void
{
    var symbol_class:Class = getDefinitionByName(BackGround);
    //EDIT: removed data type :BackGround -- this will give an error.
    var main_bg = new symbol_class();
    addChild(main_bg);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...