在编码过程中遇到一个Loader的问题。大致如下:
在一个Main的界面,需要用Loader引导不同的Application文件,并通过按钮或者菜单进行控制,同时向Application传递URL的参数。在Samples的explore例子中虽然是写的很清楚,但是如果传递参数就有问题了。
报错的代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:Loader id="swfLd" contentPath="loaderC.mxml.swf?sid=123&login=genedna"></mx:Loader>
</mx:Application>
错误是:The reference to entity "login" must end with the ';' delimiter.
修改后的代码是这样
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:Script>
<![CDATA[
var url : String = "loaderC.mxml.swf?sid=123&login=genedna";
function Change(){
url = "loaderC.mxml.swf?sid=123&login=中文可以么?";
}
]]>
</mx:Script>
<mx:Loader id="swfLd" source="{url}"></mx:Loader>
<mx:Button label="change" click="Change()"></mx:Button>
</mx:Application>
LoaderC文件如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
<mx:Script>
<![CDATA[
var sid : String = "None";
var login : String = "None";
]]>
</mx:Script>
<mx:Canvas id="loadC">
<mx:Form>
<mx:FormItem label="sid">
<mx:Text id="loadT" fontSize="14" text="{sid}"></mx:Text>
</mx:FormItem>
<mx:FormItem label="login">
<mx:Text id="loadL" fontSize="14" text="{login}"></mx:Text>
</mx:FormItem>
</mx:Form>
</mx:Canvas>
</mx:Application>
第2中代码就不会出现任何问题,而且能够很好的使用。虽然不明白是什么原理,但是基本上解决了。