如何访问MXML文档的根元素,如果我不能设置一个id?(How do I access the ro

2019-11-04 03:54发布

如果我想要做这样的事情:

<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>

我将如何得到myCanvas(这里我想myCanvas是根)手柄?

Answer 1:

要从MXML文件中访问由根节点指定的组件,你可以用this关键字。 一个MXML内的任何代码的上下文中运行this对象-你可以也省略关键字,如果你没有通过任何同名的局部变量。

this.width = myWidth;
this.height = myHeight;

关于第二个问题:

比方说,你的MXML文件的名称是MyCanvas.mxml 。 你会添加此使用另一个组件<ns:MyCanvas/>标签。 您可以设置有一个ID,并使用该访问它。

<ns:MyCanvas id="myCanvas"/>

内部脚本:

myCanvas.width = whatever;


Answer 2:

你并不需要,如果你让myWidth和myHeight绑定,并设置宽度=“{} myWidth”和高度=“{} myHeight”在画布声明。

<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>

然后myWidth和myHeight的任何更改将更新的画布大小



文章来源: How do I access the root element of an MXML document if I can't set an id?