【发布时间】:2010-02-09 19:44:57
【问题描述】:
在follow Canvas中,如何在运行时更改属性top?
<canvas top="10"/>
我试过了:
<canvas top="{ topVariable }"/>
但绑定似乎没有生效。如何实现?
【问题讨论】:
标签: apache-flex actionscript-3 mxml
在follow Canvas中,如何在运行时更改属性top?
<canvas top="10"/>
我试过了:
<canvas top="{ topVariable }"/>
但绑定似乎没有生效。如何实现?
【问题讨论】:
标签: apache-flex actionscript-3 mxml
如果这是 Flex 3,那么 myCanvas.setStyle("top", 10); (top 是一种样式,不是 ActionScript 属性)。
【讨论】:
您的示例必须缺少某些内容。我用最高值绑定构建了这个快速应用程序,它工作得很好。确保您没有设置 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>
【讨论】:
听起来您的Canvas 嵌入在已经处理布局的东西中,因此将忽略top,例如HBox 或VBox。如果是这种情况,请尝试在您的容器上设置填充或将您的 Canvas 嵌套在另一个 Canvas 中,这将利用 top 设置。
【讨论】:
正确的做法是使用 SetStyle 方法(如上图 CoreyDotCom 所示) 做吧:
myCanvas.setStyle('top',[your own value])
但是(总是有一个“但是”)小心使用这种方式,注意这条线在性能问题上可能非常昂贵,它启动了对象的渲染生命周期,这当然可以使它所有的孩子也这样做等等。
希望对你有帮助...
【讨论】: