SlideShare a Scribd company logo
1 of 99
♥ SWF LOVE ♥ @ken39arg
自己紹介
荒賀謙作
ガラケーサービスを5年超
現在、鎌倉のPHPer
今年も、古都鎌倉でガラケーサービス
最近の悩み
プログラマ35(30)歳定年説
齢29.5才
定年?
あせってます
プログラマ定年説を目前にして、そのプログラマ人生の9割をガラケーとPHPと共に過ごしてきたと、いうことに危機感
ところで
PHP以外ですきな技術
Flash@ActionScript
Red5@Java
Red5Flash MediaServerのクローン
要するにPHP以外はSWF!
ガラケー+SWF
気がつけば
FlashLite動的生成担当
swfmill↓flasm/ming/swftools↓Binary!!
I Love SWF Binary Format!!
自称鎌倉のNo.1FlashLiteBinarian
FlashLiteバイナリの小ネタ
/:$X3
Do you know “/:$X3”?
_root.AS: if (++i%2==1) {  $X3=“すき”;}else{  $X3=“きらい”;} DefineEditText   @VariableName=“$X3”
これだけなら問題無い「すき」->「きらい」->「すき」->「きらい」->
flower.AS: switch (random(5)) { case 1: gotoAndPlay(‘window’);   break; case 2: gotoAndPlay(‘double’);   break; default:gotoAndPlay(‘nomal’);   break; }
「すき」->「1」->「きらい」->「3」->「すき」->「3」->「きらい」->「0」->
SWF4(FlashLite1.x)では
switchで使われる一時変数名が“/:$X3”になってる確率が高い(というかそれしか見たこと無い)
絶対そんな変数名使わないと思いますが
ちなみに
SWF5以降ActionStoreRegister(0x87)の登場により解決してます
話は戻りますが、、
30歳を目前にガラケーとSWFな俺の将来を考えてみた
ガラケーの将来
想像してごらん
時代はスマホ
スマホ
ガラケー?
「あったねーw」
ガラケー終了のお知らせ
( ̄Д ̄;)
じゃあ
Flashの将来
想像してごらん
時代はスマホ
スマホ
スマートフォン
iPhone
HTML5
。。。
Flash?
「あったっけ?ww」
Flash終了のお知らせ
Orz
ということは?
俺の将来
想像してごらん
時代はスマホ
スマホ
スマートフォン
iPhone
HTML5
鎌倉No.1のFlashLite…?
「興味ない」
…
俺、終了のお知らせ
なんとかしたい
スマホ時代に、Flashの技術やガラケーの知識今まで作ってきたSWF素材等等を活かして、延命したい!
というわけで
SWF延命計画 ここからが本題
全てのモバイル端末で楽にサービスを対応する方法を考えてます
前提条件 mova,FOMA,cdmaOne,win,c型,p型,W型,3gc ガラケー制作で1actionに大量にHTMLを作るなんて普通 クロスプラットフォームにあこがれ1action,1htmlになったよね web屋である ブラウザでよくね?
提案 ,[object Object]
Flashをなんとかする,[object Object]
swfをiPhoneで動かすツール wallaby gordon smokescreen
wallaby Adobe純正のCS5プラグイン SVG,JPEG,PNG,HTML,js,cssのセットを書き出す いろいろと不完全 cssアニメーションを多用しているため、アニメーションが同期していない サイズがでかい CS5 Flashが必要というのが痛い = (動的生成はできない)
gordon jsでswfのバイナリを解析してsvgを作り出す githubで公開 Movieクリップに対応していない 不完全 開発止まってる
smokescreen 基本gordonと同じもうちょっと進んでいる 2010/10にosscomming soon!となってから音沙汰無し 2011/02にひっそりとgithub上に登場したリポジトリは別物(svg -> canvasへ) githubで公開されているものはネストもアニメーションも出来ない
まだ良いのが無いので、 自作することにしましたが、 まだ出来ていません。 とりあえずSVGがイケてる気がしたので SWFをSVGに変換した話をこれからします
SWFとSVGのマッピング
DefineBits* Flashに埋め込まれたラスターデータ JPEGはそのまま PNGとGIFは少し違うフォーマットにロスレス圧縮されている
DefineBits* LosslessはピクセルをPNGに戻す Bits,BitsJPEG*はdataをそのまま取り出す <image xlink:href=“…”> 画像データを保存してURLを”xlink:href”にセットしても良い base64した文字列を”xlink:href”にセットしても良い
DefineShape SWFの持つベクターデータ SWFのデータ種類は非常にシンプル 直線(LineTo) 曲線(CurveTo) 塗り(fill) 線  (stroke) 3次ベジェやらcircleとかrectangleとかない。何でも直線と曲線だけで表す男らしさがウリ
DefineShape 全体を<g>でまとめる ClipedBitmapは<use> Gradientは<linearGradient|radialGradient> style毎に<path d=“…” fill=“…” stroke=“…”>に変換->LineTo|CurveToが最大で fillStyle0,fillStyle1,lineStyleの  3つのpathに作用
DefineShape DeltaX,DeltaY 絶対値に計算し直す LineTo(ShapeRecord@Type=2) L toXtoY CurveTo(ShapeRecord@Type=3) QcontrolXcontrolYtoXtoY toの絶対値は”start+control+to”
DefineShape StyleChange (ShapeRecord@type=1) StateNewStyles pathの書き出し Styleレジストリの更新 StateFillStyle0,StateFillStyle1,StateLineStyle 次にのLineTo | CurveToの対象のスタイルを変更 全てが(>0)なら次のエッジは<path>3ノード分に作用 StateMoveTo moveToは絶対値
DefineShape fillStyle0 lineStyle fillStyle1 moveTo(x, y) lineTo(x, y)
DefineSprite ベクターやラスター等のイメージデータやテキスト、またSpriteなど表示オブジェクトを配置したり、アニメーションさせたりする FlashLiteではタイムラインを持つMovieClipのみ ActionScriptも内包 Stage全体も仲間
DefineSprite PlaceObject毎に,<use>に変換 全体を<g>でグループ化 アニメーションはまずは考えないので、その他のタグは無視します SVGに変えるだけならPlaceObject2,3の情報は要らない
DefineSprite CharacterId xlink:href=“#<ここ>”; Depth 表示順 Matrix transform=“matrix(<ここ>)” ColorTransform opacity=“<ここにAlphaMultTerm>” feColorMatrixフィルタが理想だが実際はブラウザが対応してない
Stage Define定義は<defs>で登録する StageのPlaceObject(<use>)を<g>の中に記述 SWF Formatでは1px=20で表現しているのでroot直下のgにはtransform=“scale(0.05)”
Stage <svg>   <defs>     <image id=“c1” xlink:href=“foo.jpg”            width=“100” height=“10” />     <g id=“c2”>       <path d=“…”>     </g>   </defs>   <g transform=“scale(0.05)”>     <use>     <use>   </g> </svg>
SWFをSVGにすると iPhone/Androidで見るサムネイルはクリア ガラケーのサムネイルもSVG > ImageすればSWF > Imageよりも楽に動的に生成できる(変換用にFlashを起動するサーバーとか要らない) アニメーションさせると嬉しい
ご清聴ありがとうございました

More Related Content

What's hot

難しいよね、コードレビュー
難しいよね、コードレビュー難しいよね、コードレビュー
難しいよね、コードレビューShinichi Takahashi
 
WinFormsからWPFへ
WinFormsからWPFへWinFormsからWPFへ
WinFormsからWPFへYamamoto Reki
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目cct-inc
 
証券取引アプリについて
証券取引アプリについて証券取引アプリについて
証券取引アプリについてMasahiko Miyasaka
 
Rails templateで開発の初速を上げよう
Rails templateで開発の初速を上げようRails templateで開発の初速を上げよう
Rails templateで開発の初速を上げよう豊明 尾古
 
カスタムフィールドの光と闇。 または、愛について。
カスタムフィールドの光と闇。 または、愛について。カスタムフィールドの光と闇。 または、愛について。
カスタムフィールドの光と闇。 または、愛について。Hiroshi Urabe
 
Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目cct-inc
 
WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪
WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪
WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪Chieko Aihara
 
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠WPF開発での陥りやすい罠
WPF開発での陥りやすい罠Sho Okada
 
初めてのプラグイン開発で学んだ教訓
初めてのプラグイン開発で学んだ教訓初めてのプラグイン開発で学んだ教訓
初めてのプラグイン開発で学んだ教訓Yuki Okamoto
 

What's hot (11)

難しいよね、コードレビュー
難しいよね、コードレビュー難しいよね、コードレビュー
難しいよね、コードレビュー
 
WinFormsからWPFへ
WinFormsからWPFへWinFormsからWPFへ
WinFormsからWPFへ
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目
 
証券取引アプリについて
証券取引アプリについて証券取引アプリについて
証券取引アプリについて
 
Rails templateで開発の初速を上げよう
Rails templateで開発の初速を上げようRails templateで開発の初速を上げよう
Rails templateで開発の初速を上げよう
 
