エクスポートされたシンボルを* .swfファイルにアクセスする方法はありますか?* .swfファイル内のすべてのシンボルにアクセス
私はのFlash IDEの図書館のActionScriptからエクスポートをマークされているすべてのシンボルを意味します。そうすれば、あらかじめシンボルの名前を知らなくても、getDefinition()クラスを使うことができます。
これは、* .swfファイルのすべてのシンボルに対していくつかの操作を実行する必要があるフレームワークに沿って動作する、AS3で作成された内部ツール用です。
パフォーマンスは不要で、ハッキングされたソリューション(swfのByteArrayにアクセスするなど)が有効です。 として
おかげ
ダニエルが提案、私は* .swfファイルのバイトコードを解析し、クラスの読み取りにas3swfを使用して終了。
ここでは、シンボル名を含む配列を返します。getDefinition()で使用できるようになりました。 ByteArray* .swfファイルを渡す必要があります。新しい11.3フラッシュAPIで
private function getSymbolList(bytes:ByteArray):Array {
var swf:SWF = new SWF(bytes);
var ret:Array = [];
for each(var tag:ITag in swf.tags) {
if(tag is TagSymbolClass) {
var symbolClass:TagSymbolClass = tag as TagSymbolClass;
for (var i:int = 0; i < symbolClass.symbols.length; i++) {
ret.push(symbolClass.symbols[i].name);
} return ret;
}
} return ret;
}
、この機能が内蔵されています。
var definitions:Vector.<String> =
this.loaderInfo.applicationDomain.getQualifiedDefinitionNames();
あなたはswfデコンパイラがあなたのニーズに合うと思いますか? – ToddBFisher
逆コンパイラを(swfファイルである)私のツールから呼び出すことができ、外部swfからのシンボルの名前を持つリストを返す場合は、yesを返します。 – Veehmot