2011-11-25 61 views
2

我想创建一个自定义组件库。这些组件在创建时可以自定义。意味着像手风琴或TabNavigator的,当我们拖动并在Flash Builder下降手风琴它如何创建高级Flex自定义组件库

<mx:Accordion x="38" y="167" width="200" height="200"> 
    <s:NavigatorContent width="100%" height="100%" label="Accordion Pane 1"> 
    </s:NavigatorContent> 
</mx:Accordion> 

看有两个标签是在一个时间MX:手风琴和s:NavigatorContent如何发生的。我怎样才能创建一个这样的组件。

我想用三个按钮创建一个容器组件。之后我拖累组件到Flash Builder应该可编辑的意思是它的标签必须看起来像这样

<local:container x="38" y="167" width="200" height="200"> 
    <s:button width="10" height="10" /> 
    <s:button width="10" height="10" /> 
    <s:button width="10" height="10" /> 
</local:container> 

回答

0

首先你要明白一两件事,那就是自定义组件的创建是为了简化标签。虽然Flash Builder也不支持这种类型的东西。自定义组件子可以通过重写其中的某些方法在内部创建,这取决于您继承的基类。

创建自定义组件只会导致

<local:container x="38" y="167" width="200" height="200"> 
</local:container> 

虽然你可以通过手动或在内部将其添加的孩子。

2

为了在用户将自定义组件拖入Flash Builder时添加额外的标签,您必须为您的组件编写扩展并在design.xml文件中对其进行配置。

这里有一些链接,让你开始:

+0

+1 B/C那是我第一次看到任何正式的文章从Adobe关于design.xml文件。我认为你正处于正确的轨道上,使用Flash Builder扩展,因为他想拖出一个组件并让IDe创建多个组件。不过,我不确定是否需要design.xml来完成他的任务。 – JeffryHouser

+0

是的,这个FAQ很新颖(2011年8月)。我不认为没有design.xml就可以做到这一点。但是,由于我自己从来没有这样做过,我不确定是否可以用''或''创建多个组件。我的猜测是,需要创建一个实现'com.adobe.flexbuilder.mxmlmodel.components.IComponentInserter'的Java类,并在design.xml中注册。 –

+0

根据我的经验 - 这比这个海报要求的复杂程度要简单 - -Design.xml只是定义组件在浏览器中显示的文件夹的名称。除此之外,它们显示在默认的“Custom Components”文件夹中。我将不得不深入阅读这篇文章。 :-) – JeffryHouser