在Flex中在运行时更改“top”属性

时间:2010-02-09 19:44:57

标签: flex actionscript-3 mxml

在以下Canvas中,如何在运行时更改属性顶部

<canvas top="10"/>

我试过了:

<canvas top="{ topVariable }"/>

但绑定似乎没有生效。如何实现这一目标?

4 个答案:

答案 0 :(得分:4)

如果这是Flex 3,那么myCanvas.setStyle(“top”,10); (top是样式而不是ActionScript属性。)

答案 1 :(得分:2)

你的榜样一定是遗漏了什么。我使用最高值绑定构建了这个快速应用程序,它工作得很好。确保你没有设置X和Y(或者实际上只是Y)属性,因为它们会覆盖顶部样式。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();" borderStyle="none" borderColor="#000000" borderThickness="5">
    <mx:HSlider id="slider" x="10" y="463" minimum="0" maximum="100" snapInterval="10" enabled="true"/>
    <mx:Canvas width="200" height="200" borderStyle="solid" borderColor="#000000" borderThickness="3" top="{slider.value}">
    </mx:Canvas>

</mx:Application>

答案 2 :(得分:1)

听起来您的Canvas已嵌入已处理布局的内容中,因此会忽略top,例如HBoxVBox。如果是这种情况,请尝试在容器上设置填充或将Canvas嵌套在另一个Canvas内,该top将使用{{1}}设置。

答案 3 :(得分:1)

正确的方法是使用SetStyle方法(如上面的CoreyDotCom所示) 只是做:

myCanvas.setStyle('top',[your own value])

但是(总有一个“但是”)要小心这种使用方式,注意这条线在性能问题上可能非常昂贵,它会启动对象的渲染生命周期,这当然可以使它的所有孩子都能够做它也等等。

希望它有所帮助...