Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-07-2004, 19:40   #1 (permalink)
Neuer User
 
Benutzerbild von schmiand
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 50
Zufall "auf Zeit" und ohne Wiederholung!

Hallo!

Habe folgende Aufgabe und weiss nicht, wie ich das alles zusammen im ActionScript zusammenpacke.
Habe schon angefangen und einiges funktioniert bereits, aber weiter steige einfach nicht durch.
Kann mir jemand bitte helfen!!!
------------------------------------
- es gibt insgesamt fünf Objekte (MCs)
- Nach einer Pause (2 Sekunden) wird einer von den Objekten per Zufall aktiviert und fährt seiner eigenen Zeitleiste nach vorwärts und bleibt am letzten Frame stehen (wie im MC bereits angelegt)
- nach einer bestimmten "Erscheinungs-Zeit" (3 Sekunden) soll der Objekt seine Zeitleiste rückwärts ablaufen (d.h. wieder zurückkommen, verschwinden)
- nach einem bestimmten Zeitinterval (5 Sekunden) soll ein anderer Objekt (nach Zufall) das Gleiche tun
- die Reihenfolge der fünf Objekte ist zufällig, aber ohne Wiederholung in der Schleife
- wenn alle fünf Objekte erschienen sind, kann sich so eine Zufallsschleife endlos wiederholen
------------------------------------
In der angefügten "FLA" ist die Aufgabe auch beschrieben
Danke im voraus für die Hilfe!
Angehängte Dateien
Dateityp: zip zufall_auf_zeit1.zip (9,8 KB, 8x aufgerufen)
__________________
*** Das Leben ist kurz!.. Hab' nur bisschen Geduld! ***
schmiand ist offline   Mit Zitat antworten
Alt 12-07-2004, 21:50   #2 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
was du brauchst ist ein shuffle prinzip da gibt es eine sehr schöne methode so etwas zu machen hier mal ein simples beispiel fürs janze

PHP-Code:
this.meinOrgArray = [mc1mc2mc3mc4mc5];
this.shuffle = function(pArray):Array {
    return 
pArray.sort(function () {return random(3)-1;});
}
this.initLoop = function() {
    
trace("initLoop");
   
    
this.meinPopArray this.shuffle(this.meinOrgArray.concat());
    
this.id setInterval(this"getSingle"1000);
};
this.getSingle = function() {
    if (
this.meinPopArray.length>1) {
        
trace(this.meinPopArray.pop());
    } else if (
this.meinPopArray.length==1) {
        
trace(this.meinPopArray.pop());
        
clearInterval(this.id);
        
this.initLoop();
    }
};
this.initLoop(); 
__________________
TVNEXT Solutions

Geändert von atothek (12-07-2004 um 21:51 Uhr)
atothek ist offline   Mit Zitat antworten
Alt 12-07-2004, 21:56   #3 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Ooops! da trau ich mir mein script ja garnimmer Posten
ActionScript:
  1. var mcArray = ["mc1", "mc2", "mc3", "mc4", "mc5"];
  2. var tl = this;
  3. MovieClip.prototype.move = function(mcj, count) {
  4.     tl[mcj].vari = count;
  5.     this.onEnterFrame = function() {
  6.         if (tl[mcj].vari) {
  7.             this.nextFrame();
  8.         } else {
  9.             this.prevFrame();
  10.             if (this._currentframe<=1) {
  11.                 delete this.onEnterFrame;
  12.             }
  13.         }
  14.     };
  15.     var Kill = setInterval(function () {
  16.         tl[mcj].vari = false;
  17.         hin(4000);
  18.         clearInterval(Kill);
  19.     }, 7000);
  20. };
  21. function hin(inter) {
  22.     var mc = Math.floor(Math.random()*mcArray.length);
  23.     var Sid = setInterval(function () {
  24.         tl[mcArray[mc]].move(mcArray[mc], true);
  25.         tl.mcArray.splice(mc, 1);
  26.         clearInterval(Sid);
  27.     }, inter);
  28. }
  29. hin(2000);
Angehängte Dateien
Dateityp: zip arr_int_mc_kill.zip (3,6 KB, 14x aufgerufen)
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 12-07-2004, 22:35   #4 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
@rusty na jedes script hat seine berechtigung

