Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.02.2014, 21:30
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 1  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
По умолчанию Как добавить на сцену все эл. массива

Код 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

Старый 24.02.2014, 21:40
Vladimir991 вне форума Посмотреть профиль Отправить личное сообщение для Vladimir991 Найти все сообщения от Vladimir991
  № 2  
Ответить с цитированием
Vladimir991

Регистрация: Mar 2012
Сообщений: 28
Попробуйте убрать 0 в массиве.

Код AS1/AS2:
addChild(_mask[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]);

Старый 24.02.2014, 21:45
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 3  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Не помогло

Старый 24.02.2014, 21:50
Vladimir991 вне форума Посмотреть профиль Отправить личное сообщение для Vladimir991 Найти все сообщения от Vladimir991
  № 4  
Ответить с цитированием
Vladimir991

Регистрация: Mar 2012
Сообщений: 28
Цитата:
Сообщение от Godwarlock Посмотреть сообщение
Не помогло
Если будете выкладывать полный код, по ходу, тогда будет функциональнее помощь.

Старый 24.02.2014, 21:54
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 5  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Просто флеш не понимает что от него хотят..
Код AS3:
addChild(array);//так нельзя, это не ДО
arrayOne = arrayTwo;//так можно, так-как на словах это - этот массив должен равняться тот массив.
array[0];// это не массив, это элемент массива
arrayOne = arrayTwo[0];//так нельзя, потому что будет - массив должен равняться ДО.
Добавлено через 3 минуты
И метод addChild() не принимает массив, он принимает объект, ОДИН.

Старый 24.02.2014, 21:59
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 6  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Код 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 как мне тогда сразу добавить все элементы массива на сцену?

Старый 24.02.2014, 22:06
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 7  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Вообще не понятно как Вам такое в голову пришло. А добавить циклом.

Старый 24.02.2014, 22:07
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
как мне тогда сразу добавить все элементы массива на сцену?
вот так
Код 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]);
}
Последний способ гарантирует то, что объекты будут добавляться именно в том порядке, в котором они находятся в массиве. Так что если порядок имеет значение, то рекомендую именно его

Старый 24.02.2014, 22:12
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 9  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
caseyryan,Akopalipsis Спасибо большое за помощь. Сократил код в два раза таким образом)))

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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