是否有MXML界面这样的东西

dub*_*eat 4 apache-flex mxml interface

这可能是一个愚蠢的问题,如果是这样,请提前道歉.我想知道在MXML中是否等同于接口?

每当我觉得需要使用界面时,我总是最终制作动作而不是MXML文件,因为我不知道是否/如何使用.

例如,我将有一个基于vbox的组件.我有4个不同的同一个实现,所以我决定使用一个接口.但是,我没有创建单个MXML接口并实现它,而是在as3中创建了一个接口.我已经在4个不同的类中实现了这个接口.

然后,我创建了4个不同的vbox容器,每个容器都有一个脚本标记中的不同实现.

这听起来像是一种合理的方法,还是我反对这里的粮食?

编辑 - 添加示例

界面

package components.content.contents
{
    public interface IContent
    {
        function init():void;
        function doSearch():void
        function setSearchTerm(term:String):void
    }
}
Run Code Online (Sandbox Code Playgroud)

实施(1/4)

package components.content.contents
{
    public class ClipContent extends AbstractContent implements IContent
    {
        public function ClipContent()
        {
        }

        public function init():void
        {
        }

        public function doSearch():void
        {
        }

        public function setSearchTerm(term:String):void
        {
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

MXML文件(1/4)

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
        <mx:Script>
            <![CDATA[
                              // ClipContent Container
                import components.content.contents.ClipContent;
                public var content:ClipContent= new ClipContent()

                public function dostuff():void

                {
                  content.init()
                  content.doSearch()

                }
            ]]>
        </mx:Script>

</mx:VBox>
Run Code Online (Sandbox Code Playgroud)

Rob*_*Bak 13

您可以通过以下方式使用MXML组件的接口:

// YourClass.mxml
<mx:HBox implements="IYourInterface">
Run Code Online (Sandbox Code Playgroud)

是MXML的等价物

// YourClass.as
class YourClass extends HBox implements IYourInterface
Run Code Online (Sandbox Code Playgroud)

但是你仍然需要在Actionscript中创建接口(在本例中为IYourInterface).


JD *_*cks 5

MXML可以实现一个接口,就像Robert Bak所说,但它无法定义接口.