【问题标题】:LoadVariables doesn't work as it is on Adobe websiteLoadVariables 不能像在 Adob​​e 网站上那样工作
【发布时间】:2014-01-01 04:39:14
【问题描述】:

我正在努力学习并习惯 ActionScript。我有一个简单的任务:使用loadVariables(); 函数。我尝试使用 Adob​​e 的官方参考,但像往常一样,参考代码无法正常工作。这是我的代码:

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

谁能帮帮我?

谢谢你,新年快乐!

【问题讨论】:

  • 你的函数loadVariables在哪里,variables_mc是什么?
  • loadVriables 似乎是一个从 URL 加载变量的 Flash 函数,例如 Ajax。而variables_mc 是一个电影剪辑!你读过我在列表中的代码吗?
  • 是的,我有,但可能不存在。
  • 您将AS2.0AS3.0 混合在一起。 AS3 没有 createEmptyMovieClip()loadVariables()
  • 那么,你能提供我需要的代码吗?好像你知道你在说什么:D

标签: actionscript-3


【解决方案1】:

如 cmets 中所述,AS2.0 包含方法 createEmptyMovieClip()loadVariables(),因为 AS3.0 不包含这些全局函数,您需要改用 URL 库。

例如:

//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 是用于加载文件的动作脚本类,请参阅:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLLoader.html

一旦文件被加载,setVariables() 就会被调用,并且 URLVariables 作为一个动态类来设置文件变量的属性。所以在这种情况下,我们的文本文件包含userName=testUserURLVariables 从带有参数e.target.data 的构造函数中运行一个名为decode() 的方法,并创建所有必要的字段。最后你可以访问它们,在我们的例子中是urlVariables.userName

无论如何我希望这会有所帮助,我只使用过几次,因为通常最好创建一个类来为您处理所有这些。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 2015-04-20
    • 2017-06-28
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多