hir nun noch eine andere variante habe ich zeitgleich gescriptet.
hier ist die endlosschleife mit integriert
Angehängte Dateien
Dateityp: rar zufall_auf_zeit1.rar (8,3 KB, 14x aufgerufen)
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 12-07-2004, 22:41   #5 (permalink)
Neuer User
 
Benutzerbild von schmiand
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 50
WOW!
TAUSEND DANK!!!
Das ist echt super Hilfe!!!
Alles funktioniert!
------------------------
Eine Frage noch:
Diese Scripte (von Euch) funktionieren natürlich nur in einem Keyframe.
Ich habe aber in der Hauptzeitleiste mehrere Schlüsselbilder mit "Stops" (total aufwendiges Projekt).
Was muss ich denn jetzt machen:
- in jedem Keyframe das Gleiche reinschreiben??? (wird dann die Zufallsmethode noch funktionieren?)
- oder gibt es da vielleicht noch eine Alternative?

-----------
aber unabhängig davon, ich bin super froh, dass es jetzt geht!
würde euch gerne zu einem Drink einladen!
... wenn es nicht virtuell möglich wäre!
__________________
*** Das Leben ist kurz!.. Hab' nur bisschen Geduld! ***

Geändert von schmiand (12-07-2004 um 22:51 Uhr)
schmiand ist offline   Mit Zitat antworten
Alt 12-07-2004, 23:00   #6 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
na 2 berliner auf nen drink ist immer gut

na das mit dem zufall ansich ist unabhängig von den keyframes. wenn du das ganze noch um diese 2 function erweiterst
sollte es überall autark gehen

PHP-Code:

this
.stopAll = function(){
    
clearInterval(this.playNextFrameInterval);
    
clearInterval(this.pauseId);
}

this.resetLoop = function(){
    
this.stopAll();
    
this.dir 1;
    
this.initLoop();

damit kannste das ganze gut kontrollieren. wenn du es produktiv einsetzen willst nimm leiber folgende version von der playNextFrame function
da ist noch ein updateAfterEvent drin was bei setInterval sachen mit sehr schnellen intervallen ein muß ist.

PHP-Code:
this.playNextFrame = function(){
    if(
this.dir>&& this.activeMc._currentframe<this.maxFramethis.activeMc.gotoAndStop(this.activeMc._currentframe+this.dir);
    else if(
this.dir>&& this.activeMc._currentframe==this.maxFrame){
        
this.dir = -1;
        
clearInterval(this.playNextFrameInterval);
        
this.pauseInterval(true);
        return;
    }
    
    if(
this.dir<&& this.activeMc._currentframe>this.minFramethis.activeMc.gotoAndStop(this.activeMc._currentframe+this.dir);
    else if(
this.dir<&& this.activeMc._currentframe==this.minFrame){
        
this.dir 1;
        
clearInterval(this.playNextFrameInterval);
        
this.pauseInterval(true);
        return;
    }
    
updateAfterEvent();

__________________
TVNEXT Solutions

Geändert von atothek (12-07-2004 um 23:01 Uhr)
atothek ist offline   Mit Zitat antworten
Alt 13-07-2004, 00:08   #7 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Schluck
Ich muß noch viel lernen
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 13-07-2004, 00:09   #8 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
na wie meinste denn das ??? bist doch ein alter hase oder???
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 13-07-2004, 00:20   #9 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Alter Hase vielleicht schon, aber kein Programierer
Hab erst vor 2 Jahren angefangen, da machen mich solche scripts schon noch fertig!!
Aber ich freu mich über solche Dinger, wo soll ich sonst was lernen
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 13-07-2004, 00:31   #10 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
na ich mach das nur ein 1/2 jahr länger und bin auch nicht weiter ist halt nur ein anderer weg das resultat ist das gleiche. aber du hast recht das FF ist ein toller platz zum lernen und manchmal auch zum lehren

gute nachte an alle da drausen
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 13-07-2004, 16:04   #11 (permalink)
Neuer User
 
Benutzerbild von schmiand
 
Registriert seit: Jul 2004
Ort: Berlin
Beiträge: 50
~~~~~~~~~~
~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~
TAUSEND UND VIELEN DANK!!!
alte Hasen, ihr seid super!
alles funktioniert einwandfrei!
~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~
~~~~~~~~~~
__________________
*** Das Leben ist kurz!.. Hab' nur bisschen Geduld! ***
schmiand 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