Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-05-2005, 16:08   #1 (permalink)
 
Registriert seit: Dec 2003
Beiträge: 202
rätselhafte ereignisse??? (mit singleton)

weis gar nicht wie ich das jetzt wirklich beschreiben soll ....


ich habe eine Klasse "Communicator", die die kommunikation von swf mit den server übernimmt. weiters habe ich (zwecks "debuggen") eine klasse "Debugger" (singleton), die einfach nur ein paar public vars beinhaltet/setzt.

PHP-Code:
//
class Communicator {    
    
// constructor
    
public function Communicator () {
        
init ();
    }
    
    
//
    
private function init ():Void {
        
// check whether to output
        //trace (Debugger.getInstance().showOutput)
        
(Debugger.getInstance().showOutput) ? output () : noOutput ();
    }
    
//
    
private function output () { 
        
// do output
    
}
    
//
    
private function noOutput () {
        
// do something else
    
}

PHP-Code:
class Debugger {
    
// reference
    
private static var _instance:Debugger;
    
// private constructor
    
private function Debugger () {}
    
//
    
public static function getInstance ():Debugger {
        if (!
_instance_instance = new Debugger ();
        return 
_instance;
    }
    
//
    
public  var online:Boolean false;    
    public  var 
showOutput:Boolean true;

so, und nun zu den rätselhaften ereignissen
wenn, ich in der klasse "Comunicator" in der function "init()" das "trace(Debugger.getInstance().showOutput)" nicht auskommentiere, dann ergibt das "trace" korrekterweise "true", aber im conditional danach ergibt (Debugger.getInstance().showOutput) auf einmal nicht mehr "true", denn es wird plötzliche "noOutput()" ausgeführt. abgesehen davon funktionieren dann auch andere (nicht hier dargestellte) teile nicht mehr...
sobald ich aber das "trace()" wegkommentiere funktioniert wieder alles ???
spinne ich?
können .as files irgendwie "korrupt" werden?
?
?

p.s.: die klassen oben sind vereinfacht dargestellt, haben natürlich längere pfadnamen, richtige "import" zuweisungen, etc.
es wird kein "error" oder so beim compilieren erzeugt... es geht nur um das "trace()", welches wenn vorhanden, alles umschmeisst.

?
?
?

Geändert von bryan.fury (12-05-2005 um 16:11 Uhr)
bryan.fury ist offline   Mit Zitat antworten
Alt 12-05-2005, 16:15   #2 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
das ist ganz einfach..... du hast sicher beim exportieren beim register flash... die check box "trace aktionen übergehen" aktiviert... daher wird der code teil auch nie ausgeführt
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 12-05-2005, 16:41   #3 (permalink)
 
Registriert seit: Dec 2003
Beiträge: 202
danke, aber!
vielleicht habe ich mich falsch ausgedrückt (vielleicht hast du auch falsch verstanden ), aber es geht darum, dass wenn ich das trace() ausführen lasse, der rest des codes über den haufen geworfen wird ....

Geändert von bryan.fury (12-05-2005 um 16:43 Uhr)
bryan.fury ist offline   Mit Zitat antworten
Alt 12-05-2005, 16:57   #4 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
denn teil mit dem trace bzw. danach hast nicht gepostet... jedoch wäre mal gut zu wissen.. hast du sicher nicht aktiviert "trace aktionen übergehen"...

denn das er beim trace stehen bleibt wie bei einem break hm..... äußert es sich so?
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 12-05-2005, 17:23   #5 (permalink)
 
Registriert seit: Dec 2003
Beiträge: 202
hab's schon gepostet in der klasse "Communicator" in der function init ()

das trace:
PHP-Code:
trace (Debugger.getInstance().showOutput)  //ergibt "true" 
die nächste zeile:
PHP-Code:
(Debugger.getInstance().showOutput) ? output () : noOutput (); 
müsste wenn trace "true" ergibt eben die function "output ()" ausführen. tut es aber nur wenn das trace davor auskommentiert wird.
lasse ich aber das trace ausführen wird im conditional der nächsten zeile unverständlicherweise die function "noOutput ()" ausgeführt, obwohl das trace klar beagt, dass "Debugger.getInstance().showOutput" true ergibt.
bryan.fury ist offline   Mit Zitat antworten
Alt 12-05-2005, 17:52   #6 (permalink)
flachzange
 
Benutzerbild von elias
 
Registriert seit: Jun 2003
Ort: berlin
Beiträge: 3.932
Setz mal ein Semikolon hinter dem trace.
__________________
elias ist offline   Mit Zitat antworten
Alt 12-05-2005, 18:07   #7 (permalink)
 
Registriert seit: Dec 2003
Beiträge: 202
Zitat:
Zitat von elias
Setz mal ein Semikolon hinter dem trace.
ich fasse es nicht

kannst du mir auch erklären warum es ohne nicht funktioniert?
bryan.fury ist offline   Mit Zitat antworten
Alt 12-05-2005, 19:13   #8 (permalink)
flachzange
 
Benutzerbild von elias
 
Registriert seit: Jun 2003
Ort: berlin
Beiträge: 3.932
Zitat:
Zitat von bryan.fury
ich fasse es nicht

kannst du mir auch erklären warum es ohne nicht funktioniert?
Ich habe nicht den hauch einer Ahnung.

Könntest du vielleicht ein reproduzierbares Beispiel posten, als fla?
__________________
elias ist offline   Mit Zitat antworten
Alt 12-05-2005, 19:43   #9 (permalink)
 
Registriert seit: Dec 2003
Beiträge: 202
voila!
Angehängte Dateien
Dateityp: zip test.zip (6,2 KB, 3x aufgerufen)
bryan.fury ist offline   Mit Zitat antworten
Alt 12-05-2005, 19:48   #10 (permalink)
 
Registriert seit: Dec 2003
Beiträge: 202
nachtrag: der fehler tritt nur auf in der conditional schreibweise. in der klassischen "if () {}else{}" form braucht's keinen semicolon ...
bryan.fury ist offline   Mit Zitat antworten
Alt 12-05-2005, 20:05   #11 (permalink)
flachzange
 
Benutzerbild von elias
 
Registriert seit: Jun 2003
Ort: berlin
Beiträge: 3.932
Bei mir funktioniert es. Kann es sein das du nicht das Update drauf hast oder
testest du auf OSX?
__________________
elias ist offline   Mit Zitat antworten
Alt 12-05-2005, 20:19   #12 (permalink)
 
Registriert seit: Dec 2003
Beiträge: 202
flash mx2004 professional 7.2, OSX
bryan.fury ist offline   Mit Zitat antworten
Alt 12-05-2005, 20:45   #13 (permalink)
flachzange
 
Benutzerbild von elias
 
Registriert seit: Jun 2003
Ort: berlin
Beiträge: 3.932
Dann muss es am Apfel liegen
__________________
elias ist offline   Mit Zitat antworten
Alt 12-05-2005, 20:54   #14 (permalink)
 
Registriert seit: Dec 2003
Beiträge: 202
dann schon eher an der mac version von flash
bryan.fury ist offline   Mit Zitat antworten
Alt 12-05-2005, 22:22   #15 (permalink)
 
Registriert seit: Dec 2003
Beiträge: 202
je mehr ich darüber nachdenke desto weniger glaube, dass es am mac liegen kann.
wieso hast du angenommen, dass es der semicolon sein könne?
der dürfte doch normalerweise kein rolle spielen.

wenn du das test.fla abspielst, was wird denn da getraced?

ach, soviele fragen ...
bryan.fury 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:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele