Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-01-2004, 15:44   #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?
sauerkraut ist offline   Mit Zitat antworten
Alt 22-01-2004, 15:46   #2 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
ActionScript:
  1. _root.onEnterFrame = function () {
  2. aufruf ();
  3. }


cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 22-01-2004, 15:55   #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);
}
sauerkraut ist offline   Mit Zitat antworten
Alt 22-01-2004, 16:00   #4 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
mach den inhalt in onEnterFrame

cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 22-01-2004, 16:01   #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)
sauerkraut ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele