Einzelnen Beitrag anzeigen
Alt 04-11-2008, 11:36   #1 (permalink)
Warappa
Neuer User
 
Registriert seit: May 2006
Ort: Bad Ischl, Österreich
Beiträge: 243
Exclamation this == global ?!

Hallo,

ich hab wiedermal ein komisches Problem:

ActionScript:
  1. public function MainClass()
  2.         {
  3.             trace("MainClass: this: " + this +" - " + getQualifiedClassName(this));
  4.             addEventListener(FlexEvent.INITIALIZE, test);
  5.         }
  6.         public function test(e:Event = null):void
  7.         {
  8.             trace("test: this: " + this +" - " + getQualifiedClassName(this));
  9.             var c:Button = new Button();
  10.             c.addEventListener(FlexEvent.INITIALIZE, function(evt:Event):void
  11.             {
  12.                 trace("FlexEvent.INITIALIZE: this: " + this +" - " + getQualifiedClassName(this));
  13.             });
  14.             c.addEventListener(MouseEvent.CLICK, function(evt:Event):void
  15.             {
  16.                 trace("MouseEvent.CLICK: this: " + this +" - " + getQualifiedClassName(this));
  17.             });
  18.             addChild(c);
  19.         }

Ich würde ja annehmen, dass dieser Code bei allen Trace als this-Klasse "Main" ausgeben würde. Macht er aber nicht:
Code:
MainClass: this: Main0 - Main
test: this: Main0 - Main
FlexEvent.INITIALIZE: this: [object global] - global
MouseEvent.CLICK: this: [object global] - global
Warum ist this in dem (anonymen) Eventhandler auf einmal "global" und im Eventhandler test wie gewünscht?!

Lg
Warappa

Flashdevelop 3
Flex 3 Projekt

Geändert von Warappa (04-11-2008 um 11:37 Uhr)
Warappa ist offline   Mit Zitat antworten