2013-10-04 2 views
0

Мне нужно уметь вставлять объект в свою библиотеку на сцену. Они все разные .jpg, которые были правильно импортированы и имеют имена AS Linkage, такие как GIS_1 GIS_2 и т. Д.Actionscript 3.0: добавление объекта с изменением имени переменной

Я пытаюсь запустить функцию для их импорта по одной за раз в зависимости от внешней переменной.

пример:

var GIS_Image = new GIS_#();  //the "#" needs to change as depending on a counter 
addChild(GIS_Image); 

но то, что мне нужно, чтобы иметь возможность поставить название «GIS_1» в качестве переменной, так что я могу иметь что-то, что позволяет ему менять каждый раз, когда мне нужно новое изображение. моя первая мысль была сделать строку вдоль линий:

var counter:int = 2; 
var test:String = ("GIS_"+count); 
var circle = new test(); 

но это не будет работать, потому что он ищет тест имен объектов, а не обращающуюся строку, текст составляет.

любые идеи?

СПАСИБО!

ответ

1

Отъезд getDefinitionByName. Это позволяет создать экземпляр данного класса, который идентифицируется String.

package { 
    import flash.display.DisplayObject; 
    import flash.display.Sprite; 
    import flash.utils.getDefinitionByName; 

    public class GetDefinitionByNameExample extends Sprite { 
     private var bgColor:uint = 0xFFCC00; 
     private var size:uint = 80; 

     public function GetDefinitionByNameExample() { 
      var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class; 
      var instance:Object = new ClassReference(); 
      instance.graphics.beginFill(bgColor); 
      instance.graphics.drawRect(0, 0, size, size); 
      instance.graphics.endFill(); 
      addChild(DisplayObject(instance)); 
     } 
    } 
} 

Таким образом, вы можете передать имя символа и создать новые экземпляры его по требованию.

+0

Вы потрясающий! благодаря! – user2844020

Смежные вопросы