Einzelnen Beitrag anzeigen
Alt 06-01-2010, 20:08   #22 (permalink)
Omega Psi
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 11.854
Das Bubbling funktioniert nicht, weil Hörer nicht der parent von Auslöser ist. Um Events bubblen zu lassen muss es eine Hierarchie von DisplayObjects geben. In deinem Fall addest du die Elemente nur zur stage. Das hat gar keinen Effekt. Das ist einer der Gründe, warum man nicht direkt mit der stage arbeiten sollte. Es macht of wenig Sinn.

Mein Tipp: mal das Kapitel für Event handling in der Referenz lesen.

Anbei ein Beispiel für Event bubbling.

ActionScript:
  1. package fs.components
  2. {
  3.  
  4.   import flash.display.Sprite;
  5.   import flash.events.MouseEvent;
  6.   import flash.utils.getQualifiedClassName;
  7.  
  8.   public class Button extends Sprite
  9.   {
  10.  
  11.     public function Button()
  12.     {
  13.       super();
  14.       addEventListener(MouseEvent.CLICK, onClick);
  15.  
  16.       graphics.beginFill(0);
  17.       graphics.drawRoundRect(0, 0, 100, 100, 10, 10);
  18.       graphics.endFill();
  19.     }
  20.  
  21.     private function onClick(event:MouseEvent):void
  22.     {
  23.       trace(getQualifiedClassName(this) + ".onClick [type:" + event.type + "]");
  24.       trace("\t[currentTarget:" + event.currentTarget + ", target:" + event.target + "]");
  25.     }
  26.   }
  27. }
ActionScript:
  1. package fs.components
  2. {
  3.  
  4.   import flash.display.Sprite;
  5.   import flash.events.MouseEvent;
  6.   import flash.utils.getQualifiedClassName;
  7.  
  8.   public class Application extends Sprite
  9.   {
  10.  
  11.     private var _button:Button;
  12.  
  13.     public function Application()
  14.     {
  15.       super();
  16.  
  17.       addEventListener(MouseEvent.CLICK, onClick);
  18.       _button = new Button();
  19.       addChild(_button);
  20.     }
  21.  
  22.     private function onClick(event:MouseEvent):void
  23.     {
  24.       trace(getQualifiedClassName(this) + ".onClick [type:" + event.type + "]");
  25.       trace("\t[currentTarget:" + event.currentTarget + ", target:" + event.target + "]");
  26.     }
  27.   }
  28. }
ActionScript:
  1. package
  2. {
  3.  
  4.   import flash.display.Sprite;
  5.  
  6.   import fs.components.Application;
  7.  
  8.   public class AppExample extends Sprite
  9.   {
  10.  
  11.     private var _application:Application;
  12.  
  13.     public function AppExample()
  14.     {
  15.       _application = new Application();
  16.       addChild(_application);
  17.     }
  18.   }
  19. }
Omega Psi ist offline   Mit Zitat antworten