Делаю аквариум )) рыбка плавает по о.X с помощью твина, хочу чтобы при наведении курсора на аквариум рыба "испугалась" и резко отплыла (применяю то же твин). Но случается баг, как только рыба выполнила второй твин (метод aquariumOver), рыба "скачет" ее просто перебрасывает в какую-то случайную точку. Подскажите как избавится от этого бага.
Код AS3:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
import flash.events.MouseEvent;
public class PoulScript extends MovieClip
{
private static var RADIUS:Number = 100;
private static var SPEED_SCARED = 10;
private var aquarium:MovieClip;
private var f1:MovieClip;
private var f1TweenX:Tween;
private var f1TweenY:Tween;
private var f1scaredTweenX:Tween;
private var f1scaredTweenY:Tween;
private var f1speed:Number;
private var f1nextX:Number;
private var f1startingX:Number;
private var f1startingY:Number;
private var f1scaredX:Number;
private var f1scaredY:Number;
public function PoulScript():void
{
this.addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event):void
{
this.removeEventListener(Event.ADDED_TO_STAGE, init);
aquarium = aquarium_mc.aria_mc;
f1 = aquarium_mc.f1_mc;
f1startingX = f1.x;
f1startingY = f1.y;
aquarium.addEventListener(MouseEvent.ROLL_OVER, aquariumOver);
f1randomVolue();
}
private function f1randomVolue():void
{
f1nextX = Math.random() * RADIUS * 2 - RADIUS;
f1speed = Math.random() * 70 + 80;
if(f1nextX > f1.x) {f1.scaleX = -1;} else {f1.scaleX = 1;}
f1TweenX = new Tween(f1, "x", Strong.easeOut, f1.x, f1nextX, f1speed, false);
f1TweenX.addEventListener(TweenEvent.MOTION_FINISH, f1moveAgain);
}
private function f1moveAgain(e:TweenEvent):void
{
f1randomVolue();
}
private function aquariumOver(e:MouseEvent):void
{
trace("бойся, рыба!")
f1scaredX = Math.random() * RADIUS * 2 - RADIUS;
f1scaredY = Math.random() * 50 * 2 - 50;
if(f1scaredX > f1.x) {f1.scaleX = -1;} else {f1.scaleX = 1;}
f1scaredTweenX = new Tween(f1, "x", Strong.easeOut, f1.x, f1scaredX, SPEED_SCARED, false);
f1scaredTweenY = new Tween(f1, "y", Strong.easeOut, f1.y, f1scaredY, SPEED_SCARED, false);
}
}
}