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

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

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

Регистрация: Nov 2008
Сообщений: 25
По умолчанию как рамдомно показать содержиное массива на экране

привет
в библиотере имеется например 5 коробок.
я их сейчас вот так вот вывожу:
Код AS3:
var boxList:Array=[["box1",10,20],["box2",150,120],["box3",200,300],["box4",10,300],["box5",320,330]];
for (var i = 0; i < boxList.length; i++) {
	var classRef:Class=getDefinitionByName(boxList[i][0]) as Class;
	var myBox:MovieClip =  new classRef();
	addChild(myBox);
	myBox.x=boxList[i][1];
	myBox.y=boxList[i][2];
}
как эти коробки можно вывести на экран рандомно+коробки не должны накладываться друг на друга, если размеры экрана например 550х400 ?

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Код AS3:
var boxList:Array=[["box1",10,20],["box2",150,120],["box3",200,300],["box4",10,300],["box5",320,330]];
 
var boxListForRand:Array = boxList.concat();
var i:int;
var randomBox:MovieClip;
var len:int   = boxListForRand.length;
var index:int;
for(i = 0; i < len; i++){
index = Math.floor(Math.random() * boxListForRand.length);
var classRef:Class=getDefinitionByName(boxListForRand[index][0]) as Class;
var randomBox:MovieClip =  new classRef();
addChild(randomBox);
randomBox.x=boxListForRand[index][1];
randomBox.y=boxListForRand[index][2];
boxListForRand.splice(index,1);
 
}
Добавлено через 3 минуты
с наложением повозиться можно hitTestObject-ом
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 22.12.2009, 16:28
sergeylandar вне форума Посмотреть профиль Отправить личное сообщение для sergeylandar Найти все сообщения от sergeylandar
  № 3  
Ответить с цитированием
sergeylandar
 
Аватар для sergeylandar

Регистрация: Nov 2008
Сообщений: 25
а почему randomBox 2 раза объявляется?

Старый 22.12.2009, 17:56
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Чтобы наверняка

На самом деле ошибка, да.

Старый 22.12.2009, 18:09
sergeylandar вне форума Посмотреть профиль Отправить личное сообщение для sergeylandar Найти все сообщения от sergeylandar
  № 5  
Ответить с цитированием
sergeylandar
 
Аватар для sergeylandar

Регистрация: Nov 2008
Сообщений: 25
вот так хорошо работает:
Код AS3:
var classNames:Array = ["box1", "box2", "box3", "box4", "box5"];
var len:int = classNames.length;
var boxesList:Array = [];
var ClassRef:Class;
 
for (var i:int = 0; i < len ; i++) {
     ClassRef = Class(getDefinitionByName(classNames[i]));
     boxesList[i] = new ClassRef();
     addChild(boxesList[i]);
}
 
var currentBox:MovieClip;
for (var ii:int = 0; ii < len ; ii++) {
     currentBox = boxesList[ii];
     currentBox.x = Math.random() * (stage.stageWidth - currentBox.width);
     currentBox.y = Math.random() * (stage.stageHeight - currentBox.height);
}
Подскажите плиз как сделать чтобы боксики не пересикались.

Старый 22.12.2009, 19:36
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 6  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
а. ну издержки копипаста )) пардон
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

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

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


 


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


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