在以下Canvas中,如何在运行时更改属性顶部?
<canvas top="10"/>
我试过了:
<canvas top="{ topVariable }"/>
但绑定似乎没有生效。如何实现这一目标?
答案 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
,例如HBox
或VBox
。如果是这种情况,请尝试在容器上设置填充或将Canvas
嵌套在另一个Canvas
内,该top
将使用{{1}}设置。
答案 3 :(得分:1)
正确的方法是使用SetStyle方法(如上面的CoreyDotCom所示) 只是做:
myCanvas.setStyle('top',[your own value])
但是(总有一个“但是”)要小心这种使用方式,注意这条线在性能问题上可能非常昂贵,它会启动对象的渲染生命周期,这当然可以使它的所有孩子都能够做它也等等。
希望它有所帮助...