将动作脚本 2 转换为动作脚本 3

Posted

技术标签:

【中文标题】将动作脚本 2 转换为动作脚本 3【英文标题】:convert action script 2 to action script 3 【发布时间】:2016-03-27 15:46:00 【问题描述】:

好的,我阅读了论坛,似乎任何询问将 AS2 转换为 AS3 的人都会被诸如“你为什么要使用 AS2,只需在 AS3 中从头开始重写它”之类的帖子激怒。所以请不要这样回答,我只需要帮助弄清楚代码的这个特定的sn-p。这是 AS2,我不知道它在做什么。

if (_root.components == undefined) 
     _root.components = "";

_root.components = _root.components + _root.getInstanceAtDepth(this.getDepth()) + " ";

我用谷歌搜索了单独的方法“getInstanceAtDepth”和“getDepth”,并了解到它们处理电影的分层。麻烦是'_root.components'。如果这是将影片剪辑称为“根”,则没有名为“组件”的方法或属性。您可以将组件放在舞台上并使它们成为movieclip fla 文件的一部分,但这似乎并不能解释代码在做什么。有谁知道 _root 在这里可能指的是什么,什么对象具有“组件”属性?

谢谢,

【问题讨论】:

在 AS3 中 _root 已更改为 root @FraserCrosbie 是的,.components 似乎是问题所在......我将 _root 更改为 root,编译器说“通过静态类型 flash.display:DisplayObject I 的引用访问可能未定义的属性组件猜猜我是否知道“根”指的是什么类型的对象,那么我可以添加正确的导入语句 不管你怎么想,要求将 AS2 转换为 AS3 与要求将 python 转换为 C# 没有什么不同。答案总是一样的:你不能转换,所以你必须从头开始。像你这样的人总是要求将 AS2 转换为 AS3 的唯一原因只是因为他们的名字中都有“AS”,一个有“2”,另一个有“3”,所以转换它们应该很容易,只是因为那个'1'的区别。最后你可以随心所欲地抱怨你仍然需要在 AS3 中从头开始编写它。 投了反对票。正如他自己所说,他已经用谷歌搜索了这个主题,答案总是一样的:“不可能,所以从头开始”。所以他想,既然他不喜欢这些答案,他再次发帖只是要求不要发布相同的答案,他会得到一个不同的答案……太棒了。 @botmaster 我用谷歌搜索其他人对这个问题的答案。如果您不知道答案,请不要浪费我的时间回复。为什么你在这里回复只是为了听你自己说话? 【参考方案1】:

我认为您想了解 AS2 代码而不是转换它。

该代码显然是在组件(按钮、电影剪辑)的代码中使用的,它只是试图将该组件的名称连接到一个全局字符串 (_root.components)。

例如,如果我有一个名为 button 的按钮和一个名为 movieclip 的 MovieClip,当我使用它们的 onPress() 函数执行该代码时,我会得到这样的结果:

_level0.button _level0.movieclip

希望能有所帮助。

【讨论】:

以上是关于将动作脚本 2 转换为动作脚本 3的主要内容,如果未能解决你的问题,请参考以下文章

将类转换为对象动作脚本 3

将变量从动作脚本 3 传递到动作脚本 2

如何在动作脚本中舍入数字

如何知道是动作脚本 1、动作脚本 2 还是动作脚本 3?

Actionscript 3,动作脚本中的网格和网格行

从 Photoshop 动作到 Photoshop 脚本?