♡PHPが恋しい話♡
♡PHPが恋しい話♡♡PHPが恋しい話♡
♡PHPが恋しい話♡
 
カスタムフィールドの光と闇。 または、愛について。
カスタムフィールドの光と闇。 または、愛について。カスタムフィールドの光と闇。 または、愛について。
カスタムフィールドの光と闇。 または、愛について。
 
Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目Msを16倍出し抜くwpf開発1回目
Msを16倍出し抜くwpf開発1回目
 
WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪
WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪
WordPressの多言語プラグイン「qTranslate」で、あなたのサイトも世界にデビュー♪
 
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
 
初めてのプラグイン開発で学んだ教訓
初めてのプラグイン開発で学んだ教訓初めてのプラグイン開発で学んだ教訓
初めてのプラグイン開発で学んだ教訓
 

Similar to SWF LOVE (ASを使わないFlash勉強会)

PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~Yuta Sakurai
 
いまどき(これから)のPHP開発
いまどき(これから)のPHP開発いまどき(これから)のPHP開発
いまどき(これから)のPHP開発Kenjiro Kubota
 
魔法少女 Laravel 2014
魔法少女 Laravel 2014魔法少女 Laravel 2014
魔法少女 Laravel 2014Kenichi Mukai
 
新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたこと新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたことYosuke Kasagawa
 
PHP conference kansai2018_ishihara
PHP conference kansai2018_ishiharaPHP conference kansai2018_ishihara
PHP conference kansai2018_ishiharaishihara_yuki
 
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyKenichi Mukai
 
PHP-MLを使用して気軽に機械学習にトライしてみる
PHP-MLを使用して気軽に機械学習にトライしてみるPHP-MLを使用して気軽に機械学習にトライしてみる
PHP-MLを使用して気軽に機械学習にトライしてみるRyo Shibayama
 
俺 と 今年度 Civic Hack Night 運営
俺 と 今年度 Civic Hack Night 運営俺 と 今年度 Civic Hack Night 運営
俺 と 今年度 Civic Hack Night 運営Masayuki KaToH
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由Kenichi Mukai
 
Ha4goもくもく報告2016年11月分
Ha4goもくもく報告2016年11月分Ha4goもくもく報告2016年11月分
Ha4goもくもく報告2016年11月分Masayuki KaToH
 
a-blog cms 2.0 を活用した新しいWeb制作のワークフロー 札幌
a-blog cms 2.0 を活用した新しいWeb制作のワークフロー 札幌a-blog cms 2.0 を活用した新しいWeb制作のワークフロー 札幌
a-blog cms 2.0 を活用した新しいWeb制作のワークフロー 札幌Kazumich YAMAMOTO
 

Similar to SWF LOVE (ASを使わないFlash勉強会) (12)

PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
 
いまどき(これから)のPHP開発
いまどき(これから)のPHP開発いまどき(これから)のPHP開発
いまどき(これから)のPHP開発
 
魔法少女 Laravel 2014
魔法少女 Laravel 2014魔法少女 Laravel 2014
魔法少女 Laravel 2014
 
新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたこと新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたこと
 
PHP conference kansai2018_ishihara
PHP conference kansai2018_ishiharaPHP conference kansai2018_ishihara
PHP conference kansai2018_ishihara
 
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
 
PHP-MLを使用して気軽に機械学習にトライしてみる
PHP-MLを使用して気軽に機械学習にトライしてみるPHP-MLを使用して気軽に機械学習にトライしてみる
PHP-MLを使用して気軽に機械学習にトライしてみる
 
俺 と 今年度 Civic Hack Night 運営
俺 と 今年度 Civic Hack Night 運営俺 と 今年度 Civic Hack Night 運営
俺 と 今年度 Civic Hack Night 運営
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
 
Ha4goもくもく報告2016年11月分
Ha4goもくもく報告2016年11月分Ha4goもくもく報告2016年11月分
Ha4goもくもく報告2016年11月分
 
a-blog cms 2.0 を活用した新しいWeb制作のワークフロー 札幌
a-blog cms 2.0 を活用した新しいWeb制作のワークフロー 札幌a-blog cms 2.0 を活用した新しいWeb制作のワークフロー 札幌
a-blog cms 2.0 を活用した新しいWeb制作のワークフロー 札幌
 
第55回PHP勉強会
第55回PHP勉強会第55回PHP勉強会
第55回PHP勉強会
 

Recently uploaded

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Recently uploaded (9)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

SWF LOVE (ASを使わないFlash勉強会)