Flex Fehler auf einfache benutzerdefinierte Ereignis, wenn in Actionscript implementiert (aber nicht in MXML)

StackOverflow https://stackoverflow.com/questions/3865673

  •  28-09-2019
  •  | 
  •  

Frage

Ich versuche zu lernen, wie benutzerdefinierte Ereignisse in Flex zu verwenden.

Ich folge Oliver Merk Tutorial finden Sie hier: Blog

Das benutzerdefinierte Ereignis funktioniert, wenn ich es in dem Haupt-App MXML implementieren. Aber, wenn ich Actionscript verwenden, dann bekomme ich Fehler 1119:. Den Zugriff von möglicherweise nicht definierte Eigenschaft ADD_PRODUCT über einen Verweis mit statischem Typ Class

Meine Veranstaltung: In den Ereignissen Unterverzeichnis, ich habe:

package events {

   import flash.events.Event;

   public class AddProductEvent extends Event {

      public var productName:String;

      public function AddProductEvent( type:String, productName:String ) {

         super( type );
         this.productName = productName;

      }

      override public function clone():Event {
         return new AddProductEvent( type, productName );
      }

   }
}

In der Komponente, ich habe eine Radiobutton

<mx:RadioButtonGroup id="choicesRadioButtonGroup" itemClick="onButtonClick()"/>



private function onButtonClick():void {
            var myEventObj:Event = new AddProductEvent("addProduct", "Flex T-shirt");
            dispatchEvent(myEventObj);
        } 

Dies ist die Metadaten in der Komponente und die Import-Anweisung:

<mx:Metadata>
    [Event (name="addProduct", type="events.AddProductEvent")]
</mx:Metadata>

import events.AddProductEvent;

In dem Haupt-app, ich habe:

import events.AddProductEvent;

private function onAddProduct( event:AddProductEvent ):void {
mx.controls.Alert.show('Attached data was ' + event.productName);
}

Wenn ich die Komponente in der Hauptanwendung wie folgt implementieren:

<visualcomponent:PopWindow addProduct="onAddProduct(event)" />

dann funktioniert alles.

Wenn ich die Komponente in der Hauptanwendung in Actionscript wie dies umzusetzen, ich einen Fehler dann bekommen:

public function clickHandler2(event:MouseEvent):void {

    if(event.currentTarget.selected){popWindow = new PopWindow;
        queryBuilder(event.currentTarget);
        PopUpManager.addPopUp(popWindow, my_view, false);
        PopUpManager.centerPopUp(popWindow);

            popWindow.addEventListener(AddProductEvent.ADD_PRODUCT, onAddProduct);}

    }

Ich erhalte den Fehler auf der addEventListener Linie. Was mache ich falsch? Jede Beratung?

Danke.

-Laxmidi

War es hilfreich?

Lösung

Ihre AddProductEvent Klasse scheint nicht eine öffentliche statische Zeichenfolge genannt ADD_PRODUCT zu belichten, die den Wert „addProduct“ hat das ist, was es sieht aus wie Sie versuchen zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top