gpt4 book ai didi

actionscript-3 - 如何访问 ActionScript 中的顶级包?

转载 作者:行者123 更新时间:2023-12-04 06:39:58 26 4
gpt4 key购买 nike

我想访问一个 ActionScript 3.0 top level function来自我的一类,其中已经定义了与顶级函数同名( trace )的符号:

class A {
public static function trace():void {
}
trace("Test");
}

我想调用全局ActionScript trace功能与 trace("Test") ,但这不能作为另一个符号 function trace()被定义为。

如果我想访问的外部定义位于包中( flash.utils 左右),我可以使用 flash.utils.[definitionName] 访问该外部定义,就像我在这里对 ByteArray 所做的那样:
import flash.utils.*;
class ByteArray {
var data:flash.utils.ByteArray;
}

ActionScript 3.0 中是否有类似的语法表达式允许我访问第一个示例中的跟踪函数而不更改我的类方法的名称 trace ?

这是一个假设性问题,请不要考虑变通方法。我需要完全按照上面的要求解决问题。提前致谢!

最佳答案

tracepublic命名空间,因此可以通过调用 public::trace 来访问它,但是这里的问题是您正在重新定义另一个 公众号跟踪,所以你不能调用前一个。

你可以做的是:

1 - 如果您的方法跟踪不必是 public成功了 protected or private然后您将能够调用原始跟踪:

public class Main extends Sprite 
{
protected function trace(...args):void {
public::trace(args) // access to the public function trace
}
public function Main():void
{
trace("hello world")
}
}

2 - 如果您无法更改签名,请将原始跟踪分配为静态 var/const,以便您稍后使用它:
public class Main extends Sprite 
{
// here save the original trace function
private static const _trace:Function = trace

public function trace(...args):void {
_trace(args) // call the original trace
}
public function Main():void
{
trace("hello world")
}
}

关于actionscript-3 - 如何访问 ActionScript 中的顶级包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8324919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com