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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.01.2013, 15:15
XMON вне форума Посмотреть профиль Отправить личное сообщение для XMON Найти все сообщения от XMON
  № 1  
Ответить с цитированием
XMON
[+1 13.12.12]
[++1 13.12.12]

Регистрация: Aug 2012
Сообщений: 145
По умолчанию проблемы по добавлению рандомных символов на сцену.

вот код:

Код AS3:
var BOXES:Array = [new box1(), new box2(), new box3(), new box4()]
var BOXES_ITEM:MovieClip
 
while (MAX_BOXES_ITEMS < 5)
{
   var MAX_BOXES_ITEMS:int
   BOXES_ITEM = BOXES[Math.floor( Math.random() * BOXES.length )]
   with(addChild(BOXES_ITEM)){x = (MAX_BOXES_ITEMS*10)}
   MAX_BOXES_ITEMS++
   trace (MAX_BOXES_ITEMS)
}
а вот моя задумка: сделать так чтобы каждый круг цикла добавлялись на сцену 5 символов из библиотеки. но почему то создается разгромное количество символов и бывают большие промежутки между символами, помогите исправить.

Старый 21.01.2013, 15:18
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Ой какой наиужасающий кошмарный код с with, капсом и без ";". Немедленно переписать!

А по теме: вынесите объявление переменной MAX_BOXES_ITEMS из цикла.
Дальше я не разбирался.
__________________
тут я

Старый 21.01.2013, 15:24
XMON вне форума Посмотреть профиль Отправить личное сообщение для XMON Найти все сообщения от XMON
  № 3  
Ответить с цитированием
XMON
[+1 13.12.12]
[++1 13.12.12]

Регистрация: Aug 2012
Сообщений: 145
ранее объявлял переменную вне цикла, ради эксперимента решил объявить её в цикле, был такой же результат, решил оставить.
а в каком именно месте код ужасен? если в этом:
Код AS3:
with(addChild(BOXES_ITEM)){x = (MAX_BOXES_ITEMS*10)}
то так мне посоветовали здесь: http://www.flasher.ru/forum/showthread.php?t=190093

Старый 21.01.2013, 15:25
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
А вы вообще не понимаете, как работает ваш код?

Добавлено через 3 минуты
Код AS3:
var boxes:Array/*of Class*/ = [box1, box2, box3, box4];
 
for (var i:uint = 0; i < 4; i++) {
   var box:MovieClip = new (boxes[int(Math.random() * boxes.length)] as Class)() as MovieClip;
   box.x = i * 10;
   addChild(box);
}
Переписал так, как понял задачу.
__________________
тут я

Старый 21.01.2013, 15:30
XMON вне форума Посмотреть профиль Отправить личное сообщение для XMON Найти все сообщения от XMON
  № 5  
Ответить с цитированием
XMON
[+1 13.12.12]
[++1 13.12.12]

Регистрация: Aug 2012
Сообщений: 145
Код AS3:
var BOXES:Array = [new box1(), new box2(), new box3(), new box4()]
var BOXES_ITEM:MovieClip
var MAX_BOXES_ITEMS:int
 
while (MAX_BOXES_ITEMS < 5) // создается цикл который будет выполнятся пока переменная MAX_BOXES_ITEMS  меньше 5
{
   BOXES_ITEM = BOXES[Math.floor( Math.random() * BOXES.length )] // выберается рандомный символ из BOXES
   with(addChild(BOXES_ITEM)){x = (MAX_BOXES_ITEMS*10)}// помещается выбранный рандомный символ в координаты равные MAX_BOXES_ITEMS умноженное на 10
   MAX_BOXES_ITEMS++//MAX_BOXES_ITEMS увеличивается 
   trace (MAX_BOXES_ITEMS)
}
вот как я вижу свой код

Старый 21.01.2013, 15:31
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
то так мне посоветовали здесь
Там не было совета. Там была синтаксическая правка, не более. Далее Хаутс спросил, зачем вам это.
__________________
тут я

Старый 21.01.2013, 15:31
XMON вне форума Посмотреть профиль Отправить личное сообщение для XMON Найти все сообщения от XMON
  № 7  
Ответить с цитированием
XMON
[+1 13.12.12]
[++1 13.12.12]

Регистрация: Aug 2012
Сообщений: 145
большое вам спасибо!)

Старый 21.01.2013, 15:33
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код AS3:
var boxes:Array/*of MovieClip*/ = [new Box1(), new Box2(), new Box3(), new Box4()];
 
for (var i:uint = 0; i < 4; i++) {
   var box:MovieClip = boxes[int(Math.random() * boxes.length)] as MovieClip;
   box.x = i * 10;
   addChild(box);
}
__________________
тут я

Старый 21.01.2013, 15:45
XMON вне форума Посмотреть профиль Отправить личное сообщение для XMON Найти все сообщения от XMON
  № 9  
Ответить с цитированием
XMON
[+1 13.12.12]
[++1 13.12.12]

Регистрация: Aug 2012
Сообщений: 145
вот кусочек кода:
Код AS3:
var BOXES:Array/*of Class*/ = [box1, box2, box3, box4];
for (var CLUB_ITEM:Number = 0; CLUB_ITEM < CLUBS.length; CLUB_ITEM++)
{
	if (String (CLUBS[CLUB_ITEM]) == String (NAME_ROOM[1]))
	{
		with(addChild(new floorCLUB100x50)){x = CLUBS[CLUB_ITEM].x; y = CLUBS[CLUB_ITEM].y;}
		for (var i:uint = 0; i < 4; i++) 
		{
			var BOXES_ITEM:MovieClip = new (BOXES[int(Math.random() * BOXES.length)] as Class)() as MovieClip;
			BOXES_ITEM.x = i * 10;
			addChild(BOXES_ITEM);
		}
	}
}
но при выполнении выдает ошибку:
Код AS3:
TypeError: Error #1007: Попытка реализации в объекте, который не является конструктором.
	at ClearSniper_fla::Timeline_1/CLUB_TIMER()
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.utils::Timer/tick()
из-за чего выдает ошибку?

Старый 21.01.2013, 15:54
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 10  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Лично мне не понятно из-за чего выдает ошибку. Слишком маленький кусок текста, непонятно что в других переменных, непонятен контекст. Но, очевидно, что если ты пройдешься дебагером по этим строчкам, или хотя бы расставишь трейсы, то тебе самому многое прояснится.
__________________
мой пустой блог

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

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

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


 


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


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