FLEX4中如何Application调用module中的方法,在线等啊!
FLEX4中如何Application调用module中的方法,在线等啊!
ModuleLoaderExam4.mxml
<mx:ModuleLoader url="example/ModuleExam4.swf" id="m1" ready="getTitle()"/>
private function getTitle():void {
s = (m1.child as ModuleExam4).getModTitle();
}
ModuleExam4.mxml
public function getModTitle():String {
return "Child Module 1";
}
说明:
(m1.child as ModuleExam4).getModTitle(),表示将m1中的属性child对应的对象强制转换为ModuleExam4类,再调用这个对象的方法。
上述方法一直都不能编译通过,求教啊!
[解决办法]
你检查一下,ModuleExam4.swf是生成在了哪个路径下面,很可能是在bin-debug根下面,而你的路径又是写的example/ModuleExam4.swf,造成ModuleLoader读不到Module。
[解决办法]
上面加载Module的方法没问题,就是这样写的!
估计你ModuleExam4.mxml建错了,不是一个Module
右键工程new - MXML Module(注意创建的路径)
[解决办法]
<?xml version="1.0"?><!-- ParentApplication.mxml --><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ import example.ModuleExam4; [Bindable] private var s:String; private function getTitle():void { s=(m1.child as ModuleExam4).getModTitle(); } ]]> </mx:Script> <mx:Label id="l1" text="{s}"/> <mx:ModuleLoader url="example/ModuleExam4.swf" id="m1" ready="getTitle()"/></mx:Application>
[解决办法]