ライブラリのアイテムを Unix コマンド風に操作するエクステンションを作った。 デモとソースコード。 実装した機能は ls mv cp rm clear ファイル名のタブ補完 だけ。ディレクトリ構造を保持していないので cd は使えない。パーサらしきものは、スペースで split しているだけなのでライブラリ名にスペースが入ると使えない。という、いまいちなツールだが、興味のある方はどうぞ。LibraryConsole.swf を WindowSWF ディレクトリに入れれば Flash IDE に現れるはず。 JSFL と AS を全文掲載しておく。 Flash から JSFL をコールする runScript 関数が便利だった (元ネタ)。 LibraryConsole.jsfl var names = []; var library; var items; //initNames fu
選択されたインスタンスに名前をつけるためのプロンプトを出す JSFL を書いた。と言うのも、マウスでインスタンスを選択してから、プロパティタブのインスタンス名のテキスト入力にフォーカスするキーボードショートカットがわからなかったため。 ソースコード。 var instanceName = prompt("set intance name", ""); if (instanceName) { fl.getDocumentDOM().selection[0].name = instanceName; } 適当なキーに割り当てたらとても快適になった。
タイムラインを Vim (Vi) のキーバインドで移動できるように設定した。Ctrl/Cmd-Shift-HJKL で選択状態のフレームが移動する。どのキーを押しているかが伝わらないデモ。 キーそれぞれに別々の JSFL コマンドを割り当てるのが面倒。関数呼び出しができたら楽なのだが。 FrameMoveLeft.jsfl //left (function () { var timeline = fl.getDocumentDOM().getTimeline(); var selectedFrames = timeline.getSelectedFrames(); if (selectedFrames[1] - 1 >= 0) { timeline.setSelectedFrames([selectedFrames[0], selectedFrames[1] - 1, selectedFr
複数の FLA ファイルを一括でパブリッシュする JSFL コマンド。共通で使用しているクラスを書き換えた時や、納品時の最終パブリッシュに使用すると便利だ。 同一ディレクトリ内の FLA ファイルをパブリッシュする //ディレクトリを指定 var dir = "file:///c:/hoge/foo/bar"; //dir が存在しない、かつ Flash 8 ならばオープンダイアログを出す if (!FLfile.exists(dir) && fl.browseForFolderURL) { dir = fl.browseForFolderURL("フォルダを選択して下さい"); } //FLA ファイルリストを得る var fileList = FLfile.listFolder(dir + "/*.fla", "files"); //パブリッシュを実行する for (var i = 0
gf を ActionScript の import 文で使うための設定をした。 import com.example.bar.foo.Hoge; この一行の上で gf を押したら com/example/bar/foo/Hoge.as が読み込まれる。 ActionScript の文法は Java のそれに似ているので Java でそういった tips があるはずだと思い、検索したら見つかった。 autocmd Filetype actionscript set suffixesadd=.as autocmd Filetype actionscript set includeexpr=substitute(v:fname,'\\.','/','g') set path+=. set path+=C:/projects/projectname/** C:/ 直下など、浅いディレクトを走
今日知ったイディオム。なるほどと思った。 以下は、至って普通のコード。 package { import flash.events.*; import Hoge; public class Test { public function Test() { var hoge:Hoge = new Hoge(); hoge.addEventListener(Event.COMPLETE, trace); hoge.doSomething(); } } } Test は普通に Hoge からのイベントをリスンしている。そして、Hoge package { import flash.events.*; import Foo; public class Hoge extends EventDispatcher { public function Hoge() { } public function d
Vim の補完機能は便利だ。例えば ActionScript を書くとき、 this.onE<C-n><C-n> と入力すると this.onEnterFrame となる。ただし、バッファ内のどこかで onEnterFrame という単語が登場していることが条件となる。そこで、辞書ファイルを用意することで、登場していない単語の補完が可能となる。 ActionScript の Vim 用辞書を設定する Web のリソースに ActionScript の辞書ファイルが無かったので、シンタックスファイルから keyword を抜き出して作成した。 ActionScript の Vim 用辞書ファイル 上記の辞書ファイルを適当なディレクトリ ($VIM/runtime/dict/ 等) に移動し、Vim の設定ファイルに以下の行を追加する。ファイルタイプの設定方法は「Vim で ActionScr
Flash で描画したベクター画像を img タグで表示させるデモを作った。肝はサーバプログラムを経由しないところ。 IE 以外のモダンブラウザなら、下の灰色の領域に線を描くと、その下に PNG 画像が現れるはず。 ペイントツール部分は、func09 さんのソースをお借りした。 仕組み PNGEncoder で PNG の ByteArray を作る その ByteArray を Base64 エンコードする その文字列を ExternalInterface でブラウザに送る data スキーマで画像を表示させる var bmp:BitmapData = new BitmapData(300, 300); bmp.draw(canvas); var base64Text:String = Base64.encodeByteArray(PNGEncoder.encode(bmp)); Ext
3to2 に触発され、JavaScript で SWF ファイルを読み込んで中身を書き換えるデモを作った。 JavaScript で SWF を読み書きする (Firefox 限定) 主な仕組み XmlHttpRequest で SWF バイナリを読み込む (参考) SWF を解析する (3to2 などを参考) Base64 エンコードして data スキーマを作る (参考、参考) デモでは fps を書き換えているだけだが、アセンブル/ディスアセンブルも技術的には可能だろう。
Windows では :grep コマンドの実体が findstr.exe で、いまいち使いづらいので GNU grep と grep.vim を使うようにした。特に、バッファ内を検索する :GrepBuffer が便利。 GNU grep をインストールする 以下の 2 サイトからバイナリをダウンロードする。 Grep for Windows FindUtils for Windows インストール場所は、スペースを含まない所が良い。スペースを含むと grep.vim がエラーを起こす。 grep.vim をインストールする grep.vim の最新版をダウンロードし、$VIM/runtime/plugin に配置する。そして gvimrc に以下のような設定を追加する。 :let Grep_Path = 'c:/GnuWin32/bin/grep.exe' :let Grep_Find
Vim で ActionScript を編集中に、Ctrl-Enter を押すとパブリッシュされるようにした。Alt-Tab で Flash IDE に移動しなくて済む。 Ctrl-Enter でパブリッシュできるようにする filetype を設定済みなことが前提条件で、 $VIM/runtime/ftplugin/actionscript.vim を作成する。 適当なフォルダに、publish.jsfl を作成する。 actionscript.vim nnoremap <buffer> <C-CR> :!start "C:/Program Files/Macromedia/Flash 8/flash.exe" "D:/jsfl/publish.jsfl"<CR> publish.jslf fl.getDocumentDOM().testMovie();
連続する代入文は = の列を揃えるとコードの可読性が上がる。しかし、列を揃える作業は時間を取る上に、整列させたとしても、ある変数名の長さが変わる度に、他の行のスペースの数を調整しなければならない。 そこで、Align.vim を使う。Align.vim は、面倒な整列を数回のキー操作で実現してくれる。もし、Ruby が得意ならば Ruby でフィルタ処理を行うという手もある。 ここでは、Align.vim の例を示す。 var hoge = 10; //this is hoge var foo = 200; //this is foo var barbarbar = 3000; //this is barbarbar 上記のような崩れたコードを選択後、\t= を入力すると一瞬で整列する。代入文に加えて、コメント開始の列も揃っていることに注目。 \t= var hoge = 10; // t
Flash の trace 出力を表示するアプリケーション "Trace Rabbit" を作った。以前エントリした FrashTracer のスタンドアロン版となる。 Trace Rabbit 1.0.1 スクリーンショット ダウンロード (13 KB) 実行に必要なもの .NET Framework 2.0 Flash Debug Player 9 注意事項 Debug Player 9 (9.0.28.0?) から、ログファイルの出力先が以下の場所に変わっている。Trace Rabbit はデフォルトでこのファイルを参照する。 C:/Documents and Settings/user_name/Application Data/Macromedia/Flash Player/Logs/flashlog.txt Debug Player 8 で Trace Rabbit を使用する
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く