Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-12-2005, 11:52   #1 (permalink)
bbj
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 34
Raceconditions bei flash.geom.ColorTransform?

Hallo,
ich habe da ein kleines Problem. Bin nun vom (veralteten) Color-Objekt auf ColorTransform umgestiegen. Nun habe ich ein Menü mit drei Buttons. Wird der eine aktiviert, deaktivieren sich die restlichen. Mit dem Color Objekt hat noch alles wunderbar funktioniert, nun habe ich das Problem, dass es manchmal funktioniert und manchmal nicht. Die Farbe wird nicht geändert, obwohl der Status des Buttons(Boolean) darauf schließen lässt, dass die Farbe eine andere sein müsste. Ich habe das Gefühl, dass die Dinge nicht ganz in der Reihenfolge ablaufen, wie es sein soll. Teils tut sich gar nichts, wenn man dann anfängt wild rumzuklicken, ändert sich die Farbe plötzlich doch wieder. Hier ist mal mein Code:

PHP-Code:
import flash.geom.Transform;
import flash.geom.ColorTransform;
//***************************************
var anAus:Boolean false;
var 
id:String = (this._name).charAt(3);
var 
trans:Transform = new Transform(this);
var 
colorTrans1:ColorTransform _root.redTrans;
var 
colorTrans2:ColorTransform _root.cyanTrans;
//Startaktivierung
/*if (id == _root.navIndexEnabled) {
enable();
}*/
this.onPress = function() {
    
trace(anAus);
    if (
this.anAus == false) {
        
enable();
        for (var 
1i<=3i++) {
            if (
!= this.id) {
                
_root["nav"+i+"_mc"].disable();
                
trace("dis: " +i);
            }
        }
    }
};
function 
enable() {
    
this.anAus true;
    
trace(anAus);
    
this.trans.colorTransform colorTrans1;
    
    
/*switch (parseInt(this.id)) {
    case 1 :
    _root.navLoc = "Textnavigation";
    _root.hideSpots();
    _root.grid1_mc._visible = false;
    break;
    case 2 :
    _root.navLoc = "Programm -und Interfacenavigation";
    _root.showFirstSpot();
    _root.resetSpotData();
    _root.grid1_mc._visible = true;
    break;
    case 3 :
    _root.navLoc = "...";
    _root.hideSpots();
    _root.grid1_mc._visible = false;
    break;
    }*/
    
_root.gotoAndStop(parseInt(this.id)+1);
}
function 
disable() {
    
this.trans.colorTransform colorTrans2;
    if (
this.anAus == true) {
        
this.anAus false;
    }
    

In _root:

PHP-Code:
//Rot
var redTrans:ColorTransform = new ColorTransform(000025500255);
//Cyan
var cyanTrans:ColorTransform = new ColorTransform(00000255255255); 
Wäre echt super, wenn mir jemand helfen könnte! Ich weiß nämlich nicht weiter.

PS - Paar Sachen habe ich nun aus Debug-Gründen kommentiert.
bbj ist offline   Mit Zitat antworten
Alt 09-12-2005, 13:57   #2 (permalink)
bbj
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 34
Also, noch keinen Tip?

Ich habe die Fallunterscheidung mal ein wenig geändert, und bin darauf gestoßen, dass die Zeilen mit _root.gotoAndStop(x); wohl für das Fehlverhalten zuständig sind. Hier noch mal die andere Verison:

PHP-Code:
function enable() {
    
this.anAus true;
    
trans.colorTransform rT;
    if (
this.id == "1") {
        
_root.navLoc "Textnavigation";
        
_root.hideSpots();
        
_root.grid1_mc._visible false;
        
_root.gotoAndStop(2);
    } else if (
this.id == "2") {
        
_root.navLoc "Programm -und Interfacenavigation";
        
_root.showFirstSpot();
        
_root.resetSpotData();
        
_root.grid1_mc._visible true;
        
_root.gotoAndStop(3);
    } else if (
this.id == "3") {
        
_root.navLoc "...";
        
_root.hideSpots();
        
_root.grid1_mc._visible false;
        
_root.gotoAndStop(4);
    }
    

Das Problem scheint dann wohl an der Lebensdauer der Variabeln oder den Zeitleistenüberschneidungen liegen, genau habe ich das noch nicht verstanden. Jemand ne Idee?
bbj ist offline   Mit Zitat antworten
Alt 09-12-2005, 14:10   #3 (permalink)
bbj
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 34
Ok, obwohl niemand helfen konnte, hier die Lösung. Hat mich viel Herumprobiererei gekostet:

PHP-Code:
_root.gotoAndStop(parseInt(this.id)+1);
    
this.anAus true;
    
trans.colorTransform rT
Und zwar muss man erst den gotoAndStop-Befehl ausführen und anschließend die Farbe ändern. Ansonsten gibt's Probleme.

So, schöner Monolog....das war's!
bbj 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:12 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele