ライブラリの中でASが書いてあるシンボルをチェックするJSFLの修正。
[Flash]ライブラリの中でASが書いてあるやつを調べる
http://violentcoding.com/blog/2008/08/05/archives/207
タイムライン上でASが書かれたフレームを取得するJSFLが思ってた内容では無くて、少し困ってました。

こんな感じで普通に5フレーム目「trace(”frame 5″);」と10フレーム目「trace(”frame 10″);」にASを書いた場合、JSFLの frame.actionScript でフレームに記述されたActionScriptを取得しようとする。
var targetLayer = fl.getDocumentDOM().getTimeline().layers[0];
// 5フレーム目
var asCode05 = targetLayer.frames[4].actionScript; // => trace("frame 5");
// 10フレーム目
var asCode10 = targetLayer.frames[9].actionScript; // => trace("frame 10");
これはこれで良いのだけど、実は5フレーム目以降でも途中にキーフレームが無いと、その前のキーフレームに書かれた内容を actionScript プロパティとして持っている。
var targetLayer = fl.getDocumentDOM().getTimeline().layers[0];
// 5フレーム目
var asCode05 = targetLayer.frames[4].actionScript; // => trace("frame 5");
// 6フレーム目
var asCode06 = targetLayer.frames[5].actionScript; // => trace("frame 5");
// 7フレーム目
var asCode07 = targetLayer.frames[6].actionScript; // => trace("frame 5");
// 8フレーム目
var asCode08 = targetLayer.frames[7].actionScript; // => trace("frame 5");
// 9フレーム目
var asCode09 = targetLayer.frames[8].actionScript; // => trace("frame 5");
// 10フレーム目
var asCode10 = targetLayer.frames[9].actionScript; // => trace("frame 10");
これだと、ASが書かれたフレームだけをしっかり区別できないのです。下みたいに6から9フレームも空白キーフレームになってれば、区別できるのですが、普通こんなことしませんし。
なので、昨日はASが書いてある「キーフレーム」だけをうまく選別できなくて、適当かつ強引に「同じASが続く場合は無視!」とやっていたのだけど、当然、意図的に同じASコードが続くフレームの場合には出力できない状態でした。
今日、そういえば、_level0.CUPPYさんのとこにキーフレームを行き来するJSFLがあったなと思い出して、それができるのなら、キーフレームが取得できるんじゃないかと試してみました。
キーフレーム間をワンタッチで行き来する|_level0.CUPPY
http://level0.cuppy.co.jp/2007/08/post_11.php
この中にでてくる frame.startFrame を使って、キーフレーム判定を試してみたらうまくASが書かれた「キーフレーム」だけを抽出できるようになりました。
ありがとう、_level0.CUPPYさん。
ということで、整理したり、なんらかの拡張機能に持っていくのは当分先になりそうですが、とりあえず使いたいという人は申し訳ないですが、早速修正するはめになったJSFLをダウンロードし直してくださいね。
追記:
GetFrameActionScript - Spark project
http://www.libspark.org/wiki/e_s_jp/GetFrameActionScript
[Flash]フレームに書いてあるASを出力するコマンド | blog ViolentCoding
http://violentcoding.com/blog/2008/08/23/archives/279
Tanablog: “ライブラリの中でASが書いてあるやつを調べる” を改良した
http://bitmap.dyndns.org/blog/archives/001602.html
ありがとう、Tanablogさん。
