2011-06-22 9 views
0

さて、おそらく私の最後のフレックス問題:)たItemRendererとActionScript関数のFlex

スクリプトである否定selectAkw()にアクセスすることはできません。このたItemRenderer

<?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" verticalCenter="0" horizontalCenter="0" autoDrawBackground="false"> 


akwrenderer.mxml 
    <s:Image source="{data.imgPath}" verticalCenter="{data.y}" horizontalCenter="{data.x}" 
      visible="{data.isShown}" scaleX="{negate}" scaleY="{negate}" click="selectAkw(event)" /> 
    <s:Ellipse visible="{data.isShown}" height="{data.radiusDisp.height}" width="{data.radiusDisp.width}" 
       verticalCenter="{data.radiusDisp.y}" horizontalCenter="{data.radiusDisp.x}" 
       alpha="0.5" rotation="{data.radiusDisp.rotation}" bottom="0" 
       transformY="{data.radiusDisp.transY}" > 
     <s:fill> 
      <s:RadialGradient> 
       <s:entries> 

<s:GradientEntry color="#006699" ratio="0.3" alpha="0.5"/> 
        <s:GradientEntry color="#006699" ratio="0.3" alpha="0.55"/> 
        <s:GradientEntry color="#006699" ratio="0.3" alpha="0.555"/> 
       </s:entries> 
      </s:RadialGradient> 
     </s:fill> 
    </s:Ellipse> 
</s:ItemRenderer> 

が、私を手に入れました/control.as

誰か手掛かりがありますか?

答えて

1

これを行うにはいくつかの方法があります。私の意見では、クラス・ファクトリを使用してパラメータをアイテム・レンダラに渡すのが最善の方法です。

ので(私が推測するにcreationCompleteでこれを行う)、それを呼び出すコンポーネントで今のitemRenderer

[Bindable] 
private var negate:int = 0; 

にプロパティを追加

var irFactory:ClassFactory = new ClassFactory(YourItemRenderer); 
irFactory.properties = {negate:negate}; 
yourComponent.itemRenderer = irFactory; 

あなたはまた、ItemRendererFunction

としてそれを行うことができます

主なアプリケーションのMXMLファイルでネゲートにアクセスできると仮定すると、これを行う方法は{FlexGlobals.topLevelApplication.negate}です。

あなたのイベントでは、クリックするだけで新しいイベントを送信し、コンポーネントがある場所でキャプチャしてから、そこからSelectAKW()関数を呼び出してください。

click="{dispatchEvent(new Event("selectThatAKW"))}" 

その後のcreationCompleteで親コンポーネントに:

yourComponent.addEventListener("selectThatAKW",selectAkw) 
+0

akwrenderer.addEventListener( "selectThatAKW"、selectAkw)。 dosn't仕事:/ – ABLX

+0

なぜですか?イベントをキャッチしていないのですか、それともselectAKWにアクセスできませんか?より多くのソースコードがなければ、デバッグするのは難しいことです。 –

+0

OH!いいえ、イベントリスナーをレンダラーに追加しないで**コンポーネント** –

関連する問題