ActionScriptを使わないFlash勉強会 #1 - [PARTAKE]
http://partake.in/events/2f2588c4-6a00-465c-b50f-752138a58b70
yoya「PHPでのSWF編集とその応用」
@yoya
スライドなどはこちらから。
ActionScriptを使わないFlash勉強会 #1 - yoyaのメモ
http://d.hatena.ne.jp/yoya/20110422/swf
niwauu「動的Flashアプリ『まめフラスコ』の話」
@niwauu
ActionScriptを使わないFlash勉強会 #1(前日版)
View more presentations from libpanda
ken39arg「swf愛について」
@ken39arg
SWF LOVE (ASを使わないFlash勉強会 #1)
View more presentations from ken39arg
2011-04-23 - 続・ken39arg
http://d.hatena.ne.jp/ken39arg/20110423
- gordon
- jsでswfバイナリを解析してSVGを創りだす
- 現在更新が停止している
- smokescreen
- 自作しよう!!
- 全体を
で囲む - bitmapは
- グラデは
- ラインごとにセットは大変
- style毎に変換
- DeltaX DeltaYは絶対値に計算しなおす
- LineTo は L に
- CurveTo は Q に
- toの絶対値はアンカーの位置
- PlaceObject毎に
- CharacterId
- xlink:href="#<ここ>";
- Depth
- 表示順
- Matrix
- transform="matrix(<ここ>)"
- Stage
- Define定義は
(見えなく成るタグ)
- Define定義は
- StageのPlaceObject(
)を の中に記述
- SVGだとラインサイズがデフォルト20なので1/20にする
- JavaScriptでパースまでやると遅いのでパースはサーバで行い、画像は href="" で参照出来るように
mzp「OCamlでFlash9をいじくってたときの話」
@mzp
- こんなん作りましたHappyABC
- Flash9を吐くScheme(っぽい何か)
- ダンプしてみる
- tamarin付属のabcdump[3]でダンプ出来る
shell abcdump abc -- hello.abc
- スタックマシン
- AVM2はスタックマシン
- 命令はスタックにデータをpush/popしながら動作する
- AVM2は純粋なスタックマシンでは無い
- データ用と変数スコープ用の2つのスタックを持つ
- 引数の受け渡しはスタックでは無く、レジスタを使用
- ABCで使われるデータ型
- s24 24ビットのsigned int
- u8, u16: nビットのunsigned int
- u30, u32, s32 可変長の(un)signed int
- 最大5バイト
- 上位1ビットが立っていれば後続有り
- d64 : 倍精度浮動小数点数(double)
- 命令の形式
- バイナリに変換されて入っている
- 引数のある命令
- kill 1は1が引数になっている
- opcodeは0x08
- 仕様書によると引数はu30
- kill 1は1が引数になっている
- 定数を使う命令
- pushstring
- opcodeは0x2c
- 引数はu30
- pushstring
- 定数プール
- 文字列定数などは定数プール(constant pool; cpool)にまとめられている
- 定数を使うばいとコードでは、定数プールのインデックスを使う
- ABCの定位数
- ABCはTamarinを使うと、直接実行出来る。
- AS3とほぼ1対1
- AVM2 Overview(公式ドキュメント)
- swfmill(trank)
- ABCのダンプが可能
emorins「DoActionからJava VMバイトコードに変換する話」
@emorins
DoActionからJava VMバイトコードに変換する話
View more presentations from emorins
- 最終的な目標
- ActionScriptでJavaアプリの開発
- swfからJavaアプリへの変換
- 今回やる事
- 簡単な加算演算と変数への代入
i = 4; i = 2 + 3;
ActionPush:i ActionPush:4 ActionSetVariable: ActionPush:i ActionPush:5 ActionSetVariable:
- ここからJavaのコードに変換する
- iconst_<i>
- int定数をオペランド・スタックへpush
- istore_<i>
- int定数をオペランド・スタックからpop
Q : 何故?AVM2じゃなくてFlash Lite向け
A : 携帯向けのswfをAndroid向けなどのJavaに変換したかった
ryopei「Java厨とはじめてのFlash」
ローカルで専用ツールでswf作成、サーバ(GAEサーバ)にアップ後にキャラ名などを変換したものを携帯へDL
- JavaSWF2(http://sourceforge.net/projects/javaswf/)
- 修正のポイント
- タグの抜けが多い。終了タグが抜けている場合
- そもそもタグの書き込み処理が抜けている
- aclib.dll(http://parafla.coaworks.jp/download.html)
- サーバー再度でのFlash書き換え
- 先頭フレームへの変数の挿入
- 画像の入れ替え
- 先頭にSetVariableをするタグを追加
- 画像の入れ替え
- そもそもPNGを直接埋めれない。
- DefineBitsJPEG3い変換(JPGE+Alpha値のzlib圧縮)
- Javaでswfを生成をやると
- 良い点
- クライントからサーバサイド、画像処理までほとんどの機能が標準で提供されている
- 悪い点
- unsigned型が無いのでバイナリ編集がつらい
- 良い点
Togetter
Togetter - 「ActionScriptを使わないFlash勉強会 #1 まとめ」
http://togetter.com/li/127308
イベント後
イベント後も会場の利用時間が残っていたので「発表したい人は発表を…」という時間が有りました。
そこでyoyaさんが紹介していたSWF構造を解説した分り易いスライド。
こちらのPDFの方がより、新しい物の様です。
Hacking swf
View more presentations from Saurabh Mathur