Это потенциально может быть глупым вопросом, поэтому заранее прошу прощения.
Мне интересно, есть ли эквивалент MX-интерфейса в MXML?
Каждый раз, когда я чувствую необходимость использовать интерфейс, я всегда заканчиваю тем, что создаю скрипт действий, а не файл MXML, потому что я не знаю, можете ли вы / как это сделать.
Например, я собирался создать компонент, основанный на vbox. У меня есть 4 разных реализации одной и той же вещи, поэтому я решил использовать интерфейс. Но вместо создания единого интерфейса MXML и его реализации я создал интерфейс в as3. Я реализовал этот интерфейс в 4 разных классах.
Затем я создал 4 разных контейнера vbox, каждый с одной из реализаций в теге script.
Похоже ли это на разумный подход или я иду против зерна здесь?
РЕДАКТИРОВАТЬ - добавление примеров
Интерфейс
package components.content.contents
{
public interface IContent
{
function init():void;
function doSearch():void
function setSearchTerm(term:String):void
}
}
Реализация (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
{
}
}
}
Файл 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>