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> 展开
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> 展开
展开全部
你的两个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的方式导入。否则是无法引用它里面的函数的。
看你的意思你是希望,通过在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的方式导入。否则是无法引用它里面的函数的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询