Apache flex FLEX:如何从AS3外部类文件引用MXML类?
我有一个mxml类,其中我放置了一个列表和几个按钮 我想要两样东西: 从作为外部文件的类访问列表。 添加as3类作为子视觉元素,因为我需要获取stage全局属性。 我不想通过在mxml中嵌入太多代码 因此,mxml的示例Apache flex FLEX:如何从AS3外部类文件引用MXML类?,apache-flex,actionscript-3,list,flexbuilder,Apache Flex,Actionscript 3,List,Flexbuilder,我有一个mxml类,其中我放置了一个列表和几个按钮 我想要两样东西: 从作为外部文件的类访问列表。 添加as3类作为子视觉元素,因为我需要获取stage全局属性。 我不想通过在mxml中嵌入太多代码 因此,mxml的示例 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="l
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="800" minHeight="600" width="800" visible="true">
<fx:Style source="Main.css"/>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
private var menuController:CMenuController= new CMenuController();
]]>
</fx:Script>
<s:List x="598.35" y="100.55" width="178" height="324" id="ListBox">
<s:layout>
<s:VerticalLayout/>
</s:layout>
</s:List>
</s:Application>
因此,我想在键入CDATA时从CMenuController访问ListBox。此外,我需要能够通过CMenuController中的addChild方法添加精灵和形状。您必须首先将精灵和形状添加到UIComponent,然后将其添加到Flex代码中 要从外部as3类访问Flex代码,请在as3类中创建一个引用。像这样: menuController.listReference=LISTID
我认为您没有从应用程序逻辑中分离视觉元素的概念。您试图完成的内容被认为是非常糟糕的形式,因为它会产生意大利面代码 您应该做的是使用数据驱动的方法,创建一个ArrayCollection,其中包含要在列表中显示的内容,该内容可能是MenuController的属性。然后添加一个自定义项目渲染器来执行您需要的任何操作。有点像这样:
<s:List dataProvider="{menuController.yourListData}" itemRenderer="YourCustomItemRenderer" />
在项目呈现器中,可以根据ListData的数据显示所需的任何内容。我建议您继续阅读并尝试寻找数据驱动的Flex应用程序的示例