Home > JSFL Archive

JSFL Archive

JSFL :: フレームスパンを自由に設定

  • Posted by: kaede
  • 2010年6月30日 20:16
  • JSFL

CS4から新しくなったモーショントゥイーン、使ってますか?
慣れてきたという方も多いのではないでしょうか。
その中で、新しくフレームスパンという概念ができました。

これはトゥイーンの時間を決定し、フレームの長さとして反映されます。

詳しくは、公式ヘルプのアニメーションの基本をご覧ください。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: FlashCS5をantクライアントにする flant

  • Posted by: kaede
  • 2010年6月30日 16:41
  • JSFL

ant

先日Adobe主催で行われたCS5イベント、station 5のSparkProject SP3で紹介させていただいた "flant" をSparkProjectにコミットしました。

Ant

Apache Antはビルドツールのひとつです。ビルドツールとは、"一連の処理を自動化"することができるもので、たとえば大規模アプリケーションでは、一つのファイルですべてが完結するわけではありません。複数のファイルでひとつのアプリケーションになるため、必要なファイルをまとめる、"パッケージング"という作業が発生します。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: MMExecute+fl.runScriptで関数呼び出し時、引数に改行コードが入るとエラー

  • Posted by: kaede
  • 2010年3月 6日 13:07
  • JSFL

MMExecuteとfl.runScriptを使うことで、SWFPnaelから外部のJSFLを叩けることは、このブログでも以前取り上げました。

SWFPanel開発時には、多用することになるこの二つのメソッド。
しかし、外部JSFLの関数を呼び出す際には注意が必要です。

引数はString

MMExecuteは第一引数にJSFLをStringで渡します。ということは、必然的に関数のパラメータもStringになります。

改行コードが含まれていると

やってしまいがちなのがこの問題です。SWFPanel側で何らかの処理をし、MMExecuteに引き渡す際、Stringに改行コードが混入していると、エラーが発生します。


MMExecute("fl.runScript(fl.configURI+'Commands/test.jsfl','test','mes\nsage')")
//SyntaxError: unterminated string literal

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: 出力パネルを指定時間で自動消去 OutputClear

  • Posted by: kaede
  • 2010年2月15日 19:22
  • JSFL

outputClear.jpg

traceを出し過ぎて、プレビューが重い事ってありますよね。
自分だけ作業しているときには全文検索でtrace全削除すればいいけど、複数人の場合にはそういうわけにもいきません。

trace文は消したくない!プレビューだけみたいのに重い。

そんなときのSWFPanelです。

ダウンロードは以下から。

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: FLfile.copyを拡張してディレクトリごとコピーする

  • Posted by: kaede
  • 2009年9月 8日 22:46
  • JSFL

意外かもしれませんが、JSFLはファイルシステムにアクセスすることができ、ファイルやディレクトリの読み書きが可能です。今回のエントリーでは、ディレクトリーのコピーについて記しています。

JSFLでファイルをコピーする場合は、FLfile.copyが便利です。このメソッドは、コピー元とコピー先のファイルシステムのURIを指定して使用します。ところが、このメソッド、実はディレクトリごとのコピーを行うことが出来ません。そこで、このメソッドを拡張してみましょう。ポイントは以下の4個です。

  • フォルダ内の一覧の取得する
  • ディレクトリ・ファイルの判定
  • ディレクトリの作成
  • 再帰

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

ActionScript 3.0 :: SWFPanelで発生したエラーを出力する

SWFPanel。便利な機能ですよね。Progressionでも活用されていますし、自分専用のジェネレターとか作れてしまうスグレモノです。

でも、欠点は開発のデバッグが大変なこと。traceとか、ランタイムエラーとか、出力パネルでないんです。

じゃぁ、どうしようってなるわけです。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: SWFPanel(AS3/SWF)のメソッドを呼び出すswfPanel.call

以前のエントリーでも、MMexecuteに関してはとりあげました。では、JSFL側が、SWFPanelとやりとりしたい場合はどうでしょう。これには、JSFLのswfPanelオブジェクトには、callメソッドを使用します。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: ライブラリのビットマップを全てロスレスに設定

  • Posted by: kaede
  • 2009年6月17日 13:48
  • JSFL

JSFLは、ちょっとしためんどくさい作業にうってつけです。

下記のJSFLはライブラリを走査して、ビットマップの圧縮設定を全てロスレスに変換します。

var lib = fl.getDocumentDOM().library
for(var i=0;i<lib.items.length;i++){
	var item = lib.items[i];
	if(item instanceof BitmapItem){
		item.compressionType = "lossless"
	}
}

BitmapItem

ライブラリに格納されるアイテムは全て、Itemクラスを継承します。ビットマップはBitmapItemクラスに属し、compressionTypeプロパティを持ちます。このプロパティは 画像圧縮の種類を指定するストリングです。 指定できる値は、「photo」または 「lossless」になります。

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: Flashのタイムラインに文字を書く

timelinemessage1.png

先のエントリーで、Geoff氏の誕生日用に作ったJSFLを用いたタイムラインメッセージ。

ポイントは3つ

  • JSFLとAS3(SWF)の連携
  • AS3によるパーティクル表現
  • JSFLの限界

これを踏まえて、以下解説編です。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

SparkProject勉強会#9でGeoffを全力で祝ってきた

title.png

昨日、SparkProject勉強会#9にスピーカーとして参加しました。今回、SWFObjectの開発者であるGeoff Stearns氏が来日・ゲストとして登場し、氏の誕生日と言うこともあってすごい盛り上がりでしたね。

で、僕はJSFLについて自分がコミットしているものを紹介したわけなんですが、それとは別にGeoffが誕生日ってことで皆でFlashつかって祝おう!って企画があがったわけです。

ARを使ったバースデーケーキの拡張現実やら、WEBカムでGeoffの顔をあしらったケーキを生成したり、もうすごいのなんの。僕は性懲りもなく、JSFLでお祝いしました。どんだけJSFL好きなんだと。

Continue reading

  • Comments: 0
  • TrackBacks: 1
  • はてなブックマークに追加

ActionScript 3.0 :: SWFPanel(AS3)とJSFLを連携するMMExecute2

ちょっと使いづらいMMExecuteを少しだけ使いやすくするユーティリティクラスMMExecute2をSparkにコミットしました。

as3のMMExecute関数は、SWFPanelとJSFLの連携を図るためのパッケージ関数です。引数にJSFLコマンドをStringで渡すことで、SWFPanelからJSFLを実行することが出来ます。ところが、Stringにしなければならないため、外部のJSFLに定義されている関数を実行したり、引数を渡したりするのは、少しめんどくさく、かつとても見にくくなりがちでした。MMExecute2はそんな問題を解消します。

http://www.libspark.org/wiki/kaede/MMExecute2

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFL :: Flash CS4 10.0.2アップデートでfl.publishDocument()メソッドが追加

  • Posted by: kaede
  • 2009年5月14日 16:54
  • JSFL

今回のアップデートは主に、多数のバグフィックスやパフォーマンス向上が主になっています。

そんな中JSFL使いとして見過ごせない一文が・・・。

You can now use fl.publishDocument( flaURI [, publishProfile] ) to do this.

fl.publishDocument()

今まで、JSFLからのパブリッシュ実行はアクティブになっているFLAファイルをパブリッシュするか、SWFとして書き出すことしかできませんでした。今回のアップデートで追加されたfl.publishDocument()メソッドは、第一引数にURIを指定することでどこのディレクトリに存在するFLAファイルでもパブリッシュすることができようになりました。これは素晴らしいことです!下記はサンプルになります。第一引数に指定するURIはfile:///形式であることに注意する必要があります。この形式へは、FLfile.platformPathToURI()メソッドにプラットフォーム固有のURIを渡すことで変換してくれます。

fl.publishDocument(FLfile.platformPathToURI("C:\\example\\test.fla"))

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

TweenerのTransitions一覧をFlashCS4のパネルにするコンポーネント

  • Posted by: kaede
  • 2009年4月 8日 21:31
  • JSFL

tweenertransitions.jpg

http://www.libspark.org/wiki/kaede/TweenerTransitionsPanel

SWFPanelとは

Creative Suite 4 familyの特徴として、SWFをパネルとして追加する事ができます。これらはSWFPanelと呼ばれ、FlashならばJSFL、PhotoshopならJSXというように、JavascriptAPIを用いてアプリケーションを操作することが可能になりました。FlashCS4ではネイティブに入っているkulerパネルやProjectパネルは、この機能によって実現されています。SWFPanelの実装もConfiguration/WindowSWFに該当のSWFを格納するだけと、実に単純で簡単です。

TweenerTransitionsPanel

TweenerTransitionsPanelは、忘れがちなTweenerのTransitions一覧をFlashCS4にパネルに格納しました。わざわざアクセスしなくても、さっと確認することができます。

使い方

  1. mxpをダウンロードしてインストール
  2. ウィンドウ>他のパネル>TweenerTransitions
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

[JSFL]リアルタイムにパブリッシュを実行するコンポーネントRealPub[AIR]

http://www.libspark.org/wiki/kaede/RealPub

http://www.libspark.org/svn/mxp/RealPub/RealPub.zip

少し遅れてのコミットになってしまいましたが、先日行われたJSFL勉強会で発表したJSFLをSparkで公開しました。もともと、このコンーネントは以前行われたDTL.asで、吉川さんが公開して話題となったAIRアプリで実現するASエディタのリアルタイムパブリッシュ機能を、サーバー無しで実現させようと考え、開発しました。

リアルタイムパブリッシュ・コンポーネントRealPub

RealPubは、SWFPanel+AS3/JSFL/AIRの技術を使用したコンポーネントです。実行結果は題目通り、指定された秒数ごとにパブリッシュを実行し、専用のAIRアプリに表示します。FLASHコンポーネント内から独立するAIRアプリのため、常に最前面に表示することができ、パブリッシュ結果の確認を容易にします。

使い方は以下から

Continue reading

  • Comments: 1
  • TrackBacks: 0
  • はてなブックマークに追加

シンボルのリンケージクラスを全検索・全置換するJSFL

  • Posted by: kaede
  • 2009年2月12日 14:53
  • JSFL

Flashのライブラリ内に登録されているシンボルのリンケージ。
これを全検索・全置換できるJSFLをSparkにてコミットしました。
今開いているすべてのflaドキュメントもしくは今アクティブなflaドキュメントのライブラリ内を対象にできます。

spark - AllClassLinkageReplac
http://www.libspark.org/wiki/kaede/AllClassLinkageReplace

download
http://www.libspark.org/svn/mxp/AllClassLinkageReplace/AllClassLinkageReplace.mxp

使い方は以下から。

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

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");
  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

JSFLでステージサイズを変更するとクラッシュする[Flash]

  • Posted by: kaede
  • 2008年12月10日 19:55
  • JSFL

JSFLで、ステージサイズを動的に変更したい場合

 fl.getDocumentDOM().width = 150;
 fl.getDocumentDOM().height = 200;

上記のようにドキュメントにアクセスした上で、width,heightにアクセスします。

リファレンスには、この値について以下のように記述されています。

プロパティ。ドキュメント ( ステージ) の幅をピクセル単位で指定する整数。

ステージサイズは整数で指定する

引用でも分かるとおり、整数を指定する必要があります。

仮に、浮動小数点を含んだNumberが指定された場合、エラーコンソールもでることなくクラッシュするので、注意が必要です。

たとえ、表面上が整数であっても、クラッシュする可能性もあります。

たとえばある特定のオブジェクトサイズに合わせてステージサイズを変更したい場合、オブジェクトのwidth/heightにアクセスすることになります。プロパティ上でも、fl.trace上でも整数なのにクラッシュすることがあり、理由として内部的なプロパティ値が浮動小数点を含んでいるからです。

よって、なんらかのオブジェクトにアクセスしたNumberをステージサイズに設定する時には、必ずMath.floorやMath.roundを使用して浮動小数点を排除することで、クラッシュを回避することができます。

 var dom = fl.getDocumentDOM();
dom.width = Math.round(dom.getElementProperty("width"));

ステージサイズは幅高2880pxまで

ステージサイズには、限界があります。その制限は2880pxで、これを超えるステージは作成できません。これは、JSFLにも同じ制限が適用されます。

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

型を特定する[as2/as3/JSFL]

Flash周りのスクリプト言語で型を特定したい場合、 as2,as3,jsflではそれぞれ実装がことなってきます。

例えばas2の場合、

//as2
typeof(test_mc)//movieclip

typeof()を用いて特定ができます。
as3の場合では、typeofを実行しても objectが返ってくるため、
同じようにはいきません。
私の場合はよくisステートメントを利用します。

//as3
(test_mc is MovieClip)//true

ところで、jsflではどうでしょう?

Continue reading

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

[Flash]ラベルを連番で自動生成するJSFL InsertLabel.jsfl [JSFL]

  • Posted by: kaede
  • 2008年12月 1日 20:06
  • JSFL

http://www.libspark.org/svn/mxp/insertLabel/insertLabel.mxp

jsflを書いたので、コミットしました。
上のURLからmxpでDLできます。
・選択したフレームにラベルを連番で自動生成
・連番前に任意の文字列を挿入可能
・番号の初期値を設定可能
・選択したフレームの個別入力も可能
使い方は、上の動画をご覧下さい。

なお、今のところFlashCS3以上で動作検証をしています。
Flash8以下では動かない可能性が高いです。ご了承下さい。

[追記]
フレームラベル・連番でgoogleしたらカヤックさんのJSFLを発見!
機能もすごいそっくり!(笑
今更こんなの自力で書いてアホまるだしですが、、
物好きな人もってください(涙
みんな考えることおなじなんだなぁと思ったのでした。

  • Comments: 0
  • TrackBacks: 0
  • はてなブックマークに追加

Index of all entries

Home > JSFL Archive

Search
Feeds
Tag Cloud
Sticker
Recommend
Powered by POPit

Return to page top