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