Просмотр полной версии : Обращение к объектам в библиотеке через массив
Всем доброго здоровья!
Подскажите, как грамотно написать обращение к классу объекта в библиотеке?
Есть Object_1. Мы его можем вызвать и добавить на сцену так:
object1 = new Object_1();
container.addChild(object1);
А как обратиться к этому объекту через динамическую переменную. Указав окончания "1" в квадратных скобках.
object1 = new (['Object_'+[1]]) as Objects;//чуш написал, не работает так. Но можно как-то исхитриться?
undefined
28.03.2018, 17:49
var i:uint=1;//номер класса.
var _class:Class=getDefinitionByName("Object_"+i);
if(_class)
this["object"+i]=new _class();//дальше обращаемся к экземпляру через this["object"+i]
Bletraut
28.03.2018, 18:05
var i:uint=1;//номер класса.
var _class:Class=getDefinitionByName("Object_"+i);
if(_class)
this["object"+i]=new _class();//дальше обращаемся к экземпляру через this["object"+i]
еще добавить
import flash.utils.*;
var i:uint=1;//номер класса.
var _class:Class=getDefinitionByName("Object_"+i);
if(_class)
this["object"+i]=new _class();//дальше обращаемся к экземпляру через this["object"+i]
Благодарю за подсказку. Пока не получилось, выдает ошибку. Где-то я не то пишу?
objectNum ++;
trace(objectNum);//выводит 1
var _class:Objects = getDefinitionByName("Object_"+[objectNum]);
this["object"+[objectNum]] = new _class();//дальше обращаемся к экземпляру через this["object"+objectNum]
container.addChild(this["object"+[objectNum]]);
objectNum ++;
trace(objectNum);//1 2 ...
var _class = getDefinitionByName("Object_"+objectNum);
this["object"+objectNum] = new _class();//дальше обращаемся к экземпляру через this["object"+objectNum]
container.addChild(this["object"+objectNum]);
Вот так ошибки не выдает, работает
Добавлено через 15 минут
Всем спасибО!
var objPool:Array = [];
objPool[1] = container.addChild( new Object_1() );
...
objPool[X] = container.addChild( new Object_X() );
/////////////
objPool[ n ].methodName( бла бла бла );
или
objPool[X] = container.addChild( new getDefinitionByName("Object_"+X) );
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.