| |||||||
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) |
| Flash-Bang Registriert seit: Jan 2004
Beiträge: 210
| sich wiederholende function?
ich habe aus einer folge von ereignissen ne funktion gemacht. nun habe ich dass problem, das der gesamte inhalt der funktion nur einmal ausgefürt wird, während das ganze vorher jedesmal ausgeführt wurde, wenn das frame in dem sich der code befand abgespielt wurde. wenn ich dass ganze aber in der funktion mit while mache, kackt der film aber ab(will ja dass es unendlich oft abläuft) wie kriege ich das hin, das der inhalt der funktion so abgespielt wird, als würde er sich in einem frame befinden? |
| | |
| | #3 (permalink) |
| Flash-Bang Registriert seit: Jan 2004
Beiträge: 210
|
argh...das ist es ja! dann wird die funktion bei jedem frame aufruf neu gestartet! ich will aber, dass nur der inhalt sich wiederholt! Code: _global.mover = function(clip, magnet) {
/*-----------------------------der teil (der jetzt kommt) war vorher in nem frame. dann ging der film zum
nächsten frame, kam von dort wieder zurück und hat das nochmal
gemacht und so weiter...
wenn die ganze funktion jedesmal wieder
gestartet wird funzt das nicht richtig! kp warum!
*/
if (Number(x) != 2) {
e=g_dcf;
x=2;
g_gravity = 200;
g_maxspeed = 20;
g_dcf = 50;
g_loose_e = 15;
e = 0;
e2 = 0;
xspeed = 0;
yspeed = 0;
xadd = 0;
yadd = 0;
magdrag = 0;
}
g_width = 483;
g_height = 395;
//go
e = e+1;
e2 = Number(e2)+1;
if (e > g_dcf) {
xadd = Math.random();
yadd = Math.random();
xadd = xadd*g_maxspeed*2 - g_maxspeed;
yadd = yadd*g_maxspeed*2 - g_maxspeed;
yadd = xadd+g_gravity/10;
e = 0;
}
xpos = getProperty(clip,_x);
ypos = getProperty(clip,_y);
xspeed = xspeed + xadd / 100;
yspeed = yspeed + yadd / 100;
//magnet:
if (magdrag != 0) {
xmag = magnet._x;
ymag = magnet._y;
xabst = xmag - xpos;
yabst = ymag - ypos;
v = Math.sqrt(xabst*xabst+yabst*yabst);
v = 1/v*100;
w = Math.atan2(yabst,xabst);
ypwr = Math.sin(w) * v;
if (xpwr > 7) {
xpwr = 7;
}
xpwr = Math.cos(w) * v;
if (ypwr > 7) {
ypwr = 7;
}
xspeed = xpwr + xspeed;
yspeed = ypwr + yspeed;
}
//speed
if (xpos + xspeed < 0){
xspeed = (xspeed/100)*(100-g_loose_e);
xspeed = xspeed*-1;
}
if (xpos + xspeed > g_width){
xspeed = (xspeed/100)*(100-g_loose_e);
xspeed = xspeed*-1;
}
if (ypos + yspeed > g_height){
yspeed = (yspeed/100)*(100-g_loose_e);
yspeed = yspeed*-1;
}
if (ypos + yspeed < 0){
yspeed = (yspeed/100)*(100-g_loose_e);
yspeed = yspeed*-1;
}
//setpos
newx = xpos + xspeed;
newy = ypos + yspeed;
setProperty(clip, _x, xpos + xspeed);
setProperty(clip, _y, ypos + yspeed);
duplicateMovieClip(clip, clip add e2, e2);
} |
| | |
| | #5 (permalink) |
| Flash-Bang Registriert seit: Jan 2004
Beiträge: 210
|
also _root.onEnterFrame.mover = function(clip, magnet) { [...] ?? Edit: hmm geht irgendwie nicht...das teil bewegt sich kein stück muss ich dass dann zusätzlich noch irgendwie aufrufen? sollich mal die fla hochladen? HILFÄÄÄ also nochmal: die funktion muss sozusagen mit dem film mitlaufen, und jedesmal wenn ein bestimmtes frame durchläuft neustarten, aber nicht KOMPLETT neustarten, sondern mit ihren eigenen variablen weiterarbeiten. eine andre möglichkeite wäre, die neuen koordinaten auszugeben und diese beim nächsten framedurchlauf weiterzuverwenden, dazu müsste die funktion aber mehrere variablen ausgeben können, was sie soweit ich weiss nicht kann oder? Geändert von sauerkraut (22-01-2004 um 16:20 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |