Technologia Flash, czyli animacja na potrzeby stron WWW to świat daleko odbiegły od zwykłego programowania i kodu. Zapytaj o pomoc i podziel się z nami Twoimi problemami z zakresu Flasha.
onClipEvent(load){
xDir=1;
yDir=1;
}
onClipEvent(enterFrame){
_x+=xDir;
_y+=yDir;
if (random(10) == 0){
xDir*=-1;
}
if (random(10) == 0){
yDir*=-1;
}
}
Nie mam jednak kontroli nad jego położeniem, a chciałbym zeby poruszał się np max 10px w lewo/prawo/góra/dół. Kombinowałem cos z dodpisaniem warunku jesli x większy od ... to wróć do początkowego połozenia, ale wówczas element skacze i nei wygląda to ciekawie, bez sensu wtedy random. Czy ktos moglby mi podpowiedziec jak tu ograniczyc pole ruchu?
z góry dzięki
i pozdro
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.geom.Point;
// minimalna i maksymalna prędkość
var SPEED_MIN:Number = 20;
var SPEED_MAX:Number = 40;
// określenie pol,a po którym bedzie poryszał się MC
// 0x - 100x, 0y - 200y
var POINT1:Point = new Point(0, 0);
var POINT2:Point = new Point(100, 200);
// funkcja inicjująca animację
function tweening(targetMc:MovieClip):Void {
var myTweenX:Tween = new Tween(targetMc, "_x", None.easeNone, POINT1.x, Math.random()* POINT2.x, speerRadnom(), false);
var myTweenY:Tween = new Tween(targetMc, "_y", None.easeNone, POINT1.y, Math.random()* POINT2.y, speerRadnom(), false);
myTweenX.onMotionFinished = tweenContinueX
myTweenY.onMotionFinished = tweenContinueY
}
// powtarzanie animacji w osi X
function tweenContinueX(tween:Tween):Void {
tween.continueTo(Math.random()*POINT2.x, speerRadnom());
}
// powtarzanie animacji w osi Y
function tweenContinueY(tween:Tween):Void {
tween.continueTo(Math.random()*POINT2.y, speerRadnom());
}
// funkcja losująca szybkość animacji
function speerRadnom():Number{
return SPEED_MIN + Math.floor(Math.random() * (SPEED_MAX - SPEED_MIN))
}
// wywołanie animacji dla MC i nazwie instancji mojMc
tweening(mojMc, POINT1, POINT2, SPEED);