繁体   English   中英

如何在MXML中使用AS3类?

[英]How to use AS3 class in MXML?

我如何在MXML中使用以下AS3类?

AS3类:

package mtm 
{
  import flash.display.MovieClip;
  import flash.display.Shape;

  public class TestClass extends MovieClip
  {

      public function TestClass() 
      {
          var s:Shape = new Shape();
          s.graphics.beginFill(0x000000, 1);
          s.graphics.drawRect(0, 0, 60, 60);
          s.graphics.endFill();
          addChild(s);
      } 
  }
}

MXML文件:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
        <mx:Panel width="75%" height="75%" paddingTop="10" paddingLeft="10">

    </mx:Panel>
</mx:Application>

我需要声明自己的命名空间吗? 我假设有可能做类似的事情:

//Where 'mtm' is my own namespace
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:mtm="com.mtm.*"></mx:Application>

然后做这样的事情?

<mtm:TestClass></mtm:TestClass>

我是Flex和MXML的新手,但不是AS3的新手。 谢谢!

在我看来,你的问题已经有了答案。

是的,您必须完全按照您的方式声明自己的命名空间; 通过在顶级标记上指定它 - 在您的示例应用程序中。

是的,那么您可以使用该命名空间引用您的类,就像您在示例中所述。

你有特定的问题吗? 由于您的自定义组件未扩展UIComponent; 我怀疑你可能会遇到一些奇怪的事情; 因为你的组件没有'Flex Component LifeCycle方法,比如createChildren(),commitProperties()和updateDisplayList(),这些方法可能会混淆Flex管理器类。

是的,你有正确的想法。 您的自定义xmlns是一个相对URL,指向自定义组件类,因此如果TestClass位于名为Components的文件夹中,您将放置xmlns:mtm="components.*" 您的MXML是正确的。

这是相关的LiveDocs链接。 这是查找MXML / AS3信息的好地方: http//livedocs.adobe.com/flex/3/html/help.html?content = intro_3.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM