2013-02-13 3 views
-1

Мне нужно, чтобы эти 2 элемента в моем массиве отображались на сцене. Пока это все элементы массива. Вопрос в том, как добавить эти 2 объекта в сцену с помощью массива?Добавление addChild() в arryas actionscript 3

for (var b:int = 0; b < csa.length; b++) 
{ 
    addChild(csa[1]); 
    addChild(csa[2]); 
    csa[1].x = 27; 
    csa[1].y = 214; 
    csa[2].x = 9; 
    csa[2].y = 833; 
} 

в настоящее время с этим он дает мне эту ошибку:

TypeError: Error #2007: Parameter child must be non-null. at flash.display::DisplayObjectContainer/addChild() at SkoolBook_fla::MainTimeline/frame26()[SkoolBook_fla.MainTimeline::frame26:10]

ответ

1

Индекс массива начинается с нуля, а не с одной. Поэтому, когда в csa есть два действительных элемента, действительными элементами являются csa[0] и csa[1]. csa[2] недействителен. Вам нужно использовать 0, 1 вместо 1, 2 в качестве индексов. addChild бросает ошибку, когда вызывается с неопределенным элементом (csa[2]).

Только примечание, не связанное с ошибкой: - Я не вижу причин использовать цикл, когда вы напрямую обращаетесь к двум элементам.

+0

heeh yah Я все еще пытаюсь узнать о структурах программирования: p, но это были изначально выбор, к которому мне нужен доступ. Это был единственный способ, который я знал. можете ли вы сказать мне, что это невозможно без цикла – tailedmouse

+1

Вам не нужен цикл, когда вы используете 'csa [0]', 'csa [1]' напрямую. Вы не используете индекс цикла 'b'. Если вы используете цикл, вы должны использовать 'csa [b]' вместо доступа к обоим элементам непосредственно внутри цикла. – taskinoor

+0

О, я вижу большое спасибо. Я сделал это вместо: D – tailedmouse

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