如何在图像上获得点击处理程序?

时间:2010-01-29 21:53:40

标签: flex

我想让这个工作:

私有函数frigganWork(事件:MouseEvent):void     {      跟踪( “WTF?”);      navigateToURL(new URLRequest(“https://stackoverflow.com/questions/ask”),“_ self”);

}

但是我收到一个错误:“调用可能未定义的方法frigganWork。”

2 个答案:

答案 0 :(得分:3)

由于您位于mx:Component标记内,因此您的范围已更改:this现在引用itemRenderer组件。

您可以使用outerDocument解析更大的范围。事件处理函数确实需要公开,因为它是从另一个类调用的。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
    <![CDATA[
        public function onClick(event:Event):void {}
    ]]>
</mx:Script>
    <mx:ComboBox>
        <mx:itemRenderer>
            <mx:Component>
                <mx:Image click="{outerDocument.onClick(event)}" />
            </mx:Component>
        </mx:itemRenderer>
    </mx:ComboBox>
</mx:Application>

答案 1 :(得分:1)

如果从内联项呈示器中调用frigganWork(),则必须将方法的范围更改为public。