может как-то через неймспейс вызвать, типа global::trace('array in
private function trace:', arr);
Также создавать специально класс со статик функцией трейс не корректно.
--
http://ruslanshestopal.com | - freelance flash developer and a DJ
Ruslan Shestopal пишет:
Поэтому придётся сделать наоборот: указать namespace для своего метода.
//Generated from playerglobal.swc
package {
public function trace(...args : *) : void;
}
судя по этому, неймспейса по дефу нету.. хотя если его запихнуть в
папку, и скомпилить свц, то вероятно возможно.
Но ломать стандартную структуру свц, ради этой идею - влом xD
Daniil Tutubalin пишет:
Он забывает добавить, что функция ещё и native.
То есть её реализация находится не в playerglobal.swc, а в флеш плеере.
Кроме того, плеер содержит собственную копию playerglobal.swc (точнее,
abc-кода из неё), поэтому хак swcшки компилятора никак не поможет.
package {
public class Test {
public var value:int = 1;
public function Test() {
trace();
}
public function trace():void {
Hack.myTrace(value);
}
}
}
internal class Hack {
public static function myTrace(... args):void {
trace.apply(null, args);
}
}
Daniil Tutubalin пишет:
private function trace(arr : Array) : void {
public::trace('array in private function trace:', arr);
}
Но будет работать только если ваша функция в приватном неймспейсе
Раньше в АВМ1 вообще трейс не был функцией, как и некоторые другие якобы
глобальные якобы функции. Была инструкция за номером 0x26 с одним
аргументом.
--
Michael Antipin
______________________________________________________________________
fe...@noregret.org | http://skazkastudio.ru | http://noregret.org