LoadVariables不能像在Adobe网站上那样工作

时间:2013-12-31 19:40:26

标签: actionscript-3

我正在努力学习并习惯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

任何人都可以帮助我吗?

谢谢你,新年快乐!

1 个答案:

答案 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=testUserURLVariables使用参数decode()从构造函数运行名为e.target.data的方法,并创建所有必需的字段。最后,您可以访问它们,我们就是urlVariables.userName

无论如何,我希望这有帮助,我只使用了几次,因为通常最好创建一个为你处理这一切的类。