Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Очень нужна помощь!!! (http://www.flasher.ru/forum/showthread.php?t=28084)

igor_mylnikov 05.03.2002 22:11

Очень нужна помощь!!!
 
Вложений: 1
по такому вопросу: написал код для хаотичной анимации, а он работает хз как - специально написал так чтобы скорость никогда не равнялась нулю, но у половины молекул это так.
код следующий :
------------------------------------------------------
//Adds molecules if their number is less than 10
if (count < 15) {
count++;
m.duplicateMovieClip ("m"+count,10000-count);
with (this["m"+count]) {
_quality = LOW;
scale=random(200)+10;
_yscale=scale;
_xscale=scale;
gotoAndStop (parseInt((scale-10)/1.9)+1);
_x=random(320)-160;
_y=random(310)-155;
z=random(20)-10;
y=random(20)-10;
x=random(20)-10;
}
loading1.duplicateMovieClip("loading",10001);
loading.all=vsego;
}
else {
loading._visible=false;
loading1._visible=false;
}


for (c=1; c <= count; c++) {
//Extreme detect
with (this["m"+c]) {
p=_xscale/100;
if (_x*p>300*p or _x*p<-300*p) { x*=-1; }
if (_y*p>300*p or _y*p<-300*p) { y*=-1; }
if (_yscale > 300 or _yscale< -300) { z*=-1; }
//change x,y,z position of each molecule
_y+=y*p;
_x+=x*p;
_yscale+=z;
_xscale+=z;
gotoAndStop (parseInt ( (_xscale - 10) / 1.9) +1);
}
}

----------------------------------------------

посмотрите как это работает в реальности.

чтобы просмотреть коодинаты и скорости всех молекул нажмите на синюю кнопку справа (с надписью ""НАЖАТЬ)

Я совершенно не понимаю почему так происходит

igor_mylnikov 06.03.2002 00:15

что, никто не поможет?

Хрюндик 06.03.2002 13:57

нифига не понял :(... не умею я так тексты читать, можить где-то ошибка и вкралась...

Ты лучше исходник выложи, а не свф...

а так замечания следущие:

лучше не дубликатить, а аттачить.

лучше не random(N), a Math.round(Math.random() * N);

igor_mylnikov 06.03.2002 20:54

можно вопрос - почему аттачить лучше?
ошибку , вернее глюк я нашел сам, теперь работает нормально но я так и не понял в чем дело.
А дело было в верхней части которая находится внутри with (this["m"+count]) { .... } Я убрал with и проставил везде "адреса" и все заработало нормально. А когда ставишь with то все молекулы летают не каждая по своей траектории, а все - по траектории одной молекулы. Специально проверял - код с with и без абсолютно идентичен, непонятно почему он работает по разному. Ну да ладно.... Хотя может ктото знает?

ЗЫ а исходник (зазипованный) не захотел посылаться, он в зипе 160 кб, а без - 600 занимает


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

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