我有Home.mxml
个home_src.as
标记中包含fx:Script
的文件。现在假设我想从另一个.as文件(例如<mx:TextInput.../>
)中检索位于Home.mxml
的{{1}}标记的值。
我尝试了login_src.as
但不起作用(我得到了这样的错误:上找不到属性)。
我不知道是否可以不包含想要访问.mxml属性的.as文件,但我想找出因为我有一个canvas.mxml页面(带有一些文本和组合标记)包含一个带有两个其他.mxml页面的tabNavigator;在这两个选项卡的actionscript中,我需要canvas.mxml输入和组合标记的值。
有没有办法在不将tab1或tab2.as包含到我的canvas.mxml中的情况下执行此操作?
单击按钮可打开数据插入弹出窗口:
home.as
mx.core.Application.application.[file.mxml].[property]
InsertPopUp.mxml
..
var insertPop:InsertPopUp = InsertPopUp(PopUpManager.createPopUp((this.parentApplication as DisplayObject), InsertPopUp, true));
PopUpManager.centerPopUp(insertPop);
..
然后我有:
Cat.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init()" close="close()">
<mx:Script source="InsertPopUp_src.as"/>
<mx:Label id="lblage" text="Age:"/>
<mx:TextInput id="txtAge" editable="true"/> // I want this data
<mx:TabNavigator id="insertTab" width="100%" height="85%">
<mx:VBox id="vbx1" width="100%" height="100%" label="Car Data">
<mx:ModuleLoader id="mdlCatData" url="modules/Cat.swf" height="100%" width="100%" />
</mx:VBox>
<mx:VBox id="vbx2" width="100%" height="100%" label="Van Data">
<mx:ModuleLoader id="mdlDogData" url="modules/Dog.swf" height="100%" width="100%"/>
</mx:VBox>
</mx:TabNavigator>
</mx:TitleWindow>
和
Dog.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init();">
<mx:Script source="CatData_src.as" />
// other forms..
</mx:Module>
我想检索<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init();">
<mx:Script source="DogData_src.as" />
// other forms..
</mx:Module>
textInput的数据并在 CatData_src.as 和 DogData_src.as 中使用它;如何在不诉诸脚本的情况下获取数据?
我做了这个“图形配置”,因为一些数据对猫和狗来说很常见..(显然只是一个例子)。
答案 0 :(得分:2)
mxml在AS3世界中并不是什么特别的东西,它似乎有所不同,但它实际上并不像以后编译成AS3代码那样。在带有id的mxml标记中声明的任何对象只是将生成的as3类的属性(使用与mxml文件相同的名称)。
如果该mxml类应该是唯一的(不是它的2个实例),则可以使用静态方法访问您的属性。
示例:
如果使用mxml类的多个实例,那么获取实例的引用并像使用任何其他AS3对象一样使用它。