Volledige versie bekijken : move van a naar b
avdv78
%Europe/Berlin %498 %2005, 12:57
Hallo,
een paar vraagjes.
Een movie clip met naam mask (eigen layer) moet vanuit layer action de opdracht krijgen te verplaatsen van y=-142.7 naar y=169.1.
Hiervoor gebruik ik nu dit script:
onClipEvent (load) {
this._y = -142.7;
}
onClipEvent(enterFrame) {
if (this._y<169.1) {
speed = 36;
this._y += speed;
}
else {
this._y=169.1;
}
}
Dit script zit aan movie clip mask, dus deze opdracht komt niet van de action layer.
Hoe kan ik deze opdracht geven vanaf de action layer?
De afstand tussen punt a en b is 311,8. De snelheid is 36.
Is het mogelijk de snelheid van de move op te voeren en halverwege de afstand weer te vertragen? Dus snelheid start bij 1, versnelt in het kwadraat ofzo en halverwegen de afstand neemt deze weer af in kwadraat en is uiteindelijk weer 1 als deze op 169.1 arriveert.
Alvast bedankt voor de moeite! :)
Jordy
%Europe/Berlin %503 %2005, 13:04
instanceName._y = -142.7;
onEnterFrame = function() {
if(instanceName._y < 169.1) {
speed = 36;
instanceName._y += speed;
}
else {
instanceName._y=169.1;
}
}
avdv78
%Europe/Berlin %509 %2005, 13:13
Dank je! Snelle reactie!
Nog even wachten voor vraag 2... ;)
Ea.Z
%Europe/Berlin %526 %2005, 13:38
ik zie dat je met flash mx 2004 werkt
in de mx class zitten er enkele functies die hierbij erg handig kunnen zijn..
probeer eens dit
function tweenX() { //stel hier je x coordinatie in
var begin = 50 //beginpunt
var end = 200 //eindpunt
var time = 20; //snelheid van uitvoeren
var mclip = myClip; //naam van je movieclip
menuTween = new mx.transitions.Tween(mclip, "_x", mx.transitions.easing.Regular.easeOut, begin, end, time);
}
function tweenY() { //stel hier je y coordinatie in
var begin = 50 //beginpunt
var end = 200 //eindpunt
var time = 20; //snelheid van uitvoeren
var mclip = myClip; //naam van je movieclip
menuTween = new mx.transitions.Tween(mclip, "_y", mx.transitions.easing.Regular.easeOut, begin, end, time);
}
this.onEnterFrame = function() {
tweenX();
tweenY();
};
stop();
khoop dat ik je verder kon helpen
ohja! die verselling enzo kun je regelen in dat arg van tweenX en tweenY waar nu staat
mx.transitions.easing.Regular.easeOut
deze kun je vervangen door een aantal ander, die ik niet uit mijn hoofd ken, maar de F1 toets in Flash zal daar wel antwoorden op weten:)
succes
SaphuA
%Europe/Berlin %416 %2005, 10:59
Of de (naar mijn idee) makkelijkere methode:
ship = {}; //--Create a ship object to hold our variables
ship.speed = 2; //--The movement speed
this.onEnterFrame = function() {
difX = s._x-_xmouse;
difY = s._y-_ymouse;
dist = Math.sqrt((difX*difX)+(difY*difY)); //--Find the distance from the ship to the mouse
if (dist>ship.speed) { //--If the ship too far away, move as normal
rad = Math.atan2(difY, difX);
deg = Math.floor(rad/(Math.PI/180));
s._rotation = deg;
s._y -= ship.speed*Math.sin(rad); //--Move the ship towards the mouse
s._x -= ship.speed*Math.cos(rad); //--Move the ship towards the mouse
} else { //--If the ship is close, don't rotate and move on the mouse
s._x = _xmouse;
s._y = _ymouse;
}
};
Nu dus een MC maken met instance name 's' en hij werkt.
Je kunt deze code dus aanpassen zodat de MC niet draait, en alleen loopt waneer de muis is ingedrukt, maar wist niet precies wat je bedoeling was.
mel_vin
%Europe/Berlin %419 %2005, 11:03
kun je dit ook zo instellen dat je bijv. op een button klikt (met dit script) dat die button dan verplaats naar een nieuwe plek?
SaphuA
%Europe/Berlin %420 %2005, 11:05
Je bedoeld zoiets?
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.