Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-03-2004, 20:24   #1 (permalink)
yaqwdrtgb
 
Benutzerbild von maks
 
Registriert seit: Dec 2003
Ort: hh
Beiträge: 92
if else rumgezicke

wo liegt der fehler?
ActionScript:
  1. onClipEvent (enterFrame) {
  2.    var speed = Math.floor(Math.random()*+15;
  3.    var ausschlag = Math.floor(Math.random()*2)+50;
  4.    if (_x<=250) {
  5.       _x = _x+Number(speed);
  6.       _y = Math.sin(i += .09)*Number(ausschlag)-75;
  7.    } else {
  8.       horst.gotoAndPlay(2);
  9.    }
  10. }

"if" mit den variabeln und random usw. funktioniert wunderbar - nur "else" nicht. ich möchte, dass er wenn mc horst bei x=250 ist in den mc horst geht und dort ab bild 2 abspielt...
habs schon mit allenmöglichen versch. möglichkeiten, den pfad anzugeben und auch unterschiedlichen instanznamen versucht.
ActionScript:
  1. else {
  2.         horst.unloadMovie();
  3.    }
und
ActionScript:
  1. else {
  2.         removeMovieClip("horst");
  3.    }
macht er auch nicht...
maks ist offline   Mit Zitat antworten
Alt 18-03-2004, 20:41   #2 (permalink)
*why ... ??
 
Benutzerbild von ichagx03
 
Registriert seit: Aug 2003
Beiträge: 451
hast schon mal getestet ob er überhaupt in den eilse teil geht ??
sonst musst du bei der if bedingung etwas ändern ..

must dir halt mal _x ausgeben lassen

trace(_x) //<-- das im if teil

dann kanst du schauen ob es überhaupt mal unter 250 kommt ..
__________________
grues tb
-----------------------------
--> ich bin nicht du, denn du bist nicht ich
-----------------------------
--> keine gahrantie für die richtiege Rechtschribunhg.
-----------------------------
.:: Schau da !!
ichagx03 ist offline   Mit Zitat antworten
Alt 18-03-2004, 20:44   #3 (permalink)
yaqwdrtgb
 
Benutzerbild von maks
 
Registriert seit: Dec 2003
Ort: hh
Beiträge: 92
ja, die bewegung von horst bleibt auch bei 250 stehen, nur führt er else nicht aus
maks ist offline   Mit Zitat antworten
Alt 18-03-2004, 20:51   #4 (permalink)
yaqwdrtgb
 
Benutzerbild von maks
 
Registriert seit: Dec 2003
Ort: hh
Beiträge: 92
komisch um fehler auszuschliessen habe ich den code mal vereinfacht:
ActionScript:
  1. onClipEvent (enterFrame) {
  2.     if (_x<=250) {
  3.         trace(_x)
  4.         _x = _x+1;
  5.             } else {
  6.         horst.gotoAndPlay(2);
  7.     }
  8. }
die ausgabe sagt mir jetzt jedesmal als letztes, dass x irgendwo kurz VOR 250 ist (249.8, 248.6 ...) ... ?
versteh ich nicht...
maks ist offline   Mit Zitat antworten
Alt 18-03-2004, 20:53   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
hi,

das onClipEvent liegt auf'm horst? Dann wäre dieser Pfad richtig:
ActionScript:
  1. else{
  2. this.gotoAndPlay(2);
  3. }
Allerdings wird horst dann immer noch nicht abspielen wollen, weil ihm bei jedem Framedurchlauf gesagt wird, dass er wieder zurück zu Bild 2 springen soll. Mach's doch lieber in MX Event-Handling:
ActionScript:
  1. // Script in der Zeitleiste, in der der horst liegt
  2. horst.onEnterFrame = function() {
  3.         var speed = Math.floor(Math.random()*2)+15;
  4.         var ausschlag = Math.floor(Math.random()*2)+50;
  5.         if (this._x<=250) {
  6.                 this._x += speed;
  7.                 this._y = Math.sin(i += .09)*ausschlag-75;
  8.         } else {
  9.                 this.gotoAndPlay(2);
  10. delete this.onEnterFrame;
  11.         }
  12. };
gruß,
roman

<edit>Klar zeigt dir die Ausgabe jedesmal nen Wert < 250. Du traced ja auch _x bevor es erhöht wurde. Beim nächsten enterFrame springt dein Script in den else-Zweig</edit>

Geändert von romän (18-03-2004 um 20:55 Uhr)
romän ist offline   Mit Zitat antworten
Alt 18-03-2004, 21:00   #6 (permalink)
yaqwdrtgb
 
Benutzerbild von maks
 
Registriert seit: Dec 2003
Ort: hh
Beiträge: 92
danke, roman, das funktioniert!

jetzt habe ich doch noch eine frage zu duplicateMovieClip:

ich möchte, dass horst, der sich wie oben beschrieben bewegt, klonkumpel bekommt, die ihre position per random auf der y-achse verteilt einehmen und dann mit ihm losdüsen.


zur erklärung: ich möchte sozusagen eine kleine horst-armee erzeugen, die sich von links nach rechts bis x=250 bewegt...

hast du da auch ne idee?
maks ist offline   Mit Zitat antworten
Alt 18-03-2004, 21:10   #7 (permalink)
yaqwdrtgb
 
Benutzerbild von maks
 
Registriert seit: Dec 2003
Ort: hh
Beiträge: 92
wenn ich das auf horst lege:
ActionScript:
  1. onClipEvent (enterFrame) {
  2.     amount = 10;
  3.     while (amount>0) {
  4.         duplicateMovieClip (horst, "horst"+i, i);
  5.         setProperty ("horst"+i, _y, random(275));
  6.         setProperty ("horst"+i, _xscale, random(50));
  7.         setProperty ("horst"+i, _yscale, random(50));
  8.         i++;
  9.         amount--;
  10.     }
  11. }

spinnt er rum, dupliziert zwar den mc aber verteilt ihn nicht randommässig auf y und die performance bricht komplett zusammen!


???
maks ist offline   Mit Zitat antworten
Alt 18-03-2004, 21:22   #8 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Ort: D'dorf
Beiträge: 765
Nu lass doch mal das onClipEvent.
So z.B.:
ActionScript:
  1. // Script wieder in hotte's Zeitleiste
  2. function hotteLauf(){
  3.         var speed = Math.floor(Math.random()*2)+15;
  4.         var ausschlag = Math.floor(Math.random()*2)+50;
  5.         if (this._x<=250) {
  6.                 this._x += speed;
  7.                 this._y = this._origY + Math.sin(this.i += .09)*ausschlag-75;
  8.         } else {
  9.                 this.gotoAndPlay(2);
  10.                 delete this.onEnterFrame;
  11.         }
  12. };
  13. function cloneDenHotte(anzahl){
  14. var y;
  15. for(var j = 1; j <= anzahl; j++){
  16.     y = Math.random()*500;
  17. horst.duplicateMovieClip("horst"+j, j, {_y:y, _origY:y}).onEnterFrame = hotteLauf;
  18. }
  19. }
  20. horst.onEnterFrame = hotteLauf;
  21. cloneDenHotte(10);

gruß,
roman

<edit>so wie du's gemacht hast dupliziest du horst übrigens in jedem Framedurchlauf. Da muss der Prozessor zwangsweise in die Knie gehen</edit>

Geändert von romän (18-03-2004 um 21:25 Uhr)
romän ist offline   Mit Zitat antworten
Alt 19-03-2004, 10:25   #9 (permalink)
yaqwdrtgb
 
Benutzerbild von maks
 
Registriert seit: Dec 2003
Ort: hh
Beiträge: 92
danke, wenns dich interessiert, kannst du mir ja ne mail schicken, und ich zeig dir, was dabei rauskommt!
yaqwdrtgb@web.de


gruß,
m.
maks 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 15:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele