Home > JSFL > JSFLでフレームにActionScriptを挿入する際のスマートなやり方

JSFLでフレームにActionScriptを挿入する際のスマートなやり方

  • Posted by: kaede
  • 2008年12月12日 18:03
  • JSFL

frameを参照する

JSFLを使えば、タイムラインのフレームに直接actionscriptを挿入することができます。以下のソースでは、ドキュメントのカレントシーンの一番最上面のレイヤーの1フレーム目を参照し,actionscriptを挿入します。

var frame = fl.getDocumentDOM().getTimeline().layers[0].frames[0]
frame.actionScript = "this._visible = false"

まず、getDocumentDOMで現在開いているドキュメントを参照し、getTimelineでカレントシーンを示すtimeLineオブジェクト取得します。次に、timeLineオブジェクトに内包されているlayersプロパティを参照します。このプロパティ値は配列で、該当シーンのレイヤーを上から順に格納します。そこで必要なlayerオブジェクトを取得したら、layerオブジェクトのframesプロパティを参照します。これは、layersプロパティと同様、配列で管理され、フレーム1はframes[0]で取得します。IDE上はフレーム1ですが、配列参照のindex値は0であることに注意してください。

フレームにactionscriptを挿入する

frameオブジェクトはactionScriptプロパティを内包しています。このプロパティの型はstringで、指定した値がそのまま埋め込まれます。改行には"\n"を使用します。

Array.join()を使ってスマートに

actionScrilptプロパティはString指定のため、改行が含まれているソースは非常に複雑かつ読みにくい物となってしまいます。これでは、今後のメンテナンスにも影響を与えかねません

//煩雑なソース
frame.actionScript = "var flag:Boolean = false; \n if(!flag){\n this._visible = false;\n flag = true;\n };"

この問題は、Array.join()を活用することで解決できます。joinは、配列の要素をを引数で指定した文字列で連結し、Stringに変換します。以下のソースでは、指定する区切りの文字列に改行指定"\n"を指定することで、改行指定を挿入する手間を省き、かつ見やすいソースになっています。

frame.actionScript = [
    'var flag:Boolean = false;',
     'if(!flag){',
    'this._visible = false;',
    'flag = true;',
    '};'
].join("\n");

Summer Camp 2010 野中文雄のActionScript 3.0による 三次元表現

無料  ActionScript 3.0による 三次元表現 in アップルストア 銀座

フィジカルコンピューティング ラボラトリー

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://xingxx.com/mt/mt-tb.cgi/28
Listed below are links to weblogs that reference
JSFLでフレームにActionScriptを挿入する際のスマートなやり方 from xingxx

Home > JSFL > JSFLでフレームにActionScriptを挿入する際のスマートなやり方

Search
Feeds
Tag Cloud

Return to page top