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

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

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

Регистрация: Feb 2017
Сообщений: 30
Question Проблема с програмой(произведение обекта)

не понимаю почему не работает..
Отделил как ви и говорили(внутри лучше не работает), после появления 1 мини все происходит нормально(крутиться, двигаеться), а когда появляеться 2 , 1 перестает двигаться и так со всеми последующими...



var mina:Array = new Array();

var timer:Timer = new Timer(1000, 0);
timer.addEventListener(TimerEvent.TIMER, spawn);
timer.start();
function spawn(e:TimerEvent):void{
timer.start();
for(var i = 0;i<1;i++){
mina[i] = new boeprypas();
addChild(mina[i]);
mina[i].x = Math.random()*400+200;
mina[i].y = Math.random()*400; }

}

addEventListener(Event.ENTER_FRAME, polet);
function polet(e:Event):void{

for(var j = 0;j<mina.length;j++){
var xmov = (myCosmo.x - mina[j].x)/500;
var ymov = (myCosmo.y - mina[j].y)/500;
var angle = Math.atan2(xmov, ymov)*180/Math.PI;
mina[j].x += xmov;
mina[j].y += ymov;
mina[j].rotation += 3;
}
}

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Потому что цикл в обработчике таймера каждый раз запускается с нуля, и в массив помещаются новые ссылки на новые мины, но на те же индексы, где были старые. Все ссылки на старые мины затираются и в массиве их больше нет, поэтому в обработчике polet к ним уже нет доступа
Код AS3:
for(var i = 0;i<1;i++){
   var mine:DisplayObject = new boeprypas();
   addChild(mine);
   mine.x = Math.random()*400+200;
   mine.y = Math.random()*400; }
   mina.push(mine);
}
B все будет работать

п.с Код в сообщениях, надо оборачивать в теги AS3
__________________
Ко мне можно и нужно обращаться на ты)

Старый 15.02.2017, 10:27
ABEnergy вне форума Посмотреть профиль Отправить личное сообщение для ABEnergy Найти все сообщения от ABEnergy
  № 3  
Ответить с цитированием
ABEnergy

Регистрация: Feb 2017
Сообщений: 30
я ето понал вчера когда ложился спать!!!)я сделал отдельную перемнную и увеличиваю ее на 1 за каждое срабативание таймера

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

Теги
Action script 3.0 , проблема
Опции темы
Опции просмотра

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

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


 


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


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