【问题标题】:Using string variables as a path to access other variables in AS 2使用字符串变量作为访问 AS 2 中其他变量的路径
【发布时间】:2012-12-03 04:00:24
【问题描述】:

我正在使用 actionscript 2 在 flash 中制作一个简单的格斗游戏(我知道 as3 更好,但现在不能更改,我发誓我的下一个项目将是 as3)。

事情是这样的,我有一个“播放器”对象,它在实例化时附加一个名为“player1”或“player2”的影片剪辑,具体取决于给定的参数。正确的实例名称存储在名为 PlayerName 的变量中。例如:

var character:Player = new Player(1);

此代码将创建一个 Player 对象。由于数字“1”,构造函数会将 PlayerName 变量设置为字符串“player1”。最后,构造函数还应该将一个名为“player1”的影片剪辑附加到根目录。

我解决了附加影片剪辑的命名问题:

_root.attachMovie(ID, this["PlayerName"], _root.getNextHighestDepth());

现在有了类似的想法,我想解决以下问题(这是我的问题):假设我想移动我最近生成的电影剪辑(或访问它的任何属性),我如何使用字符串 PlayerName通往MC的道路?我的直觉是这样做:

_root.PlayerName._x +=1; 

 _root.(this["PlayerName"])._x +=1;

希望当 flash 编译时,this["PlayerName"] 会变成存储的字符串,但这显然不起作用。我真的被困在这里了,我以前一直在 PHP 中这样做,我的意思是,如果这是 PHP,我会使用这个:

_root.$PlayerName._x +=1;

有什么建议吗?你怎么能做到这一点?我可以想到一些解决方法,即在附加剪辑时存储对剪辑的引用:

clip = _root.attachMovie(....

然后通过clip (clip._x +=1) 访问它的属性,但是如果我知道如何使用路径中的变量来做到这一点,就像在PHP 中那样,我会感觉更舒服。我不太在乎,只是在其他情况下,这种“剪辑”解决方法可能不起作用。

请记住,我对动作脚本中的 OOP 有点陌生,哈哈,也许这完全是疯狂的,人们会以其他方式这样做。

感谢您的宝贵时间!

【问题讨论】:

  • 嘿,我在 as2 中创建了一个下载管理器,用于存储字符串,然后将它们用于文件路径,ffiles.com/flash/web_applications_and_data/… 包含所有源代码。基本上文本文件有路径字符串,然后闪存读取这些路径到 vars 以转到下载链接...浏览它应该在使用中。

标签: flash path actionscript-2


【解决方案1】:

不需要使用“x”,因为这是位置而不是它自己的字符 [NAME]。

  _root.PlayerName._x +=1; //dont need the x value

尝试类似:

     _root.PlayerName +"1"; //from memory should =: PlayerName1

     trace("player"+1);// just type this as a test

【讨论】:

    【解决方案2】:

    没关系,我找到了怎么做,谢谢。如果其他人遇到同样的疑问,这就是你的做法:

    要告诉 flash 您将使用变量内的 STRING 作为路径,您需要使用方括号。现在这可能有点令人困惑,至少对我来说,因为当你使用括号时,你不应该使用点。你会想,如果变量被称为 PlayerName 并且 de MC 属性的路径是 _root.PlayerName._x ,那么语法应该是:

    _root.[PlayerName]._x +=1;
    

    但这是错误的并且不起作用。至少这是我到目前为止收集到的。现在,为了让它工作,你需要去掉第一个括号之前的点,第二个之后就可以了。不确定这是否正确,但它似乎确实有效,试一试:

    _root[PlayerName]._x +=1;
    

    这确实有效,它访问名为“whatever-is-inside-the-PlayerName-variable”的电影剪辑的 _x 属性并将其递增 1。我发现这令人困惑的原因是因为根之后没有点,看起来好像您正在访问根变量,就好像它是一个数组一样,这没有任何意义,因为 PlayerName 没有存储在根目录中......无论如何,我不知道如何或为什么,但这似乎去工作。希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      _root[variableName]._x 是在路径中使用变量的正确方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-09
        • 2013-01-08
        • 2016-01-06
        • 1970-01-01
        相关资源
        最近更新 更多