Flash
Flash ゲーム用のシンプルなスコアランキングライブラリを書きました。先日作った「さめがめ」でも使っています。 ダウンロード パッケージを GitHub のリポジトリからダウンロードしてください。 確認済みの動作環境 PHP 5.3 MySQL 5.1 PHP のバージョンは …
actionscript.vim と neocomplcache を同時に導入すると、キーワード補完が全て小文字になる不具合が発生します。 これは actionscript.vim 内に書かれている、 syn case ignore この一文が問題のようです (neocomplcache の Wiki より)。 使いづらいので修…
「さめがめ」の Flash ゲームを作りました。暇つぶしにどうぞ。 ルール 2 つ以上つながっているブロックを消せる つながっている数が多いほど得点が高い 消せなくなった時点で残っているブロックが少ないとボーナス得点が入る スクリーンショット フォントは…
ライブラリ内の選択されたアイテムのリンケージを解除する JSFL コマンド。 Commands/ReleaseLinkage.jsfl at master from tanabe's JSFL - GitHub (function (document) { var library = document.library; var selectedItems = library.getSelectedItems()…
相対パスを絶対パスに変換する ActionScript クラスを書きました。 tanabe's PathResolver at master - GitHub 基本的な使い方 PathResolver.getAbsolutePath メソッドの第 1 引数にベースとなるパス、第 2 引数にベースとなるパスからの相対パスを指定しま…
Flash の trace ログを表示するツール「Trace Rabbit」の AIR 版を作りました。 ダウンロード (version 0.1) TraceRabbit.air セットアップ方法 Flash Debug Player がログを出力するように設定します。mm.cfg ファイルが存在しなければ、下記の場所に作成し…
Flash Player を切り替えるアプリケーション「Switch Rabbit」を作りました。タスクトレイに常駐し、メニューから IE (ActiveX) または Firefox の Flash Player のバージョンを切り替えることができます。 ダウンロード (version 0.3) Windows 版インストー…
画像をクロップ (切り抜き) するだけのサービス crppr を作りました。是非、ご活用ください。 使い方 極力操作がシンプルになるように心がけました。 青いボタンを押して画像を選ぶ。 画像の上でマウスをドラッグして四角を書く。 緑のボタンを押して切り抜…
Flex SDK 3 と Flex SDK 4 で、フォント埋め込みのための Embed メタデータタグの記述が若干異なるようです。 下記のコードは Flex SDK 3 では正しく動作しますが、Flex SDK 4 では上手くいきません。 [Embed(source="hoge.ttf", fontName="hoge")] Flex SDK…
"電卓を起動する AIR 2.0 アプリ" ができるまでのメモ。 0. 開発環境 Windows XP FlashDevelop 3.0.6 RTM (C:/FlashDevelop) Flex 3 SDK (C:/flex_sdk_3) 1. AIR 2.0 Beta 2の SDK を入れる Adobe Labs からダウンロード。ランタイムも忘れずに。 zip を解凍…
AS3 では XML を使って、ヒアドキュメントもどきを実現できる。 ヒアドキュメントもどきを使えば、JavaScript を読みやすい形で ActionScript 内に書くことができる。 var script:String = <script type="text/javascript"> "; } document.getElementBy…
文字列を 1 文字づつの配列にする方法。 var s:String = "hogehoge"; var splitted:Array = s.match(/./g); //h,o,g,e,h,o,g,e
#2 for ループを for each ループに置き換える インデックスが不要ならば、for ループの代わりに for each ループを使用する。 for (var i:uint = 0; i < array.length; i++) { ... } ↓ for each (var item:Hoge in array) { ... }
Flash/ActionScript のリファクタリングネタをシリーズで始めます。 #1 フレーム番号をラベルに置き換える gotoAndStop や gotoAndPlay の引数はラベルで指定したほうがよい。フレーム数で指定すると、アニメーションの尺に依存してしまう。 movieClip.gotoA…
FrameLabel クラスの存在を知った。MovieClip の currentLabels プロパティで配列として取得できる。 currentLabel プロパティも FrameLabel を返せばいいのに、ラベル名の String が返ってくる。 ラベル名からフレームの番号を得る function labelNameToFra…
パッケージ名を取得する方法。 package foo.bar.baz { import flash.utils.getQualifiedClassName; public class Hoge() { public function Hoge() { trace(getQualifiedClassName(this).match(/(^[^:]+)/)[1]); //foo.bar.baz trace(getQualifiedClassName(…
FlashDevelop with FlashPlayer 9.0.115 でテストしたい。 まず、Flash Player を落としてきて、 Tools -> Program Settings -> FlashViewer -> External Player Path c:/path/to/flashplayer9r115_win_sa_debug.exe ここが空の場合、どこかに存在する、9.0.…
ステージに配置された 2 つの要素の位置を入れ替える JSFL を書いた。 var selection = fl.getDocumentDOM().selection; if (selection.length === 2) { var temp = {}; temp.x = selection[0].x; temp.y = selection[0].y; selection[0].x = selection[1].x…
.as のテンプレート周りをさらに改良。XxxEvent.as のように Event.as で終わるファイル名ならば Event クラス用のテンプレートを読むようにした。 gvimrc au BufRead,BufNewFile *.as call LoadASTemplate() function! LoadASTemplate() if (line("$") == 1…
以前設定した、テンプレートを適用する設定を強化して、クラス名 = ファイル名になるようにした。 gvimrc au BufRead,BufNewFile *.as call LoadASTemplate() function! LoadASTemplate() if (line("$") == 1) && (match(getline(1), "^$") == 0) "Windows 0…
mxmlc のコンパイルオプションが便利かも。 条件付きコンパイルの使用 (livedocs) 特定のビルドでコードブロックを包含または除外するには、条件付きコンパイルを使用します。mxmlc コンパイルでは、コンパイル時に定数の値をアプリケーションに渡すことがで…
ライブラリ内の 2 つのアイテムのリンケージ設定を入れ替える JSFL を書いた。 //SwapLinkageSettings var selectedItems = fl.getDocumentDOM().library.getSelectedItems(); var itemA = selectedItems[0]; var itemB = selectedItems[1]; var source; var…
Flash CS3 と FlashDevelop がはき出す HTML の、FlashPlayer のバージョン指定の所が 9.0.0 になっている。Event.ADDED_TO_STAGE などを使用すると 9.0.0 では動かないので、素の HTML をそのまま使うのはまずい。
職場で FlashPlayer 9 のマイナーバージョン絡みでハマる。要件定義の際には、マイナーバージョンまでの同意を得るべきだと痛感した。 リリースノートに書かれている以外にも、メソッドやプロパティがしれっと追加や仕様変更されているようなので調べてみた…
JSFL を UTF-8 で書くときは BOM を付けた方がいい。 //取 fl.trace(1); BOM なし UTF-8 だと、このコードが動かなかった (Windows/Flash CS3)。 Vim で BOM を付けるには :se fenc=utf-8 bomb とする。
TextField の htmlText に target="_blank" 付きでリンクを貼ると、IE でポップアップブロックされる。 ActionScript textField.htmlText = "<a href='http://google.co.jp' target='_blank'>Google</a>"; なので、それを回避するため asfunction 経由の ExternalInterface を使おうと思ったら、AS3 には asfunc…
以下の条件で Windows 版 Safari 3.2.2 が 100% 落ちる。 ExternalInterface 経由で、SWF 自身が置いてある HTML 要素を削除する。 フレームスクリプトで ExternalInterface を呼び出す。 その SWF の wmode が transparent である。 ActionScript //in cras…
ExternalInterface でハマった。 var hoge = document.createElement("hoge"); hoge.innerHTML = "
空の .as ファイルを開いたときにテンプレートを読み込むようにした。 :he skeleton :he au を参考。 Vim スクリプト au BufRead,BufNewFile *.as call LoadASTemplate() function! LoadASTemplate() if (line("$") == 1) && (match(getline(1), "^$") == 0)…
DisplayObject を表示リストの一番上に持ってくるやり方は幾つかある。 setChildIndex setChildIndex(displayObject, numChildren - 1); addChildAt addChildAt(displayObject, numChildren); addChild addChild(displayObject);