| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Subcolor Registriert seit: Apr 2004
Beiträge: 67
| Easing vor und zurück - Problem
Hallo Leute zuerst einmal thx an alle die hier einem immer helfen! ich möchte gerne immer mehr die easing_equations von R.Penner einsetzen und war damit auch schon erfolgreich. wie folgt zu sehen..lasse ich ein Objekt auf der Bühne auf poppen: Code: Math.easeOutElastic = function (t, b, c, d, a, p) {
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
};
// Eigenschaften des MC´s
mc.t = 0;
mc.b = 0;
mc.c = 100;
mc.d = 15;
mc.onEnterFrame = function () {
var t = this;
if (t.t<t.d){
t._xscale = Math.easeOutElastic(t.t,t.b,t.c,t.d);
t._yscale = Math.easeOutElastic(t.t,t.b,t.c,t.d);
t.t++;
}
} mein Problem dabei.. ich würde gerne nach ein paar Sekunden..mein mc wieder auf dieselbe Art und Weise zurück "poppen"..doch das funktioniert nicht mit einer else-Fuunktion habe ich es versucht das gleiche Script nochmal anzuwenden..aber dabei habe ich b und c vertauscht.. es geht aber nicht..weiß jemand Rat??? im voraus vielen Dank! im allgemeinen habe ich Probleme (wie zB auch ein Objekt das per easing in die Bühne einfliegt, wieder heraus fliegt) |
| | |
| | #2 (permalink) |
| . Registriert seit: May 2003 Ort: bayern
Beiträge: 1.117
|
du startest die selbe animation einfach andersrum... ActionScript:
__________________ [mooseMash] Geändert von mooseMash (30-06-2005 um 23:35 Uhr) |
| | |
| | #3 (permalink) |
| Subcolor Registriert seit: Apr 2004
Beiträge: 67
|
leider geht dass nicht so ganz..! so wie du geschrieben hast, reicht eine Funktion für Rein und Raus, oder? aber der mc soll ein paar Sekunden stehen bleiben. aber mit if(passed>=1000) return; geht dass nicht..und für was sorgt return? er macht den mc zwar kleiner..aber endlos.. ?? |
| | |
| | #4 (permalink) |
| . Registriert seit: May 2003 Ort: bayern
Beiträge: 1.117
|
es ist wie du sagst, eine funktion für beide aktionen, damit das nicht endlos weiterläuft zähle ich die variable passed nach dem aufpoppen um eins hoch, passed++, wenn er das nächste mal mit der funktion fertig ist ist bereits alles wieder klein, hier soll die funktion stoppen, dafür steht nach dem delete onEnterFrame noch die action ActionScript:
wenn du dazwischen eine pause haben willst kommst du um ein interval nicht rum, ich havb da mal was vorbereitet: ActionScript:
hier werden nach dem aufpoppen zunächst die werte für das 'einpoppen?' gesetzt und dann mit myInt = setInterval(initGrowing,2000,this); die funktion initGrowing nach 2000 millisekunden aufgerufen... recht so?
__________________ [mooseMash] |
| | |
| | #5 (permalink) |
| Subcolor Registriert seit: Apr 2004
Beiträge: 67
|
danke das funzt.. das war die Frage zum scalieren eines mc´s und wenn ich den mc bewegen möchte? kann ich es so machen? Code: mc.t = 0;
mc.b = 0;
mc.e = 100;
mc.c = mc.e - mc.b;
mc.d = 15;
mc.onEnterFrame = grow;
function grow(){
this._x = Math.easeInOutElastic(this.t++,this.b,this.c,this.d) +450;
this._y = Math.easeInOutElastic(this.t++,this.b,this.c,this.d) +465;
if(this.t>this.d){
passed++;
delete this.onEnterFrame;
if(passed>1)return;
this.t = 0;
this.b = 100;
this.e = 0;
this.c = this.e - this.b;
myInt = setInterval(initGrowing,1000,this);
}
}
function initGrowing(mc){
clearInterval(myInt);
delete myInt;
mc.onEnterFrame = grow;
} |
| | |
| | #6 (permalink) |
| . Registriert seit: May 2003 Ort: bayern
Beiträge: 1.117
|
im prinzip schon aber diese zeilen: ActionScript:
z.B.: mc.x1 -> startPosition x mc.x2 -> position nach reinkommen mc.x3 -> position nach rausfliegen dann gilt: mc.t = 0; mc.b = mc.x1; mc.e = mc.x2; mc.c = mc.e - mc.b; mc.d = 15; mc.onEnterFrame = grow; dann schreibst du in der funktion ActionScript:
du kannst so jedem mc ne eigene dauer geben mc.d = random(25)+5; oder ne eigen intervalZeit nach der es wieder rausfliegen soll mc.intTime = random(3000)+500; ActionScript:
du siehst der möglichkeiten sind da viele ich würde nur zusehen von absoluten zahlen in einer funktion abzusehen, sie ist dann viel flexibler einsetzbar...
__________________ [mooseMash] |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |