Error en Flex simple evento personalizado cuando se implementa en ActionScript (pero no en MXML)

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

  •  28-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de aprender a utilizar los eventos personalizados en Flex.

El tutorial de

Estoy siguiendo Oliver Merk encontrar aquí: Blog

El evento personalizado funciona si pongo en práctica utilizando MXML en la aplicación principal. Pero, si uso actionscript, entonces me sale error 1119:. El acceso de la propiedad ADD_PRODUCT posiblemente no definido mediante una referencia con tipo estático Clase

Mi Evento: En el subdirectorio eventos, Tengo:

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 );
      }

   }
}

En el componente, tengo una RadioButtonGroup

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



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

Se trata de los metadatos en el componente y la declaración de importación:

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

import events.AddProductEvent;

En la aplicación principal, tengo:

import events.AddProductEvent;

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

Si puedo implementar el componente principal en la aplicación de la siguiente manera:

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

A continuación, todo funciona.

Si puedo implementar el componente principal en la aplicación en ActionScript como esta, entonces me da un error:

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);}

    }

Me sale el error en la línea addEventListener. ¿Qué estoy haciendo mal? Cualquier consejo?

Gracias.

-Laxmidi

¿Fue útil?

Solución

Su clase AddProductEvent no parece exponer una llamada ADD_PRODUCT cadena estática pública que tiene el valor "addProduct", que es lo que parece que está tratando de hacer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top