Reputation: 2455
If I wanted to do something like this:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalScrollPolicy="off"
verticalScrollPolicy="off"
xmlns:view="com.foo.bar.view.*"
>
<mx:Script>
<![CDATA[
myWidth = 100;
myHeight = 200;
myCanvas.width = myWidth;
myCanvas.height = myHeight;
]]>
</mx:Script>
</mx:Canvas>
How would I get a handle on myCanvas (where I'd want myCanvas to be the root )?
Upvotes: 0
Views: 1369
Reputation: 5060
You don't need to if you make myWidth and myHeight bindable, and set width="{myWidth}"
and height="{myHeight}"
in the Canvas declaration.
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalScrollPolicy="off"
verticalScrollPolicy="off"
width="{myWidth}"
height="{myHeight}"
xmlns:view="com.foo.bar.view.*" >
<mx:Script>
<![CDATA[
[Bindable]
private var myWidth:Number;
[Bindable]
private var myHeight:Number;
]]>
</mx:Script>
</mx:Canvas>
Any changes to myWidth
and myHeight
would then update the size of the Canvas
Upvotes: 1
Reputation: 59451
To access the component specified by the root node from within an mxml file, you can use this
keyword. Any code inside an mxml runs in the context of this
object - you can as well omit the keyword if you don't have any local variable by the same name.
this.width = myWidth;
this.height = myHeight;
For your second question:
Let's say your mxml file's name is MyCanvas.mxml
. You'd add this to another component using <ns:MyCanvas/>
tag. You can set an id there and access it using that.
<ns:MyCanvas id="myCanvas"/>
Inside script:
myCanvas.width = whatever;
Upvotes: 3