Форум 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=213892)

ABEnergy 15.02.2017 00:24

Проблема с програмой(произведение обекта)
 
не понимаю почему не работает..
Отделил как ви и говорили(внутри лучше не работает), после появления 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;
}
}

caseyryan 15.02.2017 05:49

Потому что цикл в обработчике таймера каждый раз запускается с нуля, и в массив помещаются новые ссылки на новые мины, но на те же индексы, где были старые. Все ссылки на старые мины затираются и в массиве их больше нет, поэтому в обработчике 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

ABEnergy 15.02.2017 10:27

я ето понал вчера когда ложился спать!!!)я сделал отдельную перемнную и увеличиваю ее на 1 за каждое срабативание таймера


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

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