![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2009
Сообщений: 3
|
Начала изучение с as3 помогите перевести код пожалуйста если это не сильно заморочно
i = 0; mousex = getProperty("/m", _x); mousey = getProperty("/m", _y); while (Number(i)<=Number(num)) { set("/p" add i add ":xm2", (_level0:mousex-getProperty ("/p" add i, _x )+random(2*fr)-fr)/(50-fmouse)); set("/p" add i add ":ym2", (_level0:mousey-getProperty ("/p" add i, _y )+random(2*fr)-fr)/(50-fmouse)); a = eval("/p" add i add ":a"); set("/p" add i add ":xm", eval("/p" add i add ":xm")*(1-a)+eval("/p" add i add ":xm2")*a); set("/p" add i add ":ym", eval("/p" add i add ":ym")*(1-a)+eval("/p" add i add ":ym2")*a); setProperty("/p" add i, _x, getProperty ("/p" add i, _x )+eval("/p" add i add ":xm")); setProperty("/p" add i, _y, getProperty ("/p" add i, _y )+eval("/p" add i add ":ym")); setProperty("/p" add i, _xscale, 100); setProperty("/p" add i, _yscale, 100); rot = getProperty ("/p" add i, _rotation)+(eval("/p" add i add ":xm")+eval("/p" add i add ":ym")); if (Number(rot)>360) { rot = rot-360; } if (Number(rot)<0) { rot = Number(rot)+360; } setProperty("/p" add i, _rotation, getProperty ("/p" add i, _rotation)+(eval("/p" add i add ":xm")+eval("/p" add i add ":ym"))/2); i = Number(i)+1; } |
|
|||||
|
Modus ponens
|
Ну, что-то в этом духе...
var num:int = numChildren; // откуда берутся клипы, которые нужно трансформировать? var i:int; var m:MovieClip = getChildByName("m"); var mousex:Number = m.x; var mousey:Number = m.y; var clip:MovieClip; var xm2:Number; var ym2:Number; var fmouse:Number; // что это? Нужно задать начальное значение. var fr:Number; // что это? Нужно задать начальное значение. var a:Number; var rot:Number; while (i++ <= num) { clip = getChildByName("p" + i); clip.xm2 = mousex - clip.x + Math.random(2 * fr) - fr) / (50 - fmouse)); clip.ym2 = mousex - clip.y + Math.random(2 * fr) - fr) / (50 - fmouse)); a = clip.a; clip.xm = clip.xm * (1 - a) + clip.xm2 * a; clip.ym = clip.ym * (1 - a) + clip.ym2 * a; clip.x += clip.xm; clip.y += clip.ym; clip.scaleX = 1; clip.scaleY = 1; rot = Math.abs(clip.rotation + clip.xm + clip.ym) % 360; clip.rotation = rot / 2; } бред какой-то с созданием динамических свойств у клипов для каких-то непонятных мне рассчетов... легче выбросить АС1 вариант и просто написать по-новой...
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 3
|
спасибо огромное, исходник прикрепляю.
Пыталась сделать класс что то типа dynamic public class Roy extends MovieClip { //Количество частиц var num = 15; //Сила разлёта от мышки var fr = 700; //Min и Max ускорения var mina = 5; var maxa = 15; //Сила притяжения мышки (max=50) var fmouse = 30; var i = 1; //var myxa:Myxa; var main; var myxa:Array = new Array(16); public function Roy(a){ main = a; while (i<=num) { myxa[i] = new Myxa; myxa[i].x = Math.random()*(0-550)+550; myxa[i].y = Math.random()*(0-400)+400; myxa[i].rotation = Math.random()*(0-360)+360; main.addChild(myxa[i]); // set("/p" add i add ":a", (Number(random(maxa-mina))+Number(mina))/100); i = i+1; } myxa.startDrag(true); } вот как то так ![]() спасибо ещё раз,буду дальше разбираться)))) |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 3
|
Что то не так(((
package{ import flash.display.MovieClip; import flash.utils.Timer; import flash.events.TimerEvent; dynamic public class Roy extends MovieClip { //Количество частиц var num = 15; //Сила разлёта от мышки var fr = 700; //Min и Max ускорения var mina = 5; var maxa = 15; //Сила притяжения мышки (max=50) var fmouse = 30; var i = 0; var main; var myxa:Array = new Array(16); public var clip; var mainTimer; public function Roy(a){ main = a; while (i<=num) { myxa[i] = new Myxa; myxa[i].x = Math.random()*(0-550)+550; myxa[i].y = Math.random()*(0-400)+400; main.addChild(myxa[i]); myxa[i].ar= Number(Math.random()*(maxa-mina)+mina)/100; i = i+1; } mainTimer = new Timer(150); mainTimer.addEventListener("timer", go); mainTimer.start(); } public function go(e:TimerEvent){ var i = 0; var mousex = mouseX; var mousey = mouseY; while (i<=num) { clip = myxa[i]; clip.xm2 = ((mousex - clip.x) + Math.random()*(2*fr)-fr) / (50 - fmouse); clip.ym2 = ((mousey - clip.y) + Math.random()*(2*fr)-fr) / (50 - fmouse); var ar = clip.ar; clip.xm = clip.xm * (1 - ar) + clip.xm2 * ar; clip.ym = clip.ym * (1 - ar) + clip.ym2 * ar; clip.x += clip.xm; clip.y += clip.ym; trace(clip.xm);//здесь ошибка,но не могу разобраться((( i = i+1; } } } } Осталась одна загвоздка set("/p" add i add ":xm", eval("/p" add i add ":xm")* (1-a)+eval("/p" add i add ":xm2")*a); set("/p" add i add ":ym", eval("/p" add i add ":ym")*(1-a)+eval("/p" add i add ":ym2")*a); Последний раз редактировалось Lilysik; 10.04.2009 в 15:44. |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|