tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
198
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    661
    Hallo zusammen,

    ich habe das Problem, dass mein Script sich einfach aufhängt.
    Irgendwo mache ich wohl etwas falsch...
    Mein Ziel ist das folgende: Ich lade x Bilder in x Clips rein.
    Nun möchte ich zwischen diesen Bildern faden (immer nur in eine Richtung).
    Meine Funktion nimmt dabei einen Clip, gibt diesem eine onEnterFrame Funktion welche
    den Aplhawert schrittweise erhöht und zeitgleich gibt es allen anderen Clips eine onEnterFrame Methode,
    die deren Alphawert schrittweise reduziert.

    Die Funktion läuft auch an - sofern ich Sie mit einem Intervall aufrufe (1000ms und größer).

    Allerdings ist dies ja nicht ganz korrekt - abhängig von den Bildern pro Sekunde die ich eingestellt habe (30 momentan)
    variiert ja das Ergebnis was eigentlich berücksichtigt werden muss.

    Also wäre es ja theoretisch besser, meine Funktion einmalig aufzurufen und davor einen Boolschen Wert anzugeben welcher beim starten auf true gesetzt ist.
    Dann beim start der Funktion wird er auf false gesetzt und erst wenn alle onEnterFrame-Methoden gelöscht sind, sollte die Funktion erneut aufgerufen werden,
    damit sich nichts überschneidet.

    Dazu habe ich ein Objekt erstellt das die Eigenschaft überprüft um dann die Methode neu aufzurufen -
    leider klappts nicht...

    Also - hier mal der Code:
    Code actionscript:
    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
    
    //variables
    actualimage = 0;
    fadingspeed = 5;
     
    //function
    function changePicture(){
        myObj.readychange = false;
        if(actualimage<pictures){
            actualimage++;
        }
        else{
            actualimage = 1;
        }
        //picture fading in and out
        _root["picture"+actualimage].onEnterFrame = function(){
            this._alpha+=fadingspeed;
            if(this._alpha >= 100){
                myObj.readychange = true;
                delete this.onEnterFrame;
            }
        }
        for(i=0;i<=pictures;i++){
            if(i!=actualimage){
                _root["picture"+i].onEnterFrame = function(){
                    this._alpha-=fadingspeed;
                    if(this._alpha <= 0){
                        delete this.onEnterFrame;
                    }
                }
            }
        }
    }
     
    var myObj:Object = new Object();
    myObj.readychange = true;
    myObj.watch(readychange, changePicture(), true);

    Über Ratschläge wäre ich sehr verbunden...
     
    Besten Gruß,

    Mike

  2. #2
    Avatar von SonMiko
    SonMiko SonMiko ist offline Mitglied Platin
    Registriert seit
    Jun 2005
    Beiträge
    661
    Keiner eine Ahnung?

    Was mir auch total unbegreiflich ist, ist die Tatsache dass ein einuelner Aufruf nicht furchläuft, also wenn ich changePicture() aufrufe wird die Funktion nicht einmal halb ausgeführt,
    das erste Bild ist absolut transparent und leicht schwer zu erkennen.
    Wenn ich aber
    onMouseDown = function(){
    als Funktions-Kopf verwende, läuft mit einem Klick alles sauber durch - also der erste Fade.

    Kein Mensch kennt die Antwort - wie geil...

    Fühlt man sich wenigstens gleich besser.
    Geändert von Jens B. (20.03.10 um 01:25 Uhr)
     
    Besten Gruß,

    Mike

  3. #3
    Alaniak Alaniak ist offline Mitglied Gold
    Registriert seit
    Jul 2005
    Beiträge
    219
    Nett. Da fühlt man sich doch gleich genötigt zu antworten.

    Ich hätte das eher mit tweens, respektive tweenlite gemacht anstatt mit einem onEnterFrame. Allerdings ist mein AS2 mittlerweile etwas eingerostet.
     

  4. #4
    Avatar von Jens B.
    Jens B. Jens B. ist offline Damn good coffee!
    tutorials.de Premium-User
    Registriert seit
    Nov 2001
    Beiträge
    2.487
    Das ist ja auch ein ziemlich langer Text zum lesen, da muss man Geduldig sein, SonMiko

    Was genau ist denn myObj bzw was ist readychange, wodurch werden diese Funktionen aufgerufen und verändert? Was ergeben trace-Befehle an folgenden Stellen:
    a. direkt am Anfang von changePicture()
    b. in der for-Schleife, dort noch in der if - und zwar lass dir da mal i ausgeben.
    c. jeweils vor den delete this.onEnterFrame

    Außerdem würde ich vor jedem Zuweisen eines neuen onEnterFrames erst einmal das alte Löschen. Von wievielen Objekten sprechen wir denn hier?

    Was genau macht das Script jetzt nochmal? Magst du mal ne swf oder fla posten? Kann mir das ganze noch nicht wirklich vorstellen.
     

Ähnliche Themen

  1. Actionscript die 3.te
    Von TheEM im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 27.07.03, 09:31
  2. Actionscript die 2.te
    Von TheEM im Forum Flash Plattform
    Antworten: 9
    Letzter Beitrag: 26.07.03, 13:59
  3. actionscript
    Von fred im Forum Flash Plattform
    Antworten: 16
    Letzter Beitrag: 04.12.02, 08:01
  4. ActionScript
    Von Strahleman im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 07.03.02, 18:16
  5. Actionscript
    Von TaxiDriver im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 10.09.01, 14:35