我对MXML和Flash Builder相当陌生,对Flash Professional中的AS3有一定的经验。我的问题是我目前有一个基本的应用程序,我们有多个按钮,这些按钮上的“click”事件监听器激活了这些功能。问题是每个按钮或多或少都具有相同的功能;只是为每个按钮加载的数据是不同的。我如何制作它以便我能够回收相同的功能?在Javascript或AS3中,这些内容将会完成......
<s:Button id="btn_1" x="378" y="601" label="Button 1" click="photoSwap(event,"image1.jpg")"/>
<s:Button id="btn_2" x="350" y="601" label="Button 2" click="photoSwap(event,"image2.jpg")"/>
protected function photoSwap(event:MouseEvent):void
{
// TODO Auto-generated method stub
var selectedImage = evt.target;
Tweener.addTween(img, {alpha:0, time:1});
img.source="images/" + selectedImage;
Tweener.addTween(img, {alpha:1, time:2, delay:1});
}
但这显然不是它的运作方式。我尝试了解决这个问题的麻烦但却找不到任何东西。当我让每个按钮都有自己的功能时,它会工作,但这看起来很愚蠢,不需要这样做。
答案 0 :(得分:3)
一个非常常见的Flash Builder新手错误。
MXML标记具有以双引号("
)指定的属性。因此,在属性值中禁止"
是很自然的。您需要做的就是使用单引号('
)
<s:Button id="btn_1" x="378" y="601" label="Button 1" click="photoSwap(event,'image1.jpg')"/>
<s:Button id="btn_2" x="350" y="601" label="Button 2" click="photoSwap(event,'image2.jpg')"/>
protected function photoSwap(event:MouseEvent, selectedImage:String):void
{
Tweener.addTween(img, {alpha:0, time:1});
img.source="images/" + selectedImage;
Tweener.addTween(img, {alpha:1, time:2, delay:1});
}
答案 1 :(得分:0)
此外,如果您引用高度和宽度等属性,请将方法括在{}
<s:HGroup id="hoppers" height="40%" gap="{getAbsolutedimension(9.8, 'width')}"
...
...
</s:HGroup>
其中getAbsolutedimension
返回一个数字