Enviar búsqueda
Cargar
Swf研究会 アクションスクリプト実行処理系
•
Descargar como KEY, PDF
•
8 recomendaciones
•
3,714 vistas
Kohei Morino
Seguir
Denunciar
Compartir
Denunciar
Compartir
1 de 29
Descargar ahora
Recomendados
05 tm1 batch
05 tm1 batch
Shinsuke Yamamoto
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
sandai
最低限の開発環境を整えるには
最低限の開発環境を整えるには
vi-iv
【学習メモ#6th】12ステップで作る組込みOS自作入門
【学習メモ#6th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#3rd】12ステップで作る組込みOS自作入門
【学習メモ#3rd】12ステップで作る組込みOS自作入門
sandai
【学習メモ#5th】12ステップで作る組込みOS自作入門
【学習メモ#5th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#9th】12ステップで作る組込みOS自作入門
【学習メモ#9th】12ステップで作る組込みOS自作入門
sandai
Recomendados
05 tm1 batch
05 tm1 batch
Shinsuke Yamamoto
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
sandai
最低限の開発環境を整えるには
最低限の開発環境を整えるには
vi-iv
【学習メモ#6th】12ステップで作る組込みOS自作入門
【学習メモ#6th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#7th】12ステップで作る組込みOS自作入門
【学習メモ#7th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#3rd】12ステップで作る組込みOS自作入門
【学習メモ#3rd】12ステップで作る組込みOS自作入門
sandai
【学習メモ#5th】12ステップで作る組込みOS自作入門
【学習メモ#5th】12ステップで作る組込みOS自作入門
sandai
【学習メモ#9th】12ステップで作る組込みOS自作入門
【学習メモ#9th】12ステップで作る組込みOS自作入門
sandai
How to read SWF
How to read SWF
Yo Ya
Flash Playerの作り方
Flash Playerの作り方
Yu Kobayashi
Librarian Design Share
Librarian Design Share
Veronica Douglas
Upcycling Instruction: Developing effective approaches to teaching experience...
Upcycling Instruction: Developing effective approaches to teaching experience...
Veronica Douglas
Good Design Doesn't Happen Alone
Good Design Doesn't Happen Alone
Veronica Douglas
Making It Your Own: Transitioning Into a New Electronic Resources Role
Making It Your Own: Transitioning Into a New Electronic Resources Role
Alana Nuth
ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)
libpanda
[JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手!
[JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手!
Akio Katayama
PHPでのSWF編集とその応用
PHPでのSWF編集とその応用
Yo Ya
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!
yoshikawa_t
とあるFlashの自動生成
とあるFlashの自動生成
Akineko Shimizu
HTML5&API総まくり
HTML5&API総まくり
Shumpei Shiraishi
20120405 setsunaセミナー
20120405 setsunaセミナー
Takahiro Iwase
Chrome DevTools.next
Chrome DevTools.next
yoshikawa_t
スマートフォンブラウザ不具合特集
スマートフォンブラウザ不具合特集
Hiroaki Wakamatsu
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
HTML5最新動向
HTML5最新動向
Shumpei Shiraishi
初めてのCPUを作ってみた
初めてのCPUを作ってみた
Eric Sartre
Android gameprogramming
Android gameprogramming
Masahiro Hidaka
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alpha
Hiroshi Sakate
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
㉑CSSでアニメーション!その2
㉑CSSでアニメーション!その2
Nishida Kansuke
Más contenido relacionado
Destacado
How to read SWF
How to read SWF
Yo Ya
Flash Playerの作り方
Flash Playerの作り方
Yu Kobayashi
Librarian Design Share
Librarian Design Share
Veronica Douglas
Upcycling Instruction: Developing effective approaches to teaching experience...
Upcycling Instruction: Developing effective approaches to teaching experience...
Veronica Douglas
Good Design Doesn't Happen Alone
Good Design Doesn't Happen Alone
Veronica Douglas
Making It Your Own: Transitioning Into a New Electronic Resources Role
Making It Your Own: Transitioning Into a New Electronic Resources Role
Alana Nuth
Destacado
(6)
How to read SWF
How to read SWF
Flash Playerの作り方
Flash Playerの作り方
Librarian Design Share
Librarian Design Share
Upcycling Instruction: Developing effective approaches to teaching experience...
Upcycling Instruction: Developing effective approaches to teaching experience...
Good Design Doesn't Happen Alone
Good Design Doesn't Happen Alone
Making It Your Own: Transitioning Into a New Electronic Resources Role
Making It Your Own: Transitioning Into a New Electronic Resources Role
Similar a Swf研究会 アクションスクリプト実行処理系
ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)
libpanda
[JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手!
[JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手!
Akio Katayama
PHPでのSWF編集とその応用
PHPでのSWF編集とその応用
Yo Ya
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!
yoshikawa_t
とあるFlashの自動生成
とあるFlashの自動生成
Akineko Shimizu
HTML5&API総まくり
HTML5&API総まくり
Shumpei Shiraishi
20120405 setsunaセミナー
20120405 setsunaセミナー
Takahiro Iwase
Chrome DevTools.next
Chrome DevTools.next
yoshikawa_t
スマートフォンブラウザ不具合特集
スマートフォンブラウザ不具合特集
Hiroaki Wakamatsu
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
HTML5最新動向
HTML5最新動向
Shumpei Shiraishi
初めてのCPUを作ってみた
初めてのCPUを作ってみた
Eric Sartre
Android gameprogramming
Android gameprogramming
Masahiro Hidaka
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alpha
Hiroshi Sakate
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
㉑CSSでアニメーション!その2
㉑CSSでアニメーション!その2
Nishida Kansuke
データフロー自動化ツールの考え方
データフロー自動化ツールの考え方
fumoto kazuhiro
cs-11. Python の条件分岐と繰り返し,ステップ実行
cs-11. Python の条件分岐と繰り返し,ステップ実行
kunihikokaneko1
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
信之 岩永
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能について
Fumiya Nozaki
Similar a Swf研究会 アクションスクリプト実行処理系
(20)
ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)
[JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手!
[JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手!
PHPでのSWF編集とその応用
PHPでのSWF編集とその応用
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!
とあるFlashの自動生成
とあるFlashの自動生成
HTML5&API総まくり
HTML5&API総まくり
20120405 setsunaセミナー
20120405 setsunaセミナー
Chrome DevTools.next
Chrome DevTools.next
スマートフォンブラウザ不具合特集
スマートフォンブラウザ不具合特集
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
HTML5最新動向
HTML5最新動向
初めてのCPUを作ってみた
初めてのCPUを作ってみた
Android gameprogramming
Android gameprogramming
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alpha
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
㉑CSSでアニメーション!その2
㉑CSSでアニメーション!その2
データフロー自動化ツールの考え方
データフロー自動化ツールの考え方
cs-11. Python の条件分岐と繰り返し,ステップ実行
cs-11. Python の条件分岐と繰り返し,ステップ実行
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能について
Swf研究会 アクションスクリプト実行処理系
1.
アクションスクリプト 実行処理系
20012/09/25 SWF研究会#2 株式会社サイバーエージェント 森野耕平
2.
自己紹介 • 森野 耕平
• @kohei_april20 • (株)サイバーエージェント • アメーバピグ • Pico World • JSでFlashPlayer開発・メンテナンス
3.
発表内容に関して • SWF4(FlashLite1.1)に関する内容です
4.
agenda • SWFにおけるアクション • アクションのデータ構造 •
アクションモデル • 実装にあたってのハマりどころ
5.
SWFにおける アクション
6.
アニメーション基本要素
Shape、MovieClip、 定義系タグ TextField、Buttonなど timeline 制御系タグ ShowFrame 表示制御 (表示・非表示、位置・変形、色)
7.
パラパラ漫画
+ アクション • プログラムで フレーム移動 式の評価 条件分岐 アニメーション制御 ループ イベント • インタラクティブ etc.
8.
アクション情報はどこ
にあるか? • フレームに記述されたアクション • 該当ShowFrameの前 • ボタンイベントによるアクション • ボタン定義の中
9.
アクションの データ構造
10.
DoAction • フレームに記述されたアクション • ShowFrame時に実行
header action (tag type = 12, length) end flag = 0 actions ※後述のACTIONRECORD型
11.
DefineButton • ボタンの定義タグ • ボタンへのイベントにより実行される
アクションを持つ header action (tag type = 7, length) end flag = 0 ボタンのIDや描画 actions などに関する情報
12.
DefineButton2
• ボタンの定義タグ • DefineButtonの拡張版(状態遷移や キーボードイベント) header ボタンのIDや描画 (tag type = 34, length) などに関する情報 action condition actions end flag = 0
13.
ACTIONRECORD • ActionCodeによる命令とパラメータ • ActionCode毎にpayloadの読み方が決
められている 0x80未満 ActionCode payload 0x80以上 1byte 2bytes 可変長 payload length
14.
詳細は・・ •
SWF File Format Specification • http://www.adobe.com/devnet/swf.html
15.
アクションモデル
16.
SWF3アクション Play
WaitForFrame Stop GetURL NextFrame StopSounds PreviousFrame ToggleQuality GotoFrame SetTarget GotoLabel
17.
SWF4アクションモデル • 機能拡張 •
式の評価 • 変数 • 条件分岐 • ループ • 仮想スタックマシンによって実現 • 計算モデルの一種 • 計算モデル:計算を理論的・抽象的 に考察するための数理モデル
18.
スタックマシン • メモリがスタック(LIFO)形式の計算
モデル push pop 2 1 ※SWFでは文字列が スタックされます
19.
・1をpush
・2をpush 1+2-3 ・加算 ・3をpush ・減算 1 2 1 + 2 = 3 3 3 - 3 = 0 2 3 1 1 3 3
20.
プログラムカウンタ • 次に実行するアクションのアドレスを
保持 PC(Program Counter) action action action action action
21.
フロー制御 • フロー制御系アクションはPCの値を変
更してフローを制御 PC JUMP Action action action action action Jump offset bytes 次のアクション offset値を持つ
22.
SWF4アクション • 四則演算 Add/Divide/Multiply/Subtract • 比較演算 Equals/Less •
論理演算 And/Not/Or など • 文字列操作 StringAdd • スタック操作 Pop/Push • 型変換 ToInteger など • フロー制御 Call/If/Jump • 変数 SetVariable/GetVariable • Movie制御 SetProperty など など • ユーティリティ RandomNumber
23.
のアクション 0x2D • 仕様書に無い・・? •
fscommand2()でした • デバイスの情報取得したりするやつ fscommand2(command:String, parameter1:String,...parameterN:String) : Void 手順 1. 引数の数countをポップ 2. コマンド名をポップ 3. 引数の値をcount個ポップ 4. 取得したコマンドを取得した引数で実行し、結果をプッシュ
24.
実装にあたっての ハマリどころ
25.
ハマりどころ • 実行順序 • 実行タイミング •
プロパティ変更後のレンダリング ↑仕様がよくわからない
26.
仕様がわからない所は 1. 本家の挙動をよく見る •
テストケースSWF作成 • フレームレートを下げてみる 2. 仮説を立てる 3. 実装 4. 検証 5. 繰り返す
27.
(推測される) 1フレーム処理フロー • MCの更新処理(rootから再帰的に) •
ディスプレイリストから削除するオブジェ クトを削除(RemoveObject) • 子供を再帰的に更新(addされた順) • アクションをキューに追加 • ディスプレイリストに追加するオブジェク トを追加し、更新(PlaceObject) • アクションの実行 • レンダリング(深度順)
28.
まとめ • アクションはパラパラ漫画をプログラ
ム制御するもの • データはフレームアクションとボタン アクションを読めばよい • 基本はコードによる命令とスタックマ シン • 仕様書に無いところは実験あるのみ
29.
ご清聴ありがとうございました
森野 耕平(@kohei_april20)
Notas del editor
\n
アメーバピグとかPicoWorldというピグの海外版の立ち上げや運用など\nどちらかというとサーバサイド\n
\n
SWF内でのアクションが他の要素とどう作用しているか\n\nFlashPlayer実装の足がかりに\n\n
\n
基本はパラパラ漫画\n
\n
トリガはこの2種類\n
\n
\n
最近は使われていないかも\n
\n
予め決められた命令コード\n
\n
データを読み取った後にどうするか\nどのようなアクションがあってどう実行するのか\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Descargar ahora