Я хочу сделать весеннюю программу as3, эффект такой:
ссылка
после некоторых исследований и примеров, моя программа здесь:
public class testing_2 extends MovieClip
{
//--------------declare variables
private var xdif:Number;
private var ydif:Number;
private var xvel:Number = 0;
private var yvel:Number = 0;
private var totalNum:Number = 3;
private var d:Number = 20;
private var springArray:Array = [];
public function testing_2()
{
//-------------init stuffs
init_mc();
init_event();
}
private function init_mc()
{
for (var i:Number = 0; i < totalNum; i++)
{
var mc:MovieClip = new box() ;
mc.num = i;
springArray.push(mc);
addChild(mc);
//mc.x = stage.stageWidth/2;
//mc.y = stage.stageHeight/2 + i*d;
}
}
private function init_event()
{
this.addEventListener(Event.ENTER_FRAME, spring);
}
//-------------own functions
function spring(e)
{
for (var i:Number = totalNum-1; i >= 0; i--){
xdif = mouseX - springArray[i].x;
ydif = mouseY - springArray[i].y;
xvel += xdif * (0.4);
yvel += ydif * (0.4);
xvel *= (0.8);
yvel *= (0.8);
springArray[i].x += xvel ;
springArray[i].y += yvel ;
}
}
это не удачная программа, поскольку шары не могут разделиться на определенном расстоянии, и когда шары катятся, они находятся на одной круговой траектории и не могут достичь эффекта, подобного ссылке на веб-сайте. Я думаю, что это проблема этих xdif = mouseX - springArray[i].x;
ydif = mouseY - springArray[i].y;
, но я не могу указать, в чем проблема.
Кто-нибудь может помочь? большое спасибо.