خطأ فليكس في حدث مخصص بسيط عند تطبيقه في ActionScript (ولكن ليس في MXML)

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

  •  28-09-2019
  •  | 
  •  

سؤال

أحاول أن أتعلم كيفية استخدام الأحداث المخصصة في Flex.

أنا أتابع البرنامج التعليمي الخاص بـ Oliver Merk هنا: مقالات

يعمل الحدث المخصص إذا قمت بتطبيقه باستخدام MXML في التطبيق الرئيسي. ولكن ، إذا استخدمت ActionScript ، فأنا أحصل على خطأ 1119: الوصول إلى خاصية غير محددة add_product من خلال مرجع مع فئة من النوع الثابت.

حدثي: في الأحداث الفرعية ، لدي:

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

   }
}

في المكون ، لديّ RadiobutTongroup

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



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

هذا هو البيانات الوصفية في المكون وبيان الاستيراد:

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

import events.AddProductEvent;

في التطبيق الرئيسي ، لدي:

import events.AddProductEvent;

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

إذا قمت بتطبيق المكون في التطبيق الرئيسي مثل هذا:

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

ثم كل شيء يعمل.

إذا قمت بتطبيق المكون في التطبيق الرئيسي في ActionScript مثل هذا ، فأنا أحصل على خطأ:

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

    }

أحصل على الخطأ على خط AddEventListener. ما الخطأ الذي افعله؟ اي نصيحه؟

شكرًا لك.

-laxmidi

هل كانت مفيدة؟

المحلول

لا يبدو أن فئة AddProductevent الخاصة بك تعرض سلسلة ثابتة عامة تسمى Add_product والتي لها قيمة "AddProduct" وهو ما يبدو أنك تحاول القيام به.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top