!!!flex问题,急求答案
我现在有一个flex页面,里面有一个按钮,一张图片,一个label,我现在就是要当我点击按钮时会改变label的值(假设开始时false),当label的值改变时同时会换一张图片;但是要强调的是:不是在点击按钮时直接换图片,而是要通过label的值改变换图片,怎么做呢?不能直接由change2()方法直接调用showIma()方法哦,label是没有change()事件的,非常感谢各位大侠指点(请详细代码说明,给高分!)。
代码:
<mx:Canvas>
<mx:Button id="sub" x="559" y="26" label="显示" click="change2();"/>
<mx:Image id="img" source="" x="144" y="22" width="250" height="20"/>
<mx:Label id="lab" x="426" y="24" text="false"/>
</mx:Canvas>
<mx:Script>
private function change2():void{
var sub1:String=sub.label;
if(sub1=="显示"){
lab.text="true";
sub.label="不显示";
}else{
lab.text="false";
sub.label="显示";
}
}
private function showIma():void{
if(lab.text=="ture"){
img.source="images/status/input.gif";
}else{
img.source="images/status/input2.gif";
}
}
</mx:Script>
[解决办法]
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
[Bandable]
public var i:Image;
private function change2():void{
var sub1:String=sub.label;
if(sub1=="显示"){
lab.text="true";
sub.label="不显示";
}else{
lab.text="false";
sub.label="显示";
}
showIma(lab.text);
}
private function showIma(a:Boolean):void{
if(lab.text=="true"){
img.source="10.png";
}else{
img.source="11.png";
}
}
]]>
</fx:Script>
<mx:Canvas>
<mx:Button id="sub" x="559" y="26" label="显示" click="change2();"/>
<mx:Image id="img" source="" x="144" y="22" width="250" height="20"/>
<mx:Label id="lab" x="426" y="24" text="false"/>
</mx:Canvas>
</s:Application>
[解决办法]
<mx:Binding source="(lab.text == 'false') ? 'images/status/input.gif' : 'images/status/input2.gif'" destination="img.source" />
试试看。