Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как добавить на сцену все эл. массива (http://www.flasher.ru/forum/showthread.php?t=206723)

Godwarlock 24.02.2014 21:30

Как добавить на сцену все эл. массива
 
Код AS3:

addChild(_mask[0]);

Добавляет первый элемент из массива на сцену, казалось бы все в порядке, но помимо 1ого элемента, в массиве еще их 14 штук. Но если я напишу так
Код AS3:

addChild(_mask[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]);

Выдаёт

Цитата:

ReferenceError: Error #1069: Не удалось найти свойство 15 в Number; отсутствует значение по умолчанию.
at AS.spacerpg::Worlds/createfon()
at AS.spacerpg::Worlds()
at AS.spacerpg::Game()
at AS.spacerpg::App/onPlay()
Вот такую фигню. Что ему не нравится? Если добавлю до 14, то выскакивает таже ошибка, только не может найти свойство 14

Vladimir991 24.02.2014 21:40

Попробуйте убрать 0 в массиве.

Код AS1/AS2:

addChild(_mask[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]);


Godwarlock 24.02.2014 21:45

Не помогло

Vladimir991 24.02.2014 21:50

Цитата:

Сообщение от Godwarlock (Сообщение 1160600)
Не помогло

Если будете выкладывать полный код, по ходу, тогда будет функциональнее помощь. :)

Akopalipsis 24.02.2014 21:54

Просто флеш не понимает что от него хотят..
Код AS3:

addChild(array);//так нельзя, это не ДО
arrayOne = arrayTwo;//так можно, так-как на словах это - этот массив должен равняться тот массив.
array[0];// это не массив, это элемент массива
arrayOne = arrayTwo[0];//так нельзя, потому что будет - массив должен равняться ДО.

Добавлено через 3 минуты
И метод addChild() не принимает массив, он принимает объект, ОДИН.

Godwarlock 24.02.2014 21:59

Код AS3:

public static var _mask:Array;
 
Worlds._mask = [];
Worlds.fon = new fon1;
Worlds.fon.x = 0;
Worlds.fon.y = 0;
Worlds._mask.push(Worlds.fon);
 
Worlds.copyright = new copy;
Worlds.copyright.x = 495,2;
Worlds.copyright.y = 712,55;
Worlds._mask.push(Worlds.copyright);
 
addChild(_mask[0,1]);

Если оставить только 0, то на сцену загружается объект fon, если приписать еще 1, тогда ошибку выдаёт

Akopalipsis как мне тогда сразу добавить все элементы массива на сцену?

Akopalipsis 24.02.2014 22:06

Вообще не понятно как Вам такое в голову пришло. А добавить циклом.

caseyryan 24.02.2014 22:07

Цитата:

как мне тогда сразу добавить все элементы массива на сцену?
вот так
Код AS3:

for (var i:String in _mask) {
  addChild(_mask[i]);
}

или так
Код AS3:

for each (var mask:DisplayObject in _mask) {
    addChild(mask);
}

ну или так
Код AS3:

for (var i:int = 0; i < _mask.length; i++) {
    addChild(_mask[i]);
}

Последний способ гарантирует то, что объекты будут добавляться именно в том порядке, в котором они находятся в массиве. Так что если порядок имеет значение, то рекомендую именно его

Godwarlock 24.02.2014 22:12

caseyryan,Akopalipsis Спасибо большое за помощь. Сократил код в два раза таким образом)))


Часовой пояс GMT +4, время: 10:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.