Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-04-2004, 15:18   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 149
Abfrage

Hallo,

ich erzeuge mit folgendem Skript Quadrate und entferne Sie wieder (liegt alles im ersten Frame). Nun möchte ich aber, dass mein Skript auf Frame 5 springt, wenn alle Quadrate entfernt sind.

Jemand ne Idee?

Danke!


// Aufruf der Funktion entfernen. liegt auf nem MC
// im Bereich 6x6, verlieren 100% alpha

onClipEvent (enterFrame) {
entfernen(6,6,100);
}


// Das Ursprungsquadrat wird dupliziert.
// Von jedem Duplikat werden x- und y-Position berechnet, indem
// man als x- bzw. y-Position die Ursprungsbreite- bzw- hoehe
// nimmt und diese mit der Anzahl der Quadrate multipliziert

movieclip.prototype.duplizieren = function (horizontal,vertical){
for (y=0; y<vertical; y++) {
for (x=0; x<horizontal; x++) {
i++;
duplicateMovieClip ("quadrat", "quadrat_"+y+"|"+x, i);
this["quadrat_"+y+"|"+x]._y = y*quadrat._height;
this["quadrat_"+y+"|"+x]._x = x*quadrat._width;
}
}
}

// Die Duplikate werden nach dem Zufallsprinzip entfernt

movieclip.prototype.entfernen = function (horizontal,vertical,alpha){
x = Math.floor(Math.random()*(horizontal));
y = Math.floor(Math.random()*(vertical));
if (_root["quadrat_"+y+"|"+x]._alpha >= 0) {
_root["quadrat_"+y+"|"+x]._alpha -= alpha;
} else {
removeMovieClip(_root["quadrat_"+y+"|"+x]);
}
}

// Es werden 6 Quadrate horizontal, 6 vertikal erzeugt.

duplizieren(6,6);

// Das Ursprungsquadrat wird unsichtbar gemacht

quadrat._visible = false;
bluefactor ist offline   Mit Zitat antworten
Alt 27-04-2004, 15:29   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
ActionScript:
  1. movieclip.prototype.entfernen = function(horizontal,vertical,alpha){
  2. i++
  3. x = Math.floor(Math.random()*(horizontal));
  4. y = Math.floor(Math.random()*(vertical));
  5. if (_root["quadrat_"+y+"|"+x]._alpha >= 0) {
  6. _root["quadrat_"+y+"|"+x]._alpha -= alpha;
  7. } else {
  8. removeMovieClip(_root["quadrat_"+y+"|"+x]);
  9. }
  10. if(i>=6){
  11.  gotoAndStop(5);
  12. }
  13. }

so z.B.?!

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 27-04-2004, 15:38   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 149
Danke, aber zum einen sollte man i nicht nochmal als Variable verwenden, weil das Skript dann nicht mehr läuft (also nur nen anderen Namen, l z.B.). Zum anderen weiß man ja auch nicht, wie oft die Funktion aufgerufen wird, denn nicht bei jedem Aufruf verschwinden auch zwangsläufig Quadrate (wird ja zufällig ermittelt).

Aber trotzdem danke! hast du noch ne Idee?

Ben
bluefactor ist offline   Mit Zitat antworten
Alt 27-04-2004, 15:43   #4 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
yo.. war nur ein ansatz... hier noch einer...

ActionScript:
  1. movieclip.prototype.entfernen = function(horizontal,vertical,alpha){
  2.         j++
  3.         x = Math.floor(Math.random()*(horizontal));
  4.         y = Math.floor(Math.random()*(vertical));
  5.         if (_root["quadrat_"+y+"|"+x]._alpha >= 0) {
  6.                 _root["quadrat_"+y+"|"+x]._alpha -= alpha;
  7.         } else {
  8.                 removeMovieClip(_root["quadrat_"+y+"|"+x]);
  9.         }
  10.         if(j>=duplianzahl){
  11.                 gotoAndStop(5);
  12.         }
  13. }


dann leg doch vorher fest wieviele mc´s attached werden sollen....
var duplianzahl = 6;

dann wär der aufruf so...
duplizieren(duplianzahl,duplianzahl);

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 27-04-2004, 15:50   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 149
Also ich kann Dir grade nicht genau folgen bzw. ich glaube nicht, dass das so funktioniert. Das ändert doch an der Tatsache nichts, dass die Funktion evtl. aufgerufen wird, ohne dass ein MC entfernt wird?!
Oder hab ich grade nen Denkfehler?
Hab dir mal die Datei rangehängt. DANKE!

Und noch eine Frage: Ich entferne einen bestimmten Quader. Kann man irgendwie ein Zeitintervall einbauen, so dass man nachh z.B. 0,5s den nächsten auf die gleiche Weise entfernt? Sonst steht am Schluss noch ein Quadrat da, was vielleicht durch die Zufallsfunktion erst nach 5 sec entfernt wird.

movieclip.prototype.enthuellen = function (horizontal,vertical,alpha){
removeMovieClip(_root["quadrat_1|3"]);

}

greetz, ben
Angehängte Dateien
Dateityp: zip duplikat.zip (3,6 KB, 2x aufgerufen)

Geändert von bluefactor (27-04-2004 um 16:02 Uhr)
bluefactor 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 03:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele