#flash #variables #iteration #names
#flash #переменные #итерация #имена
Вопрос:
Можете ли вы использовать
for(x:int=0; x<100; x )
{
var varname x:Type = (x, something, something);
}
Создать сотню уникальных переменных? В принципе, мне нужно создать 100 переменных, и мне интересно, как вы создаете 100 vats, не прибегая к объявлению их всех вручную. проблема в том, что var whatever x просто создает переменную с whatever x вместо создания whatever0, whatever1… для чего угодно 99.
если это поможет, то это для flash и box2d.
Спасибо, Эндрю
Ответ №1:
Да, попробуйте это:
var holder:Object = {};
var i:uint = 0;
for(i; i<100; i )
{
holder["varname" i] = i*2;
}
trace(holder.varname34); //output: 68
Если вы создаете класс dynamic
, то вы можете назначить ему новые свойства таким же образом, т.Е.:
package
{
public dynamic class UniqueVarHolder extends Object
{
public function UniqueVarHolder()
{
var i:uint = 0;
for(i; i<100; i )
this["myvariable" i] = i*2;
}
}
}
Реализация:
var holder:UniqueVarHolder = new UniqueVarHolder();
trace(holder.myvariable10); //output: 20
Очевидно, что вы можете присвоить этим переменным все, что вам заблагорассудится.
Мне любопытно, зачем вам понадобилось бы это делать, хотя вы могли бы просто создать Array
для хранения более 100 значений, не присваивая их переменной.
Комментарии:
1. по всей вероятности, проще было бы просто использовать массив, но я пытаюсь создать 100 уникальных объектов во flash box2d. это код, на котором я в конечном итоге остановился:
var count:int=0; for (count;count < 100;count ) { this["wavey" count] = new B2FlxSprite(count, 100, 2, 2, _world); this["wavey" count].createBody(); this["wavey" count].loadGraphic(ImgCube, false, false, 2, 2); this.add(this["wavey" count]); }
однако этот код приводит к черному экрану, и игра не загружается. Я не знаю способа использования массива для создания 100 маленьких объектов в box2d.2. это работает, но box2d не отображает объекты. похоже, проблема связана с box2d, а не с вашим кодом. Я опубликую на их форумах. ОТВЕТ НА ВОПРОС!!! Спасибо!!!
3. оказывается, flash и box2d могут использовать элемент в массиве для хранения тела, так что ого! вы были еще более правы, следовало просто использовать массив. в любом случае, теперь все работает!! еще раз спасибо.