Flex中,写两个mxml文件,假定一个为主mxml:A.mxml,另一个为B.mxml,怎么写呢?下面我给个例子,求指点!

就是写一个button,点击这个button会产生一个窗口。我的文件头应该有问题的,所以A.mxml总是提示createWindow()未定义。A.mxml:<?xmlv... 就是写一个button,点击这个button会产生一个窗口。我的文件头应该有问题的,所以A.mxml总是提示createWindow()未定义。
A.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" >
<mx:Panel width="100" height="100">
<mx:Button label="建立window" fontSize="12" id="createBtn" click="createWindow()" />
</mx:Panel>
</mx:Application>

B.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" >

<mx:Script>
<![CDATA[
import flash.net.Socket;
import flash.utils.ByteArray;
import mx.events.ListEvent;

public function createWindow():TitleWindow {
var window1:TitleWindow=new TitleWindow();
return window1;
}

]]>

</mx:Script>
</mx:TitleWindow>
展开
 我来答
百度网友5cf2587
2010-10-25 · TA获得超过233个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:227万
展开全部
你的两个mxml文件就是两个包,你上面的例子,你在A中调用B中的函数createWindow()当然会出错了,就如你说的提示:createWindow()未定义。
看你的意思你是希望,通过在A中点击按钮弹出B所表示的TitleWindow,其实这个资料网上很多。
不知道你要实现什么的,因为在B.mxml中看到了import ..Socket,ByteArray,ListEvent头文件,估计是你隐藏了部分代码。如果只是简单的弹出,通常使用:
import mx.managers.PopUpManager;
var simplePopWindow:POPWindow = SmilWindow(PopUpManager.createPopUp(this.parent,POPWindow,true));
PopUpManager.centerPopUp(simplePopWindow);//居中显示

对你上边的代码稍作调整,不过没有测试,你可以按这个样式做,
A.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" >

<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;

public function createWindow():void
{

var simplePopWindow:B = SmilWindow(PopUpManager.createPopUp(this.parent,B,true));//B是弹出窗体的mxml文件,可以看作类
PopUpManager.centerPopUp(simplePopWindow);//居中显示
}
]]>

</mx:Script>
<mx:Panel width="100" height="100">
<mx:Button label="建立window" fontSize="12" id="createBtn" click="createWindow()" />
</mx:Panel>
</mx:Application>

B.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" >
<!--自定义组件内容-->
</mx:TitleWindow>
这里把你当成初学者了,如果不是请谅解,不过函数未定义,原因就是这个函数不在当前包中,你如果想引用别的包中的函数,至少要将包用import的方式导入。否则是无法引用它里面的函数的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式