Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-11-2004, 13:06   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 17
Zufalls movieclips ende abwarten

Servus

Ich mache einen Bildschirmschoner und möchte dass Movieclips per zufall ablaufen. Dieser "Zufall"-Effekt habe ich bereits. Ich mache es mit dem Sichtbarkeit-Wert (visible). Hier mein Code dafür:
-------------------------------------------
function () { bildAnAus = function () { var x = random(3)+1;_root["bild"+_root.aktiv]._visible = false;_root["bild"+x]._visible = true;_root.aktiv = x;};_root.myInt = setInterval(bildAnAus, 2000);}
-------------------------------------------

Nun möchte ich dass der Movieclip, der am laufen ist, erst wieder unsichtbar wird, wenn er zu Ende ist (twenn) und dass der nächste Movieclip, der per Zufall sichtbar wird, erst beginnt, wenn der vorherige zu Ende ist. Wie kann ich das machen?

Gruss und Dank Kirtas
kirtas ist offline   Mit Zitat antworten
Alt 18-11-2004, 14:22   #2 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 296
hmmm
mir fallen 2 Lösungsansätze ein.

1. auf dem letzten Fram eim Effekt mc die Funktion aufrufen.

oder mit eine Hilfs onEnterFame funktion, die checkt ob der effekt zu ende ist.
ActionScript:
  1. bildAnAus = function () {
  2. var x = random(3)+1;
  3. _root["bild"+_root.aktiv]._visible = false;
  4. _root["bild"+x]._visible = true;
  5. _root["bild"+x].onEnterFrame=function(){
  6. if(this._currentframe>=this._totalFrames()){
  7. bildAnAus();
  8. delete this.onEnterFrame;
  9. }
  10. }
  11. _root.aktiv = x;
  12.  
  13. };

ist nicht getestet, sollte aber funktionieren.

Gruß
Serge

Geändert von Serge (18-11-2004 um 14:23 Uhr)
Serge ist offline   Mit Zitat antworten
Alt 18-11-2004, 14:58   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 17
Hallo herzlichen Dank für deine Antwort. Sie hat mir sehr geholfen. Kurz noch ne Frage: Bei mir laufen nun die Movieclips unendlichlang und sie wechseln somit nicht mehr, wie kann ich machen dass ein Movieclip nur einmal ablaufen darf, danach der nächste einmal, und dann evt. wieder der erste. Dass heisst der Twenn darf nur einmal durchlaufen werden und nicht in scih loopen.Idee?

Danke Kirtas
kirtas ist offline   Mit Zitat antworten
Alt 18-11-2004, 15:27   #4 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 296
da müssen wir ein bissel umstruktutieren
habs gerade etwas geändert
ActionScript:
  1. //ein Array mit den Effekt mc "namen"/namenteilen
  2. namen_ar=[1,2,3];
  3.  
  4.  
  5. //Arraymisch funktion hier aus dem Forum
  6. Array.prototype.mix = function() {
  7.     var anzahl = this.length;
  8.     for (var i = 0; i < anzahl; i++) {
  9.         var zNum = Math.floor(Math.random() * anzahl);
  10.         var temp = this[i];
  11.         this[i] = this[zNum];
  12.         this[zNum] = temp;
  13.     }
  14. };
  15.  
  16.  
  17. bildAnAus = function () {
  18.     if(x<(namen_ar.length-1)){
  19.         x++;
  20.     }else{
  21.         //mischen des Arrays
  22.         namen_ar.mix();
  23.         x=0;
  24.     }
  25.     _root["bild"+namen_ar[_root.aktiv]]._visible = false;
  26.     _root["bild"+namen_ar[x]]._visible = true;
  27.     _root["bild"+namen_ar[x]].onEnterFrame=function(){
  28.         if(this._currentframe>=this._totalframes){
  29.             bildAnAus();
  30.             delete this.onEnterFrame;  
  31.         }
  32.         }
  33.     _root.aktiv = x;
  34. };
  35. bildAnAus();

Geändert von Serge (18-11-2004 um 15:35 Uhr)
Serge ist offline   Mit Zitat antworten
Alt 19-11-2004, 07:43   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 17
Morgen Serge

Sie schon ganz gut aus. Nur kommen die Moivieclips nicht immer einzeln....irgendwas hab ich falsch gemacht..wie gesagt...ich möchte dass ich beliebig viele clips (momentan 3) per zufall abspielen kann, immer hinterheinander (nicht gleichzeitig).....hab dir meine version hinaufgeladen (www.kirtas.ch/test.rar), wär cool wenn du's dir anschauen könntest.....Herzlichen Dank & Gruss Kirtas
kirtas ist offline   Mit Zitat antworten
Alt 19-11-2004, 15:37   #6 (permalink)
The Man Who Wasn't There
 
Benutzerbild von fraggle two
 
Registriert seit: Jul 2003
Ort: BÄRLIN
Beiträge: 1.156
hi kirtas,

den tread hatteste doch schon mal und ich hab dir auch nen beispiel gepostet!

hier

gruß
mike
__________________
Dot-Realities
Mike Broders
Berlin

ICQ:105925103

Dot-Realities v4.0 under construction!
fraggle two ist offline   Mit Zitat antworten
Alt 22-11-2004, 08:45   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 17
Servus

Merci, aber wo / wie kann ich die Namen (bild1...) per Bild/twenn definieren? (d.h. die Bilder anschreiben) Ich kann das bei deinem Beispiel nicht finden, wo hast die Bilder beschriftet?

Gruss und Dank

Kirtas
kirtas ist offline   Mit Zitat antworten
Alt 22-11-2004, 19:03   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 17
Servus

Habs herausgefunden; kleine frage am rande, möchte dass nach jedem 3ten Bild das Bild99 kommt. Habe einen Counter gemacht, funzt jedoch nicht, wieso?

var aktiv = this._name;
var counter = 0;
this.onEnterFrame = function() {
var x = random(5)+1;
var n = 0;

if (aktiv != "bild"+x) {
_root.attachMovie("bild"+x, "bild"+x, 1);
removeMovieClip(this);
n = n+1;
}
if (n==4) {
_root.attachMovie("bild"+99, "bild"+99, 1);
removeMovieClip(this);
}


};
stop();


---------------
gruss kirtas
kirtas 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:46 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele