Suche senden
Hochladen
Shibuya.abc - Gnashで遊ぼう
•
0 gefällt mir
•
1,031 views
gyuque
Folgen
Introducing Gnash, Flash Player implementation from FSF and reading its code.
Weniger lesen
Mehr lesen
Business
Melden
Teilen
Melden
Teilen
1 von 47
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
オブジェクト指向スクリプト言語 Ruby
オブジェクト指向スクリプト言語 Ruby
Kitajiro Kitayama
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能
devsumi2009
Windows 7兼容性系列课程(3):有针对的兼容性开发(上)
Windows 7兼容性系列课程(3):有针对的兼容性开发(上)
Chui-Wen Chiu
Linux Commands
Linux Commands
iwata
Mgd08 lab01
Mgd08 lab01
Hock Leng PUAH
20090418 イケテルRails勉強会 第2部Air編 解説
20090418 イケテルRails勉強会 第2部Air編 解説
mochiko AsTech
樽家昌也 (日本Rubyの会)
樽家昌也 (日本Rubyの会)
toRuby
Reloaded
Reloaded
Shunsaku Kudo
Empfohlen
オブジェクト指向スクリプト言語 Ruby
オブジェクト指向スクリプト言語 Ruby
Kitajiro Kitayama
【12-B-4】 並列処理開発を支援するコンパイラの機能
【12-B-4】 並列処理開発を支援するコンパイラの機能
devsumi2009
Windows 7兼容性系列课程(3):有针对的兼容性开发(上)
Windows 7兼容性系列课程(3):有针对的兼容性开发(上)
Chui-Wen Chiu
Linux Commands
Linux Commands
iwata
Mgd08 lab01
Mgd08 lab01
Hock Leng PUAH
20090418 イケテルRails勉強会 第2部Air編 解説
20090418 イケテルRails勉強会 第2部Air編 解説
mochiko AsTech
樽家昌也 (日本Rubyの会)
樽家昌也 (日本Rubyの会)
toRuby
Reloaded
Reloaded
Shunsaku Kudo
Ohp Seijoen H20 06 Mojiretsu
Ohp Seijoen H20 06 Mojiretsu
sesejun
090608-TogoWS REST
090608-TogoWS REST
ocha_kaneko
Tong Hop Bai Tap C
Tong Hop Bai Tap C
SamQuiDaiBo
20090418 イケテルRails勉強会 第2部Air編
20090418 イケテルRails勉強会 第2部Air編
mochiko AsTech
Hackday Ml
Hackday Ml
NLPseminar
Revisited
Revisited
Shunsaku Kudo
IE-008 Ie的機會與挑戰 以Ic晶圓製造業為例
IE-008 Ie的機會與挑戰 以Ic晶圓製造業為例
handbook
優雅與摩登的使用docker container和資料庫建立部落格.
優雅與摩登的使用docker container和資料庫建立部落格.
ChihChiaWang
S30
S30
TH Schee
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Yusuke Kawasaki
2007 0822 Antelope Php
2007 0822 Antelope Php
gmaxsonic
Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門
shigeya
আদর্শ রমণী – আব্দুল হামীদ ফাইযী
আদর্শ রমণী – আব্দুল হামীদ ফাইযী
rasikulindia
greek doc 1
greek doc 1
guest6ee4d
Zurich2007 MySQL Query Optimization
Zurich2007 MySQL Query Optimization
Hiệp Lê Tuấn
【12-C-5】 自律型移動ロボットのソフトウェア技術
【12-C-5】 自律型移動ロボットのソフトウェア技術
devsumi2009
Introduction to Perl MAGIC
Introduction to Perl MAGIC
guest6b8f09
Windows 7兼容性系列课程(1):Windows 7兼容性概述
Windows 7兼容性系列课程(1):Windows 7兼容性概述
Chui-Wen Chiu
What Can Compilers Do for Us?
What Can Compilers Do for Us?
National Cheng Kung University
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
gyuque
Grails紹介
Grails紹介
Uehara Junji
Iir 08 ver.1.0
Iir 08 ver.1.0
takashi shiraki
Weitere ähnliche Inhalte
Was ist angesagt?
Ohp Seijoen H20 06 Mojiretsu
Ohp Seijoen H20 06 Mojiretsu
sesejun
090608-TogoWS REST
090608-TogoWS REST
ocha_kaneko
Tong Hop Bai Tap C
Tong Hop Bai Tap C
SamQuiDaiBo
20090418 イケテルRails勉強会 第2部Air編
20090418 イケテルRails勉強会 第2部Air編
mochiko AsTech
Hackday Ml
Hackday Ml
NLPseminar
Revisited
Revisited
Shunsaku Kudo
IE-008 Ie的機會與挑戰 以Ic晶圓製造業為例
IE-008 Ie的機會與挑戰 以Ic晶圓製造業為例
handbook
優雅與摩登的使用docker container和資料庫建立部落格.
優雅與摩登的使用docker container和資料庫建立部落格.
ChihChiaWang
S30
S30
TH Schee
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Yusuke Kawasaki
2007 0822 Antelope Php
2007 0822 Antelope Php
gmaxsonic
Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門
shigeya
আদর্শ রমণী – আব্দুল হামীদ ফাইযী
আদর্শ রমণী – আব্দুল হামীদ ফাইযী
rasikulindia
greek doc 1
greek doc 1
guest6ee4d
Zurich2007 MySQL Query Optimization
Zurich2007 MySQL Query Optimization
Hiệp Lê Tuấn
【12-C-5】 自律型移動ロボットのソフトウェア技術
【12-C-5】 自律型移動ロボットのソフトウェア技術
devsumi2009
Introduction to Perl MAGIC
Introduction to Perl MAGIC
guest6b8f09
Windows 7兼容性系列课程(1):Windows 7兼容性概述
Windows 7兼容性系列课程(1):Windows 7兼容性概述
Chui-Wen Chiu
Was ist angesagt?
(18)
Ohp Seijoen H20 06 Mojiretsu
Ohp Seijoen H20 06 Mojiretsu
090608-TogoWS REST
090608-TogoWS REST
Tong Hop Bai Tap C
Tong Hop Bai Tap C
20090418 イケテルRails勉強会 第2部Air編
20090418 イケテルRails勉強会 第2部Air編
Hackday Ml
Hackday Ml
Revisited
Revisited
IE-008 Ie的機會與挑戰 以Ic晶圓製造業為例
IE-008 Ie的機會與挑戰 以Ic晶圓製造業為例
優雅與摩登的使用docker container和資料庫建立部落格.
優雅與摩登的使用docker container和資料庫建立部落格.
S30
S30
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
2007 0822 Antelope Php
2007 0822 Antelope Php
Linuxユーザーのための Windows 管理入門
Linuxユーザーのための Windows 管理入門
আদর্শ রমণী – আব্দুল হামীদ ফাইযী
আদর্শ রমণী – আব্দুল হামীদ ফাইযী
greek doc 1
greek doc 1
Zurich2007 MySQL Query Optimization
Zurich2007 MySQL Query Optimization
【12-C-5】 自律型移動ロボットのソフトウェア技術
【12-C-5】 自律型移動ロボットのソフトウェア技術
Introduction to Perl MAGIC
Introduction to Perl MAGIC
Windows 7兼容性系列课程(1):Windows 7兼容性概述
Windows 7兼容性系列课程(1):Windows 7兼容性概述
Ähnlich wie Shibuya.abc - Gnashで遊ぼう
What Can Compilers Do for Us?
What Can Compilers Do for Us?
National Cheng Kung University
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
gyuque
Grails紹介
Grails紹介
Uehara Junji
Iir 08 ver.1.0
Iir 08 ver.1.0
takashi shiraki
技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac
terada
20090313 Cakephpstudy
20090313 Cakephpstudy
Yusuke Ando
ブラウザでMap Reduce風味の並列分散処理
ブラウザでMap Reduce風味の並列分散処理
Shinya Miyazaki
とちぎRuby会議01(原)
とちぎRuby会議01(原)
Shin-ichiro HARA
20090410 Gree Opentech Main
20090410 Gree Opentech Main
Hideki Yamane
dRuby
dRuby
toyoshi
20090418 イケテルRails勉強会 第1部Rails編
20090418 イケテルRails勉強会 第1部Rails編
mochiko AsTech
XS Japan 2008 Xen Mgmt Japanese
XS Japan 2008 Xen Mgmt Japanese
The Linux Foundation
Fy09 Q3行動咖啡館 微軟虛擬化解決方案
Fy09 Q3行動咖啡館 微軟虛擬化解決方案
Ada Lin
4200 Kte7.0 Training V1.0
4200 Kte7.0 Training V1.0
wayneliao
Ruby on Rails 2.1 What's New Chinese Version
Ruby on Rails 2.1 What's New Chinese Version
Libin Pan
T1
T1
TH Schee
object-shapes
object-shapes
Hajime Morrita
Chinaonrails Rubyonrails21 Zh
Chinaonrails Rubyonrails21 Zh
Jesse Cai
095722121-期中報告-UGC
095722121-期中報告-UGC
cherish0906
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
devsumi2009
Ähnlich wie Shibuya.abc - Gnashで遊ぼう
(20)
What Can Compilers Do for Us?
What Can Compilers Do for Us?
JSplash - Adobe MAX 2009
JSplash - Adobe MAX 2009
Grails紹介
Grails紹介
Iir 08 ver.1.0
Iir 08 ver.1.0
技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac
20090313 Cakephpstudy
20090313 Cakephpstudy
ブラウザでMap Reduce風味の並列分散処理
ブラウザでMap Reduce風味の並列分散処理
とちぎRuby会議01(原)
とちぎRuby会議01(原)
20090410 Gree Opentech Main
20090410 Gree Opentech Main
dRuby
dRuby
20090418 イケテルRails勉強会 第1部Rails編
20090418 イケテルRails勉強会 第1部Rails編
XS Japan 2008 Xen Mgmt Japanese
XS Japan 2008 Xen Mgmt Japanese
Fy09 Q3行動咖啡館 微軟虛擬化解決方案
Fy09 Q3行動咖啡館 微軟虛擬化解決方案
4200 Kte7.0 Training V1.0
4200 Kte7.0 Training V1.0
Ruby on Rails 2.1 What's New Chinese Version
Ruby on Rails 2.1 What's New Chinese Version
T1
T1
object-shapes
object-shapes
Chinaonrails Rubyonrails21 Zh
Chinaonrails Rubyonrails21 Zh
095722121-期中報告-UGC
095722121-期中報告-UGC
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
Mehr von gyuque
第11回 HTML5とか勉強会 gyuque
第11回 HTML5とか勉強会 gyuque
gyuque
LL Tiger 2010 (LTの虎 1)
LL Tiger 2010 (LTの虎 1)
gyuque
JUI 2009 O3D Programming
JUI 2009 O3D Programming
gyuque
Mozilla Party 2009 Canvas Programming
Mozilla Party 2009 Canvas Programming
gyuque
FOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript Programming
gyuque
JSplash swf to javascript converter(2008/9/30)
JSplash swf to javascript converter(2008/9/30)
gyuque
ASCSS Nite
ASCSS Nite
gyuque
Mehr von gyuque
(7)
第11回 HTML5とか勉強会 gyuque
第11回 HTML5とか勉強会 gyuque
LL Tiger 2010 (LTの虎 1)
LL Tiger 2010 (LTの虎 1)
JUI 2009 O3D Programming
JUI 2009 O3D Programming
Mozilla Party 2009 Canvas Programming
Mozilla Party 2009 Canvas Programming
FOSS4G LT - Invitation to ActionScript Programming
FOSS4G LT - Invitation to ActionScript Programming
JSplash swf to javascript converter(2008/9/30)
JSplash swf to javascript converter(2008/9/30)
ASCSS Nite
ASCSS Nite
Kürzlich hochgeladen
Mifty kit IN Salmiya (+918133066128) Abortion pills IN Salmiyah Cytotec pills
Mifty kit IN Salmiya (+918133066128) Abortion pills IN Salmiyah Cytotec pills
Abortion pills in Kuwait Cytotec pills in Kuwait
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Dave Litwiller
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors Data
Exhibitors Data
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
NZSG
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
lizamodels9
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Century
rwgiffor
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
Seo
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
Roland Driesen
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
Andy Lambert
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
anilsa9823
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
Any kyc Account
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
amitlee9823
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear Regression
Ravindra Nath Shukla
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
Aggregage
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communications
karancommunications
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
Paul Menig
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSM
Ravindra Nath Shukla
Forklift Operations: Safety through Cartoons
Forklift Operations: Safety through Cartoons
Forklift Trucks in Minnesota
John Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdf
AmzadHosen3
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
rajveerescorts2022
Kürzlich hochgeladen
(20)
Mifty kit IN Salmiya (+918133066128) Abortion pills IN Salmiyah Cytotec pills
Mifty kit IN Salmiya (+918133066128) Abortion pills IN Salmiyah Cytotec pills
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
RSA Conference Exhibitor List 2024 - Exhibitors Data
RSA Conference Exhibitor List 2024 - Exhibitors Data
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Century
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear Regression
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
The Path to Product Excellence: Avoiding Common Pitfalls and Enhancing Commun...
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communications
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSM
Forklift Operations: Safety through Cartoons
Forklift Operations: Safety through Cartoons
John Halpern sued for sexual assault.pdf
John Halpern sued for sexual assault.pdf
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
Shibuya.abc - Gnashで遊ぼう
1.
「Gnashであそぼう」
by gyuque Shibuya.abc
2.
自己紹介
検索
3.
Gnashの紹介 Flash
Playerの free な実装 GNUの“High Priority”プロジェクト(らしい) “supports many SWF v7 features” (自称)
4.
御託はいいから、使ってみる
5.
実験環境
Ubuntu Linux 7.10 Gutsy Gibbon 理由: 普段はドザーだけど… Windowsはなんかいろいろ面倒なことが起きそうだ!
6.
インストール 一番楽な方法:
パッケージで入れる
7.
インストール 一番楽しい方法:
手元でビルドする
8.
ビルド
まず、g++ を入れておく configure configureに要求されたパッケージを入れる configure make 簡単でしょう? ※ gtkの開発キットが入ってないと、Mozillaプラグインのビルドが無視されるので注意
9.
さらに必要なもの gstreamer ffmpegプラグイン
flvの再生に必要 gstreamer fluendo mp3プラグイン 音声の再生に必要
10.
準備完了
11.
実験台 1
12.
「2ちゃんねる大王」 2003年 SWFバージョン: 6
* http://512kb.net/
13.
再生結果
アニメーションは完璧 ボタンのアクションも正常 [ 問題点 ] BGMの速度がおかしい 50点ぐらい
14.
実験台 2
15.
「NANACA†CRASH!!」 2005年
SWFバージョン: 7 * http://www.geocities.jp/lledoece/nanaca-crash.html
16.
とりあえず起動
タイトル画面までは到達。 しかし・・・
17.
とりあえず起動
ボタンが押せない (´・ω・)
18.
応急処置 仕方ねえな、patchるか。(´・ω ・)y━~~
// push 'wait' // getVariable // push 1, 'this' // getVariable // push 'gotoAndStop' // callMethod // pop push 'game', 1, 'this' getVariable flasmで書き換える。 push 'gotoAndPlay' 強制的にゲーム開始 callMethod pop end // of frame 6
19.
(無理矢理)ゲームスタート
画面がグチャグチャに
20.
(無理矢理)ゲームスタート
「NANACA†CRASH!!」 10点ぐらい
21.
実験台 3
22.
YouTube
23.
YouTube Gnash Projectは明らかにYouTubeを意識している
Flash8以降の機能を先行実装(YouTubeのため) ソース中のコメントにもYouTubeがどうこうとか書いてある YouTube Gnash Mozilla GNU/Linux Gnashが完成すると、Free SoftwareのスタックだけでYouTubeが見られる
24.
再生は問題なし 4 音もちゃんと同期する
25.
再生は問題なし
4 音もちゃんと同期する [ 問題点 ] シークできない!(かなり不便) バッファリングがちょっと変 50点ぐらい
26.
まとめ
ゆ Gnashの往く道は険しい。
27.
コードを覗いてみよう Inside Gnash
28.
Gnashのソースツリー gnash-0.8.2
server vm Player本体 VM実装 swf parser libbase ・ ・ GC実装 ・ libgeometory gui ・ ・ ・
29.
Gnashのソースツリー < 見どころ > libbase/GC.h
Mark&Sweep GC server/swf.h ニーモニック表 server/vm/ActionExec.cpp 実行制御 server/vm/ASHandlers.cpp 各アクションの実装
30.
GC.h server/libbase/GC.h
Mark & Sweep GC GCResource virtual void markReachableResources() prop extends has as_object prop virtual void markReachableResources() prop
31.
swf.h server/swf.h
タグ番号 (avm1) アクションID (avm2) オペコード typedef enum { ACTION_END = 0x00, ACTION_NEXTFRAME = 0x04, ACTION_PREVFRAME = 0x05, ACTION_PLAY = 0x06, ACTION_STOP = 0x07, ACTION_TOGGLEQUALITY = 0x08, ・ ・
32.
ActionExec.cpp server/vm/ActionExec.cpp
プログラムカウンタ(PC)の管理 各アクションの呼び出しの起点 void ActionExec::operator() () while (1) { ・ ・ boost::uint8_t action_id = code[pc]; ・ ・ ash.execute((action_type)action_id, *this); ・ ・ pc = next_pc; ・ ・ }
33.
ASHandlers.cpp server/vm/ASHandlers.cpp
SWFHandlers::ActionXXX メソッドに XXX アクションの実装 (良くも悪くも)“ひねりのない”実装、「動く仕様書」
34.
ASHandlers.cpp void
SWFHandlers::ActionLessThan(ActionExec& thread) { as_environment& env = thread.env; thread.ensureStack(2); env.top(1).set_bool(env.top(1).to_number() < env.top(0).to_number()); if ( env.get_version() < 5 ) env.top(1).convert_to_number(); env.drop(1); } 0 A A 1 B B<A? B<A?
35.
呼び出しフロー
ActionExec::operator() SWFHandlers::execute() ActionHandler::execute() ActionHandler::execute() SWFHandlers::ActionLessThan SWFHandlers::ActionLogicalAnd
36.
Gnashを真似てみる
37.
tinyaction AS3で実装したgnash-vmもどき(=avm1もどき) 命令の解釈・実行
実装 スコープ管理 メモリ管理 本物のVMに丸投げ 型の管理 例外処理 メンドクセ Available on CodeRepos.org http://coderepos.org/share/browser/lang/actionscript/tinyaction
38.
デモ フィボナッチ数列生成 再帰で記述
コール/リターン がちゃんとできてるかどうか f(3) 0 1 1 2 f(2) 0 1 1 f(1) 0 1 f(0) 0
39.
フィボナッチ数列生成(再帰) class FiboTestScript
{ static function fibo_r(n, arr) { if (n == 0) { // stop arr = [0] arr.push(0); } else if (n == 1) { fibo_r(0, arr); arr = [0, 1] arr.push(1); } else { fibo_r(n - 1, arr); arr = [0, 1, 1] arr = [0, 1, 1, 2] var len = arr.length; arr.push(arr[len - 1] + arr[len - 2]); arr = [0, 1, 1, 2, 3] } ・ } } ・
40.
前のスライドのスクリプトをバイトコードに変換
mtascでコンパイル swfファイルからバイト コードだけを抜き出し ファイルに書き出し FiboTestScript FiboTestScript _global prototype fibo_r push length ASSetPropFlags fibo_r 2 params 2n 3 arr 5 regs 0x0029 lgcABAIHAAAAAEkSnQIAGACWDgAHAAAAAAcBAAAABAMIBFIXmQIAmQCWBwAEAgcBAA AASRKdAgAxAJYOAAQDBwAAAAAHAgAAAAgAHJYCAAgDUheWDgAHAQAAAAcBAAAABA MIBFIXmQIAVwCWCQAEAwQCBwEAAAALlgcABwIAAAAIAByWAgAIA1IXlgQABAMIBU6HAQ これを読み込んで、 AEF5YJAAQDBAQHAQAAAAtOlgkABAMEBAcCAAAAC05HlgkABwEAAAAEAwgEUhc= tinyactionで走らせ ます
41.
実行結果
引数として渡したArrayがレジスタ に格納されている
42.
デモ しあわせ 幸福を呼ぶ白いオタマジャクシのデモ
ゲームのキャラクター操作 フレームごとの動作を記述 t=0 現在のフレーム t=1 次のフレーム v = (x , y) v’ = (x’ , y’) bytecode tinyaction VM
43.
キャラクタ操作スクリプト (例) class
CharCtrl { static function initChar(data) { data.vx = -1; data.vy = 1; 初期化 data.count = 0; data.bounded = false; } static function tickChar(data) { 下方向に加速 → data.vy += 0.1; data.x += data.vx; data.y += data.vy; 各フレームの動作 一定の速さに if (int(data.vy) == 7) なったら減速 → data.vy = 2; return (data.y <= 680) && (data.x >= -80) && (data.x < 880); } ↑ 画面外に出ていたらfalseを返す(falseを返すと } キャラクターが消える)
44.
ボタンを押すとバイトコードを
ロードして実行 http://svn.coderepos.org/share/lang/actionscript/tinyaction/ctest.html
45.
白いオタマジャクシ (日経エコロミー より)
46.
まとめ Gnashはまだまだ発展途上 開発は活発
VMの教科書としても良質 オリジナルの機能(デバッガとか?)に期待
47.
Thanks!
Jetzt herunterladen