ActionScriptに実装されたときの単純なカスタムイベントのフレックスエラー
-
28-09-2019 - |
質問
Flexでカスタムイベントを使用する方法を学ぼうとしています。
私はここにあるオリバー・メルクのチュートリアルをフォローしています: ブログ
カスタムイベントは、メインアプリでMXMLを使用して実装すると機能します。ただし、ActionScriptを使用する場合、エラー1119:staticタイプクラスの参照を介して、未定義のプロパティ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と呼ばれるpublic static stringを公開していないようです。
所属していません StackOverflow