ライブラリの中でASが書いてあるシンボルをチェックするJSFLの修正。

[Flash]ライブラリの中でASが書いてあるやつを調べる
http://violentcoding.com/blog/2008/08/05/archives/207

 

タイムライン上でASが書かれたフレームを取得するJSFLが思ってた内容では無くて、少し困ってました。

 

timeline 01

こんな感じで普通に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フレームも空白キーフレームになってれば、区別できるのですが、普通こんなことしませんし。
timeline 02

 

なので、昨日はASが書いてある「キーフレーム」だけをうまく選別できなくて、適当かつ強引に「同じASが続く場合は無視!」とやっていたのだけど、当然、意図的に同じASコードが続くフレームの場合には出力できない状態でした。

 

今日、そういえば、_level0.CUPPYさんのとこにキーフレームを行き来するJSFLがあったなと思い出して、それができるのなら、キーフレームが取得できるんじゃないかと試してみました。

キーフレーム間をワンタッチで行き来する|_level0.CUPPY
http://level0.cuppy.co.jp/2007/08/post_11.php

 

この中にでてくる frame.startFrame を使って、キーフレーム判定を試してみたらうまくASが書かれた「キーフレーム」だけを抽出できるようになりました。

ありがとう、_level0.CUPPYさん。

 

ということで、整理したり、なんらかの拡張機能に持っていくのは当分先になりそうですが、とりあえず使いたいという人は申し訳ないですが、早速修正するはめになったJSFLをダウンロードし直してくださいね。

libItemASCheckJSFL_0_2_0.zip

 

追記:

  • 2008/08/23 さらに改良してSpark projectにコミット
  • 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

  • 2008/08/07 Tanabeeさん改良版
  • Tanablog: “ライブラリの中でASが書いてあるやつを調べる” を改良した
    http://bitmap.dyndns.org/blog/archives/001602.html

    ありがとう、Tanablogさん。

     

    Related posts