+ Antworten
Ergebnis 1 bis 13 von 13

Thema: Movieclips ansteuern mit setInterval oder Math.random

  1. #1
    TP-Senior Angie3007 ist auf einem guten Weg Avatar von Angie3007
    Registriert seit
    Feb 2006
    Beiträge
    105

    Movieclips ansteuern mit setInterval oder Math.random

    Guten Abend alle zusammen,

    habe den ganzen Abend das Forum und das WWW durchstöbert, aber keine zufriedenstellende Antwort auf meine Frage bekommen.

    Ich habe auf der Bühne 9 einzelne Movieclips platziert. Wichtig ist hier, daß sie alle eigenständige MC's also keine immer wiederkehrenden Instanzen von einem Bibliotheks-MC sind. Dann würde ich ja eher mit attachMovie arbeiten.
    Aber in dem Fall ist es wichtig, daß jeder MC seinen festen Platz hat.

    Jetzt möchte ich diese MC's einzeln über ActionScript ansprechen, damit jeder in seinem eigenen Rhythmus immer mal wieder auf der Bühne erscheint.

    Ich habe mit Math.random und setInterval rumgetrickst, brachte aber nicht den gewünschten Erfolg. Für mehrere Instanzen von einem Haupt-MC gibt es genug Beispiele, für mein Problem kriege ich die aber nicht umgestrickt.

    Hätte einer von Euch eine Idee?

    Lg Anja

  2. #2
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    Schreibe Dir doch einfach eine function, die die gewünschte Veränderung vornimmt (AlphaTween, Rotation, Verschiebung, ...) und nutze folgende function um unterschiedliche Intervalle zu erreichen.
    Mit weiteren Prüfungen, z.B. dass eine Veränderung schon zu ende ist, kann Du ja umgehen, dass erneut zu früh aufgerufen wird.

    PHP-Code:
    function randRange(min:Numbermax:Number):Number {
        var 
    randomNum:Number Math.floor(Math.random() * (max min 1)) + min;
        return 
    randomNum;
    }

    setTimeout(veränderungFunctionrandRange(20008000)); 
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  3. #3
    TP-Moderator Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Avatar von Wanderratte
    Registriert seit
    Mar 2002
    Beiträge
    5.485
    Hallo Anja,

    wenn ich es richtig verstehen, hast du ein Problem damit, die MC per Random anzusprechen ?
    Dann versuche mal folgendes:
    PHP-Code:
    var filmArray:Array = new Array("instanzname1","instanzname2","instanzname3","instanzname4","instanzname5","instanzname6")
    function 
    deineFunction ()
    {
        var 
    obj filmArray[random(filmArray.length)]
        
    trace(obj)
    }
    var 
    intervallID setInterval(deineFunction,2000
    Gruß

    Wanderratte
    Gebildet ist,
    wer weiß,
    wo er findet,
    was er nicht weiß.

    4bugs
    Home
    Amazon Wunschzettel

  4. #4
    TP-Senior Angie3007 ist auf einem guten Weg Avatar von Angie3007
    Registriert seit
    Feb 2006
    Beiträge
    105
    Guten Morgen,

    @Mark

    Ich glaube, in der Variante habe ich auch schon mal was gelesen.
    Kann es sein, daß das ebenfalls irgendwas zu tun hat mit der Erstellung eines
    Prototypen, in dem man eine Funktion erstellt, die man auf verschiedene MC's anwenden kann?

    @Ralf

    Erstmal: 6.34 Uhr, was für eine unchristliche Uhrzeit!
    Kann ich denn nicht nur einen Array bilden, wenn sich sämtliche Instanzen auch einen MC beziehen?
    Hier habe ich aber neun komplett eigene MC's. Das heißt, ich habe in der Bibliothek nicht einen MC, der z.B. "rotate" heißt, von dem ich Instanzen auf die Bühne gezogen habe, die rotate0, rotate1 etc. heißen.
    Bei mir liegen schon in der Bibliothek einzelne Mc's, die rotate1, rotate2 etc.
    heißen.

    Lg Anja

  5. #5
    TP-Moderator Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Avatar von Wanderratte
    Registriert seit
    Mar 2002
    Beiträge
    5.485
    Hallo,
    in dem Array kannst du die Instanznamen eintragen, die du willst und haben nichts mit dem Namen in der Bibliothek zu tun.
    In dem Array, kommen die Namen von den Objecten rein, die auf der Bühne liegen
    instanzname1 war in dem Falle nur ein Beispiel, du kannst auch home_mc,weiss_der geiger_mc usw. eintragen. Wichtig ist nur das die MCs auch die richtigen Instanznamen haben.
    Gruß

    Wanderratte
    Gebildet ist,
    wer weiß,
    wo er findet,
    was er nicht weiß.

    4bugs
    Home
    Amazon Wunschzettel

  6. #6
    TP-Senior Angie3007 ist auf einem guten Weg Avatar von Angie3007
    Registriert seit
    Feb 2006
    Beiträge
    105
    Hallo Ralf,

    o.k. kapiert.

    Wenn ich das jetzt richtig verstehe, starten die MC's zwar zufällig, aber immer nacheinander, also einmal der, einmal der der andere usw.

    Ich möchte aber erreichen, daß alle ganz willkürlich auftauchen, d.h. es könnten auch drei MC's mit verschiedenen Startzeiten auf der Bühne erscheinen.

    Es geht hier um einen Shooter, bei dem mal hier und mal da ein Gegner aus der Versenkung auftaucht, den man treffen muss. Deswegen auch die seperaten MC's, da ich hier auf der Zeitleiste der Clips mit Masken arbeite, da die Gegner hinter verschiedenen Objekten auftauchen.

    Wenn dann immer nur ein Gegner auf der Bühne ist, wäre die Herausforderung natürlich nicht allzu groß.
    Also denke ich, man müßte für jeden MC eine eigene Funktion definieren.

    Lg Anja

  7. #7
    TP-Moderator Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Wanderratte lebt für das TP und seine User Avatar von Wanderratte
    Registriert seit
    Mar 2002
    Beiträge
    5.485
    Hallo,

    das kannst du doch einstellen, mit random und jenachdem wie schnell du aufrufst oder wie. Du brauchst ja auch kein intervall zu setzen.
    das Beispiel zeigt die nur, wie du unterschiedliche MC per Zufall steuern kannst.
    Du wirst es in deinem Fall eh noch verfeinern müssen, in dem du feststellt, welche MCs gerade abgespielt werden, welche frei sind usw.
    Gruß

    Wanderratte
    Gebildet ist,
    wer weiß,
    wo er findet,
    was er nicht weiß.

    4bugs
    Home
    Amazon Wunschzettel

  8. #8
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    So, hier mal was Code zum rumspielen.
    PHP-Code:
    // Anzahl der MC auf der Bühne
    var mcArray:Array = new Array(mc1mc2mc3);
    // Fadegeschwindigkeit
    var fadeGeschw:Number 3;
    //Min / Max Zeiten für Aktionen (im ms);
    var minTime:Number 500;
    var 
    maxTime:Number 10000;

    MovieClip.prototype.fade = function(a:Stringg:Number):Void {
        
    this.action a;
        
    this.geschwindigkeit g;
        
    this.onEnterFrame = function() {
            if (
    this.action == 'aus' && this._alpha>0this._alpha -= this.geschwindigkeit;
            if (
    this.action == 'aus' && this._alpha<=0){
                
    inhalt[this._name].zustand 0;
                
    delete this.onEnterFrame;
            }
            if (
    this.action == 'ein' && this._alpha<100this._alpha += this.geschwindigkeit;
            if (
    this.action == 'ein' && this._alpha>=100) {
                
    setTimeout(makeItrandRange(minTimemaxTime), 'aus'this);
                
    delete this.onEnterFrame;
            }
        }
    }

    function 
    makeIt(action:Stringobj:MovieClip):Void{
        switch(
    action){
            case 
    'ein':
                
    obj._x randRange(+ (obj._width/2), Stage.width - (obj._width/2));
                
    obj._y randRange(+ (obj._height/2), Stage.height - (obj._height/2));                                                                                                                     
                
    obj.fade(actionfadeGeschw);
                break;
            case 
    'aus':
                
    obj.fade(actionfadeGeschw);
                break;
        }
    }

    function 
    randRange(min:Numbermax:Number):Number {
        var 
    randomNum:Number Math.floor(Math.random() * (max min 1)) + min;
        return 
    randomNum;
    }


    var 
    inhalt:Object = new Object();
    for (var 
    i:Number 0mcArray.lengthi++) {
      
    inhalt[mcArray[i]._name] = new Object();
      
    inhalt[mcArray[i]._name].zustand 0;
    }

    this.onLoad = function(){
        for(
    i in mcArray){
            
    mcArray[i]._x mcArray[i]._y = -200;
            
    _root.mcArray[i]._alpha 0;
        }
    }

    this.onEnterFrame = function(){
        var 
    zuffi:Number randRange(0mcArray.length-1);
        if(
    inhalt[mcArray[zuffi]._name].zustand == 0){
            
    inhalt[mcArray[zuffi]._name].zustand 1;
            
    setTimeout(makeItrandRange(minTimemaxTime), 'ein'mcArray[zuffi]);
        }

    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  9. #9
    TP-Senior Angie3007 ist auf einem guten Weg Avatar von Angie3007
    Registriert seit
    Feb 2006
    Beiträge
    105
    Habe mit beiden Vorschlägen rumgetüftelt und muss zu meiner Beschämung sagen - meine Movieclips ignorieren mich einfach
    Sie ziehen einfach weiter unbeeindruckt ihre Bahn.

    Es kann doch nicht so schwer sein so einem Clip kurz und prägnant zu sagen, versteck Dich ein bißchen und komm immer mal wieder raus wenn dir danach ist.

    Das ist wie in den meisten Fällen wahrscheinlich wieder so eine winzige Kleinigkeit, die einen fast wahnsinnig macht.

    Ich habe mal eine Mini-Version angehangen um den Zusammenhang zu verdeutlichen.

    Lg Anja
    Geändert von Angie3007 (11.10.2007 um 23:46 Uhr)

  10. #10
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    Ok, Ihr eingebildeten CS3 User, dann macht mal alleine weiter, ich bin raus.
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  11. #11
    TP-Senior Angie3007 ist auf einem guten Weg Avatar von Angie3007
    Registriert seit
    Feb 2006
    Beiträge
    105
    Ja, ist ja gut. Ich schäme mich schon. Habe es auch erst heute morgen gemerkt.

    An das Runterkonvertieren denkt man nicht immer.

    Aber auf die CS3-Version ist mir im Rahmen der Adobe Grace Period umsonst upgedatet worden. Am liebsten war mir immer noch das gute MX2004.

    Im Anhang nochmal eine MX2004-Version.
    Geändert von Angie3007 (11.10.2007 um 23:46 Uhr)

  12. #12
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    Na sooo schlimm wäre es nun auch nicht gewesen.
    Ok MX2004, nun wolltest Du es aber wissen, was.

    Hier dann mal ein Ansatz.
    Angehängte Dateien
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  13. #13
    TP-Senior Angie3007 ist auf einem guten Weg Avatar von Angie3007
    Registriert seit
    Feb 2006
    Beiträge
    105
    Mensch, Mark,

    das bringt mich jetzt einen riesigen Schwung weiter !

    Mit ActionScript tue ich mich definitiv etwas schwer.
    Wenn ich jetzt z.B. Deinen Code durchgehe, kann ich das nachvollziehen und kapiere auch was da passiert. Aber wehe, ich soll mir eigenständig einen kompletten Code zusammenbauen.

    Man findet meistens im WWW oder in Büchern Codefragmente, die zu einem sinnvollem Ganzen zu verbinden ist für den Anfänger schwierig.

    Aber ich habe mal begonnen, solche Lösungsansätze für mich zu archivieren, damit ich mit der Zeit mal immer konkret was nachschlagen kann.

    Wenigstens habe ich kapiert, wie man Masken verwendet, das hast Du mir vor grauer Vorzeit mal sehr gut nahe gebracht !

    Lg Anja

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51