好吧,可能是我上次的弹性问题:)
得到了这个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>
但我无法访问script / control.as中的否定和 selectAkw()
任何人都有线索?
答案 0 :(得分:1)
有几种方法可以做到这一点。在我看来,最好的方法是使用类工厂将参数传递给项呈示器。
所以将属性添加到itemRenderer
[Bindable]
private var negate:int = 0;
现在在调用它的组件中(在CreationComplete中这样做我猜)
var irFactory:ClassFactory = new ClassFactory(YourItemRenderer);
irFactory.properties = {negate:negate};
yourComponent.itemRenderer = irFactory;
您也可以将其作为ItemRendererFunction
欺骗性的方法是{FlexGlobals.topLevelApplication.negate}
,假设您的主Application MXML文件中可以访问否定。
对于您的活动,只需在点击时发送新事件并将其捕获到组件所在的位置,然后从那里调用SelectAKW()
功能。
click="{dispatchEvent(new Event("selectThatAKW"))}"
然后在creationComplete中的父组件:
yourComponent.addEventListener("selectThatAKW",selectAkw)