我正在努力学习并习惯ActionScript。我有一个简单的任务:使用loadVariables();
函数。我试图使用Adobe的官方参考,但像往常一样,参考代码不起作用。这是我的代码:
import flash.events.MouseEvent;
function buttonClicked( evt:MouseEvent ) {
this.createEmptyMovieClip( "variables_mc", this.getNextHighestDepth() );
loadVariables("info.txt", variables_mc);
trace( variables_mc.username );
}
this.myButton.addEventListener( MouseEvent.CLICK, buttonClicked );
我从调试器中得到三个错误:
#1 1180: Call to a possibly undefined method loadVariables.
#2 1120: Access of undefined property variables_mc.
#3 1120: Access of undefined property variables_mc.
以下是我从中获取代码的页面:http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000575.html
任何人都可以帮助我吗?
谢谢你,新年快乐!
答案 0 :(得分:2)
正如评论中所述,AS2.0
包含方法createEmptyMovieClip()
和loadVariables()
,因为AS3.0
不包含这些全局函数,您需要使用URL
而不是1}}库。
例如:
//declare target movieclip
var variables_mc:MovieClip;
function buttonClicked( evt:MouseEvent ) {
variables_mc = new MovieClip();
getVariables();
}
function getVariables():void {
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener( Event.COMPLETE, setVariables );
urlLoader.load( new URLRequest( "info.txt" ) );
}
function setVariables( e:Event ):void {
//then let's say you have userName=testUser in your info.txt
var urlVars:URLVariables = new URLVariables( e.target.data );
variables_mc.name = urlVars.userName;
}
编辑:我应该解释一下这里发生了什么,URLLoader是用于加载文件的actionscript类,请参阅:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLLoader.html
加载文件后setVariables()
被调用,URLVariables充当动态类,它将属性设置为文件变量。所以在这种情况下,我们的文本文件包含userName=testUser
。 URLVariables
使用参数decode()
从构造函数运行名为e.target.data
的方法,并创建所有必需的字段。最后,您可以访问它们,我们就是urlVariables.userName
。
无论如何,我希望这有帮助,我只使用了几次,因为通常最好创建一个为你处理这一切的类。