Submit Search
Upload
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
•
4 likes
•
3,799 views
Kazuhiro Kosaka
Follow
株式会社サイバーエージェント アメーバ事業本部 ソーシャルゲームDiv エンジニアG 小坂 和弘
Read less
Read more
Report
Share
Report
Share
1 of 25
Recommended
iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料
Kohei Morino
軽量ASP.NETフレームワークNancy
軽量ASP.NETフレームワークNancy
Narami Kiyokura
Concurrent Programming in JavaScript
Concurrent Programming in JavaScript
yjono Seino
Concurrent Programm in JavaScript
Concurrent Programm in JavaScript
yjono Seino
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
Noriaki Kadota
Angular1&2
Angular1&2
Kenichi Kanai
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
Recommended
iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料
Kohei Morino
軽量ASP.NETフレームワークNancy
軽量ASP.NETフレームワークNancy
Narami Kiyokura
Concurrent Programming in JavaScript
Concurrent Programming in JavaScript
yjono Seino
Concurrent Programm in JavaScript
Concurrent Programm in JavaScript
yjono Seino
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
Noriaki Kadota
Angular1&2
Angular1&2
Kenichi Kanai
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
masayoshi takahashi
LT#8 乗るしかないこのECMA Script 2015に
LT#8 乗るしかないこのECMA Script 2015に
do7be
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Study Group by SciencePark Corp.
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
Hiroshi Toda
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
一希 大田
Chrome 拡張のご紹介
Chrome 拡張のご紹介
Tetsunosuke Saito
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
AngularJS 概説
AngularJS 概説
Kenichi Kanai
angular1脳で見るangular2
angular1脳で見るangular2
Moriyuki Arakawa
AngularJSからReactに移ったケースの話
AngularJSからReactに移ったケースの話
kumatch kumatch
Visual studio 2013 Overview
Visual studio 2013 Overview
一希 大田
最近誰かに「やったほうがいいよ」と伝えた7のこと
最近誰かに「やったほうがいいよ」と伝えた7のこと
Noriaki Kadota
TypeScript補完計画 for Sublime Text 2
TypeScript補完計画 for Sublime Text 2
kamukiriri
Team Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみる
You&I
究極にして至高のWAF
究極にして至高のWAF
Yuki Ishikawa
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
Hiroshi Toda
Angular#Kanazawa
Angular#Kanazawa
Kenichi Kanai
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
takehiko yoshida
SWFバージョン4においてのテキスト形式によるコンパイル結果の違い及びJavaScriptでのその描画方法に関する考察
SWFバージョン4においてのテキスト形式によるコンパイル結果の違い及びJavaScriptでのその描画方法に関する考察
Kazuhiro Kosaka
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
Yasunobu Ikeda
More Related Content
What's hot
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
masayoshi takahashi
LT#8 乗るしかないこのECMA Script 2015に
LT#8 乗るしかないこのECMA Script 2015に
do7be
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Study Group by SciencePark Corp.
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
Hiroshi Toda
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
一希 大田
Chrome 拡張のご紹介
Chrome 拡張のご紹介
Tetsunosuke Saito
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
AngularJS 概説
AngularJS 概説
Kenichi Kanai
angular1脳で見るangular2
angular1脳で見るangular2
Moriyuki Arakawa
AngularJSからReactに移ったケースの話
AngularJSからReactに移ったケースの話
kumatch kumatch
Visual studio 2013 Overview
Visual studio 2013 Overview
一希 大田
最近誰かに「やったほうがいいよ」と伝えた7のこと
最近誰かに「やったほうがいいよ」と伝えた7のこと
Noriaki Kadota
TypeScript補完計画 for Sublime Text 2
TypeScript補完計画 for Sublime Text 2
kamukiriri
Team Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみる
You&I
究極にして至高のWAF
究極にして至高のWAF
Yuki Ishikawa
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
Hiroshi Toda
Angular#Kanazawa
Angular#Kanazawa
Kenichi Kanai
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
takehiko yoshida
What's hot
(20)
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
LT#8 乗るしかないこのECMA Script 2015に
LT#8 乗るしかないこのECMA Script 2015に
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
がんばらない多言語化 @ FuelPHP&CodeIgniter ユーザの集い #7
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
Chrome 拡張のご紹介
Chrome 拡張のご紹介
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
AngularJS 概説
AngularJS 概説
angular1脳で見るangular2
angular1脳で見るangular2
AngularJSからReactに移ったケースの話
AngularJSからReactに移ったケースの話
Visual studio 2013 Overview
Visual studio 2013 Overview
最近誰かに「やったほうがいいよ」と伝えた7のこと
最近誰かに「やったほうがいいよ」と伝えた7のこと
TypeScript補完計画 for Sublime Text 2
TypeScript補完計画 for Sublime Text 2
Team Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみる
究極にして至高のWAF
究極にして至高のWAF
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
Angular#Kanazawa
Angular#Kanazawa
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
10年以上Java屋してたおっさんが 今年からフロントエンジニアやっている話
Similar to SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
SWFバージョン4においてのテキスト形式によるコンパイル結果の違い及びJavaScriptでのその描画方法に関する考察
SWFバージョン4においてのテキスト形式によるコンパイル結果の違い及びJavaScriptでのその描画方法に関する考察
Kazuhiro Kosaka
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
Yasunobu Ikeda
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
Kondo Hitoshi
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
Yasunobu Ikeda
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
Yu Tanaka
【論文読み会】Signing at Scale: Learning to Co-Articulate Signs for Large-Scale Pho...
【論文読み会】Signing at Scale: Learning to Co-Articulate Signs for Large-Scale Pho...
ARISE analytics
CEDEC 2013 - FlashによるアセットワークフローのHTML5やネイティブアプリへのうまい持ち込み方
CEDEC 2013 - FlashによるアセットワークフローのHTML5やネイティブアプリへのうまい持ち込み方
Andy Hall
TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」
Kosuke Yamada
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
Takashi Endo
Node canvas
Node canvas
KinkumaDesign
HTML5でできるカメラアプリを実際に体験しよう
HTML5でできるカメラアプリを実際に体験しよう
Hideki Akiba
Mochrom - スマートフォンビジネスサミット
Mochrom - スマートフォンビジネスサミット
Katsuaki Sato
JavaScript使いならきっととっつきやすいNode-REDについて
JavaScript使いならきっととっつきやすいNode-REDについて
Seigo Tanaka
まめフラスコで遊ぼう
まめフラスコで遊ぼう
libpanda
Spring.project
Spring.project
広平 田村
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
AdvancedTechNight
Heroku meetup#11(lt)
Heroku meetup#11(lt)
Hideki Ohkubo
LT駆動開発04 5分では分からないTypeScriptのなんとか
LT駆動開発04 5分では分からないTypeScriptのなんとか
Kazuya Matsubara
Js frameworkの紹介
Js frameworkの紹介
Ryo Shimada
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
Kohei Kadowaki
Similar to SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
(20)
SWFバージョン4においてのテキスト形式によるコンパイル結果の違い及びJavaScriptでのその描画方法に関する考察
SWFバージョン4においてのテキスト形式によるコンパイル結果の違い及びJavaScriptでのその描画方法に関する考察
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
新ジャンルのJavaScript圧縮難読化に挑戦 ~jojofy-js
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
【論文読み会】Signing at Scale: Learning to Co-Articulate Signs for Large-Scale Pho...
【論文読み会】Signing at Scale: Learning to Co-Articulate Signs for Large-Scale Pho...
CEDEC 2013 - FlashによるアセットワークフローのHTML5やネイティブアプリへのうまい持ち込み方
CEDEC 2013 - FlashによるアセットワークフローのHTML5やネイティブアプリへのうまい持ち込み方
TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
2014年メディア工房勉強会 第1章「Webの仕組みとHTML5」
Node canvas
Node canvas
HTML5でできるカメラアプリを実際に体験しよう
HTML5でできるカメラアプリを実際に体験しよう
Mochrom - スマートフォンビジネスサミット
Mochrom - スマートフォンビジネスサミット
JavaScript使いならきっととっつきやすいNode-REDについて
JavaScript使いならきっととっつきやすいNode-REDについて
まめフラスコで遊ぼう
まめフラスコで遊ぼう
Spring.project
Spring.project
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
Heroku meetup#11(lt)
Heroku meetup#11(lt)
LT駆動開発04 5分では分からないTypeScriptのなんとか
LT駆動開発04 5分では分からないTypeScriptのなんとか
Js frameworkの紹介
Js frameworkの紹介
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
1.
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察 株式会社サイバーエージェント アメーバ事業本部 ソーシャルゲームDiv エンジニアG 小坂 和弘
@hyperdash
2.
Summary. ・Swineにおけるテキスト描画方法の考察 ・Flash Professionalで配置したテキストの 設定によるコンパイル結果のパターン ・パターン別描画戦略 ・実際に実装した方法 (SVG
Font) ・JSLint
3.
じゃ、いきます。
が、 レポート見てください。 詳細は
4.
Swine? ・内製SWF to HTML5変換エンジン ・iOS
(iPhone) がメインターゲット ・サーバサイド (Java) でSWFをJSON中間コードに変換 ・JavaScript, HTML5 (Canvas) + CSS3で再生 ・ActionScript 1.0 (Flash Lite 1.1) = SWFバージョン4 対応 ・ブーシュカ (iPhone版) で導入済み
5.
Milestones. ・DOM操作の削減 ・描画の完全Canvas化 (高速化) ・Android対応 (?)
6.
SWF Text. ・2パターンのコンパイル結果 ・DefineText (+
DefineText2) タグ ・テキスト形式が静的テキスト ・フォントが埋め込みフォント ・アンチエイリアス設定が 『デバイスフォントを使用』以外 ・選択可能設定がオフ ・DefineEditText タグ ・さらに3パターンに分類する ・テキスト形式 ・埋め込みフォント/デバイスフォント ・アンチエイリアス設定
7.
パターン、いきます。
8.
A ・デバイスフォント (端末にインストールされているフォントを使用) ・HTMLのテキストとしてレンダリングする ・CSSに反映
9.
B ・埋め込みフォント (端末にインストールされていない・各Glyphのパス情報) ・CanvasでGlyphを描画 ・レイアウト情報に従ってGlyphを配置
10.
C ・パスワード入力 ・アスタリスク以外のGlyphが不要 ・埋め込みフォントもデバイスフォントで代替
11.
D ・デバイスフォントと埋込みフォントが混在可能 ・パターンAとパターンBを組み合わせる ・divでさらに1階層wrap
12.
ここまでがレポートの内
容でした。 その後、 実装してみた。
13.
Implementations in Action. ・デバイスフォントの場合は問題なし ・埋め込みフォントの場合
(Canvas) ・全Glyphのパス描画が必要 ・ColorTransform時にパスの再描画が必要 ・レイアウトがムズい
14.
そこで、SVGフォントですよ。
15.
SVG Font? ・Webフォントが対応するフォーマットの一種 ・SVGフォーマットでフォントを定義 ・Androidのブラウザでも利用可能 ・ブラウザによって実装にバグが… (missing-glyphの扱い etc) ・W3Cの仕様にブラウザが追いついていない (pathエレメントでGlyphパス定義ができない
etc)
16.
SVG Font. ・SWFに埋め込まれたフォントのパス情報を SVGフォントに変換 ・BASE64エンコードして中間JSONに格納 ・@font-faceのsrcにData URI
Schemeで指定 (StyleSheetにinsertRuleする) ・あとは通常のテキストとして描画 ・著作権に留意が必要
17.
じゃ、結果、いきます。
18.
1
Original SWF Swine
19.
2
Original SWF Swine
20.
3
Original SWF Swine
21.
うふふ、オッケー☆
22.
ところで、 JSコーディングルールって
どうしてますか?
23.
JSLint? ・JSコーディングルールチェッカー ・by Douglas Crockford ・JSの書き方は人によって結構違う ・Swineチームで試験的に導入 ・とはいえパフォーマンス優先 ・いくつかルールから除外 ・他にGoogle
JS Style Guideも参考
24.
情報交換&勉強会しましょう。
25.
ありがとうございました。 20120420