JP2014519630A - 中間フォーマットを用いた、swfのhtmlへのクロスコンパイル - Google Patents

中間フォーマットを用いた、swfのhtmlへのクロスコンパイル Download PDF

Info

Publication number
JP2014519630A
JP2014519630A JP2014502566A JP2014502566A JP2014519630A JP 2014519630 A JP2014519630 A JP 2014519630A JP 2014502566 A JP2014502566 A JP 2014502566A JP 2014502566 A JP2014502566 A JP 2014502566A JP 2014519630 A JP2014519630 A JP 2014519630A
Authority
JP
Japan
Prior art keywords
tag
display
swf
svg
multimedia
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014502566A
Other languages
English (en)
Other versions
JP5815114B2 (ja
Inventor
センスター,ピーター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2014519630A publication Critical patent/JP2014519630A/ja
Application granted granted Critical
Publication of JP5815114B2 publication Critical patent/JP5815114B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Processing Or Creating Images (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データ処理装置(300)および方法は、階層的な構造化された文書のためにマルチメディアのコンテンツを描画するために説明され、フォーマットされたマルチメディアオブジェクト(306)を構文解析し、フォーマットされたオブジェクトに包含されるビデオデータおよびオーディオデータでの変換を実行し、データを表す中間オブジェクト(310)を、フォーマットされたマルチメディアオブジェクト(306)から生成するクロスコンパイラ(308)と、中間オブジェクト(802、310)を受け、ウェブブラウザ(806、312)によってマルチメディアコンテンツを描画するために階層的な構造化された文書(804)においてスケアラブルベクターグラフィックス(SVG)ノードを動的に生成し、修正するランタイムスクリプト(runtime-script)とを含む。

Description

背景
以下は、携帯装置でSWFのコンテンツを再生するための代替的な提案である。
代替的な提案は、SVGおよびHTML5のようなウェブ技術のためにコードを生成する。SWFプレーヤは、Windows(登録商標)、Macintosh OSX、Linux(登録商標)、およびSolarisを含むデスクトップのプラットフォームと、Internet Explorer、Firefox、Mozilla、Netscape、Opera、Safari、SeaMonkey、およびChromeを含むそれらのプラットフォームのためのブラウザとに使用可能である。しかしながら、全ての携帯電話のプラットフォームが現在のところこのフォーマットをサポートしているわけではない。さらに、SWFプレーヤの処理能力の問題が、携帯電話およびデスクトップの両方のプラットフォームでの、これらの所有者プレーヤの望ましさを制限する可能性がある。
プラットフォームの数が増加することで、SVGのようなベクターグラフィックス(vector graphics)を処理するためのウェブ技術がサポートされる。SWFフォーマットで開発されたグラフィックおよびアニメーションを処理できる実用性が必要とされている。SWFファイルをSVGおよびJavaScript(登録商標)に直接的にコンパイルするという提案は複数の欠点を有する。SVG処理は、2つの場所に、すなわち、静的なSVGを生成するコンパイラ自体に、および、クライアントの動的なSVGのアニメーションのためのJavaScript(登録商標)に実装される。
JavaScript(登録商標)を用いてSWFファイルそれ自体を解釈するに他の代替手段も、演算負荷がクライアントに課されるというような欠点を有するだろう。ビデオおよびオーディオの、再コード化またはコード変換のような複雑な形式変換は、ユーザがブラウザでページに訪れるたびに実行される必要があるだろう。
概要
階層的な構造化された文書のためにマルチメディアのコンテンツを描画するためのデータ処理装置および方法が説明され、フォーマットされたマルチメディアオブジェクトを構文解析し、フォーマットされたオブジェクトに包含されるビデオデータおよびオーディオデータでの変換を実行し、データを表す中間オブジェクトを、フォーマットされたマルチメディアオブジェクトから生成するクロスコンパイラと、中間オブジェクトを受け、ウェブブラウザによってマルチメディアコンテンツを描画するために階層的な、構造化された文書においてスケアラブルベクターグラフィック(SVG)ノードを動的に生成し、修正するランタイムスクリプト(runtime-script)とを含む。
これらおよび他の局面が図面に関連して詳細に説明される。
図面の簡単な説明
添付の図面は本明細書の一部を構成する。
ネットワーク環境の一例を示す図である。 SWFファイルを中間フォーマットに変換することに含まれるプロセスと、アニメーションの生成時における中間フォーマットの使用とを示すブロック図である。 図2のプロセスを実行するアーキテクチャの一例を示すブロック図である。 携帯装置の一例を示すブロック図である。 サーバコンピュータのブロック図である。 クロスコンパイラによって実行されるプロセスのフローチャートである。 警告メッセージの例を示す図である。 警告メッセージの例を示す図である。 中間コードランタイムによって実行される上位プロセスのフローチャートである。 中間コードランタイムを初期化するためのHTML文書の一部を示す図である。 シーンを構成するプロセスのフローチャートである。 ムービークリップ(MovieClip)を作成するプロセスのフローチャートである。 ムービークリップを構成するプロセスのフローチャートである。 ムービークリップを構成するプロセスのフローチャートである。 ムービークリップを構成するプロセスのフローチャートである。 アニメーションを実行するプロセスのフローチャートである。 図13における制御タグハンドラのステップの実施の詳細を示すフローチャートである。 図13におけるアクションタグハンドラのステップの実施の詳細を示すフローチャートである。 SWFファイルの一例を示す図である。 中間コードオブジェクトの一例を示す図である。 SVGコードの一例を示す図である。 図16におけるSWFファイルに基づく表示の一例を示す図である。 SWFにコンパイルされたActionScript2.0の一例を説明する図である。
詳細な説明
SWFファイルは、SWFプレーヤを用いて再生され得る。Adobe(登録商標)は、多数のプラットフォームでSWFファイルを再生するためにAdobe(登録商標)Flash(登録商標)プレーヤを提供する。SWFファイルの説明は、2008年11月のバージョン10のSWFの仕様に見出すことができる。それらのプラットフォームで用いられるクロスコンパイラおよび再生ユーティリティ(playback utility)が公開されているが、それらのプラットフォームでは、SWFプレーヤが入手できない。再生ユーティリティは、スケアラブルベクターグラフィックス(SVG)(スケアラブルベクターグラフィックス1.1の仕様、2003年1月14日のW3C勧告を参照のこと)とHTML5とを含む広くサポートされるウェブ技術を用いる。
クロスコンパイラは、中間構造を作り出し、コンピュータによる集中的な形式変換を実行する。再生ユーティリティは、中間構造をウェブブラウザによって解釈され得るSVGタグに変換し、SWFアニメーションに関連付けられた必要な動作も生成する。再生ユーティリティは、全てのSVG処理に対処する。クロスコンパイラおよび再生ユーティリティのさらに他の局面は、コンピュータによる集中的なタスクと、たとえば、制限されたメモリおよび処理能力を有する小さな手のひらサイズの装置上のマルチメディアのデータを描画するのに必要なタスクとの間の作業を分割することである。
図1は、ネットワーク環境100の一例を示し、ネットワーク環境100において、様々な携帯装置が、インターネット104、および他の無線通信ネットワークに無線で接続され得る。たとえば、ノート型コンピュータ108は、無線LAN、若しくはWiFi(IEEE 802.11−2007)を含む2つ以上の通信プロトコルを介して、または携帯電話会社(cellular carrier)116を介してウェブサーバ102に接続できる。スマートフォン112は、携帯電話会社116を介して、またはWiFiネットワーク106を介してウェブサーバ102と通信できる。タブレット型コンピュータ114は、WiFiネットワーク106を介して、または携帯電話会社116を介してウェブサーバ102に接続できる。携帯音楽プレーヤ110は、WiFiネットワーク106を介して、またはホストコンピュータ(示されない)を介してウェブサーバ102と通信できる。
システムアーキテクチャ
SWFファイルは、グラフィックまたはアニメーションのバイナリ表現である。図2は、SVGおよびHTML5のようなウェブ技術を扱うことができるウェブブラウザのために、SWFファイルを描画するプロセス200のブロック図である。ウェブブラウザは、SVGタグを有するHTML5を描画可能でなければならない。プロセス200は、クロスコンパイラ204と、中間コードランタイム210とを含む。クロスコンパイラ204は、SWFファイル202を中間構造208に変換する。クロスコンパイラ204によって与えられる中間構造208は、JSONオブジェクト(JavaScript(登録商標) Object Notationを表す)、またはXML文書であってもよい。中間構造208は、クロスコンパイラ204によって生成されるデータを構造化するデータ構造である。中間コードランタイム314は、中間構造208におけるデータからSVGノードを生成し、フレームまたはアニメーションの再生操作を実行するJavaScript(登録商標)プログラムであってもよい。SVGノードは、HTML5およびSVGを描画可能なウェブブラウザ312によって解釈される。
図2におけるプロセスは、図3に示されるような配置で実行されてもよい。図3は、サーバ302およびクライアント304を有するアーキテクチャ300を示す。図1において示されていたように、サーバは、複数の、および様々な型の携帯装置と通信する。図3は、簡単にするために1つのクライアント装置を有する配置を示す。さらに、図3はサーバコンピュータ302を示すが、サーバ302は、サーバシステム、および、データベースシステムのバックエンド(backend)などのその他のサポート装置であってもよい。
サーバコンピュータ302上で、クロスコンパイラ308は、様々なプラットフォームの各々のためにJSONオブジェクトを生成し得る。クロスコンパイラ308は、携帯装置上で動かすウェブブラウザとの互換性のために、ベクトル変換と、画像形式の変換と、フォントの変換と、ビデオおよびオーディオの再コード化またはコード変換とを含む形式変換を実行することもできる。さらに、クロスコンパイラ308は、エラーチェックを実行してもよく、変換に関する警告およびエラーメッセージを生成する。図3に示されるように、クライアント装置304上で、中間コードランタイム314は、クロスコンパイラ308から得られる中間コードオブジェクトに基づいて残りの処理を実行する。中間コードランタイ314は、ウェブブラウザ312で実施される。
図4は、携帯装置の一例をクライアント304として示すブロック図である。携帯装置400は、バス416を経由してホストプロセッサ406と通信するマイクロコントローラ404を含む。ホストプロセッサ406は、データを通信モジュール412に伝送でき、それにより、外部ネットワークを介した通信が可能になる。
さらに、ホストプロセッサ406は、処理をビデオアダプタ408およびオーディオ装置410に与える。主要なバス418は、ホストプロセッサ406と周辺装置414との間の通信を可能にする。ウェブブラウザ430および中間コードランタイム428は、不揮発性メモリ424のような、携帯装置400の内部メモリに格納され得る。代替的には、中間コードランタイムは、安全なデジタルメモリ装置(示されない)のような取り外し可能なメモリ装置上に提供されてもよい。
図5から分かるように、サーバコンピュータ500は、キャッシュ506と、読み出し専用メモリ(ROM)508と、揮発性メモリ(RAM)510と、1つ以上の大容量ストレージ装置(不揮発性メモリ)512とを備えたマイクロプロセッサ504を含んでもよく、これらのメモリ装置はバス502を介してデータを伝える。サーバコンピュータ500は、ディスプレイ装置514と、ディスプレイコントローラおよび入出力コントローラ516装置を経由してマイクロプロセッサ504と通信する入出力装置518ともまた含んでもよい。クロスコンパイラ520は、RAM510において変換操作を実行し、不揮発性メモリ512に格納される中間コードオブジェクトを生成してもよい。代替的には、中間コードオブジェクトは、ウェブサーバ518によって伝送するためにRAM510に保持されてもよい。
クロスコンパイラ
SVGの仕様によってサポートされない、SWFで定義される構造およびメソッドがある。さらに、SWFは、代替のバージョンとして修正されたタグを含む。クロスコンパイラ204は、SWFとSVGとの間の差異を整合する変換操作を実行する。クロスコンパイラ204は、単一バージョンのタグに集約することによって、SWFタグのバージョン間の差異を簡素化する。その後、クロスコンパイラ204は、元のSWFファイルよりも、より少ないタグを有するとともに、より少ないタグの型を有する中間コードオブジェクトを作り出すことができる。
SWFベクターグラフィックスは、SVGでは十分にサポートされない。SWFファイル内のベクターグラフィックスは、SWF特有のフォーマットで(たとえば、DefineShapeタグで)定義される。SWFにより、各エッジのための、すなわち、1つは左側のエッジのための、1つは右側のエッジのための、2つのfillstyleが可能になる。一方、SVGの仕様は、各エッジのための2つのfillstyleをサポートしていない。クロスコンパイラ204は、各構成要素が多くとも単一のfillstyleおよびlinestyleを有するように、パスを構成要素ごとに分けることができる。さらに、クロスコンパイラ204は、パスの定義をSVGベクターデータとして生成する。
さらに、SWFにおいて、現在のfillstyleおよびlinestyleは、パスの中間において変化し得る。たとえば、DefineShapeタグは、linestyleを青に設定するSWFのStyleChangeRecordに続いて、赤のlinestyleを有する2つのエッジと、そして、青に塗られた2つ以上のエッジとを定義し得る。SVGにおいて、1つのパスに対する全てのエッジは、同じfillstyleまたはlinestyleを有する。クロスコンパイラ204は、SWFパスを構成要素に分け、各構成要素が有効なSVGパスであることを確実にする。
クロスコンパイラ204は、SWFにおいて複数の異形を有する複数のタグを単一のタグに置き換える。SWFにおける、DefineShape、DefineShape2、DefineShape3、および、DefineShape4タグは、全て単一のDefineShapeにマッピングされる。簡素化されたSWFタグは、PlaceObject、RemoveObject、DefineFontInfo、DefineFont、DefineButton、DefineBitsJPEG、DefineBitsLossLess、および、DefineTextを含む。
DefineFontInfoの場合では、中間コードオブジェクトにおけるそのタグの表現はない。クロスコンパイラ204は、DefineFontInfoに存在するフォント情報を、DefineFontInfoタグが(その文字IDによって)参照するフォント定義に付加する。その後、DefineFontInfoおよびDefineFont(2/3)の対の情報は、1つのDefineFontタグに組み合わされる。
同様の方法で、DefineButtonCxformでは、DefineButtonCxformにおける色の形式変換が、中間コードのDefineButtonに付加される。同様の場合がDefineBitsおよびJPEGTablesについても現れる。JPEGTablesタグにおける情報は、DefineBitsタグからJPEG画像を構成するために用いられる。JPEGTablesのデータ自体は、中間コードにおいて別個のタグとして表されない。
クロスコンパイラ204によって実行される処理のフローチャートが図6において示される。クロスコンパイラ204は、中間コードの中間表現を作り出すための前工程602と、中間コードオブジェクトを作り出すためにシリアライズするための後工程604とを有する。前工程602において、クロスコンパイラは、ステップ608で、SWFファイル606の構文解析を行なう。SWFファイル606は、バイナリフォーマットである。クロスコンパイラの構文解析の区分で、SWFファイル606におけるバイナリデータが分析され、タグ付けされたデータブロックが特定される。タグ付けされたデータブロックの型は、SWFの仕様で定義される。その後、各データブロックのために、構文解析ツールはSWFタグを作成する。データブロックの1つは、ヘッダ情報を包含する。クロスコンパイラは、次に、ステップ610で、階層構造でSWFタグを表す、中間コードでタグ付けされたデータブロックオブジェクトを生成する。ステップ612で、ステップ614におけるタグは、中間表現(中間コードIR)で、当該タグと同等のものに形式変換される。
数値の対であるJSONキーに形式変換されたSWFタグに加えて、クロスコンパイラ204は、HTML5と互換性のある要素を作り出すために形式変換を実行する。クロスコンパイラ204は、DefineImageオブジェクトを作り出す。タグの形式変換のステップ614は、画像の形式変換と、ビデオ/オーディオの再コード化およびコード変換と、チェックのサポートと、ベクターグラフィックス変換とを含むプロセスもまた含む。クロスコンパイラ204は、遭遇した各SWFタグに対するサポートがあるか否かを判断し、もしタグがサポートされていない場合には、クロスコンパイラは、警告メッセージを与えるであろう。メッセージにより、Adobe(登録商標)Flash(登録商標)プレーヤを含まないブラウザにおいて、どの特徴が提供されないであろうかを開発者が判断するのに役立つ。
画像の形式変換の場合には、SWFファイルは、DefineBitsLossLessおよびDefineBitsLossLess2タグへの符号化を包含してもよい。一部のブラウザは、JPEG、PNG、およびGIF画像をサポートするにすぎないかもしれない。クロスコンパイラ204は、SWFファイルの画像をブラウザによってサポートされる画像フォーマットに再コード化する。
オーディオの場合には、SWFファイルは、圧縮されていない、ADPCM、MP3、Nellymoser、およびSpeexを含む複数のフォーマットのオーディオを包含してもよい。ほとんどのブラウザは、MP3のみをサポートする。クロスコンパイラ204は、SWFファイルにおけるオーディオを、MP3のような、ブラウザによってサポートされるフォーマットに再コード化する。
同様に、ビデオの場合には、コンテンツは、複数の異なるフォーマットに再コード化されてもよい。SWFファイルは、h.263またはVP6フォーマットでビデオを包含してもよい。クロスコンパイラ204は、ビデオを、iOSによって用いられるh.264、またはGoogle Chrome、Firefox、およびOperaによって用いられるWebMに再コード化してもよい。
中間コードランタイム210は、プラットフォームおよびブラウザに応じて読み込むべき画像、オーディオ、およびビデオのどのフォーマットが携帯装置で用いられているかを判断できる。
ステップ616で中間表現はシリアライズされ、ステップ618で中間コードオブジェクトを作り出す。シリアライズされている間に、中間表現における各タグは、数値の対および配列であるキーを含むJSONオブジェクトとして出力される。全てのJSONオブジェクトは、全てのタグを表す単一のJSONオブジェクトに統合される。
[警告およびエラー]
クロスコンパイラ204は、3つの分類の警告メッセージを生成する。第1の分類は、SWFファイルノエラー(たとえば、仕様に対して誤ったビットマップデータ、予期されない特性、誤ったタグ)である。第2の分類は、サポートされないSWFファイルにおける特徴についての警告である。第3の分類は、サポートされているが、全てのプラットフォームでは機能しない可能性のある特徴についての警告である。
図7Aおよび図7Bは、警告メッセージの例である。
中間コードオブジェクト
クロスコンパイラ204によって生成される中間コードオブジェクトは、シリアライズされた中間表現の形式である。中間コードオブジェクトは、JSONオブジェクトであってもよい。JSONオブジェクトは、コンマで分けられ、波括弧で囲まれた数値の対であるキーの集まりである。JSONオブジェクトは、配列を含んでもよい。配列は、コンマで分けられ、角括弧で囲まれた、順序付けられた連続の数値として表される。
結果として生じた中間コードオブジェクトは、中間コードランタイムによって処理するために携帯装置に伝送されてもよい。JSONに基づいて生成される中間コードオブジェクトの例は、操作例において与えられ、以下で説明される。
中間コードランタイム
中間コードランタイム210は、HTML文書において含まれるJavaScript(登録商標)プログラムであってもよい。以下で説明される実施例において、JavaScript(登録商標)のオブジェクト指向の型が用いられる。Stageおよびムービークリップは、オブジェクト指向の協約に基づいて、インスタンス化処理で作成され、メソッドを実施するために構成されたオブジェクトである。中間コードランタイム210は、(オープンソースのJavaScript(登録商標)ライブラリで一般的に手に入れることができる)Google Closureライブラリを付加的に組み込んでもよい。中間コードランタイム210は、HTML文書のためにドキュメントオブジェクトモデル(DOM)におけるSVGノードを動的に付加し、除去し、修正し、ウェブブラウザを用いてアニメーションを実行する。図8から分かるように、中間コードランタイムは、ステップ802で、入力として中間コードオブジェクトを受け付けるAPIを用いて初期化される。ステップ804で、中間コードランタイムは、中間コードオブジェクトからのデータを用い、SVGシーンを構成し、アニメーションを実行する(ステップ806)。
実施例では、開発者は、たとえば図9で示されるように、スクリプトと、関連付けられたJSONオブジェクトとをHTML文書に挿入する。図9から分かるように、スクリプトは、入力パラメータとしてJSONオブジェクトを受け付ける新しいStageオブジェクトを作成し、Stageオブジェクトのための"play"機能を実行する。
図10は、SVGのシーンを構成する処理をより詳細に示す。実施例において、この処理は、Stageオブジェクトの作成時に実行される。ステップ1002で、Stageオブジェクトは、入力として中間コードオブジェクトを受け付け、SVG DOM要素を生成する。SVG DOM要素は、属性と、横幅と、縦幅と、スタイルと、viewBoxとを含み得る<svg>タグ要素である。ステップ1004において、中間コードランタイムは、<svg>タグ属性を設定する。Stageオブジェクトは、中間コードオブジェクトからbackgoundColorを取得し、backgoundColorを数値としてスタイル属性に適用する。ステップ1006で、Stageオブジェクトは、フレームサイズ(frameSize)を中間コードオブジェクトから取得し、フレームサイズをviewBoxの数値として適用する。
中間コードランタイム210は、SVG構造を保持するDOMを生成する。
Stageオブジェクトは、ムービークリップを用いるアニメーションを実行するためにクロック(clock)および辞書を組み込む。ステップ1008で、クロックは、フレームレート(frameRate)の数値に設定され、当該数値は中間コードオブジェクトから取得される。ステップ1010で、Stageオブジェクトは、辞書を初期化する。
辞書は、表示(display)オブジェクトのインスタンスの経過をそれらインスタンスの文字IDによって追跡する。辞書は、タグIDフィールドおよびタグハンドラフィールドを有するデータ構造の形式であってもよい。メインのムービークリップが作成されると、メインのムービークリップは、遭遇した全ての表示オブジェクト定義を辞書に書き込む。新しくネストされたムービークリップが、制御タグハンドラによって作成可能であり、以下でDefineSprite表示オブジェクトとして説明される。ネストされたムービークリップは、主なムービークリップ内のムービークリップである。SWFの仕様に一致して、ネストされたムービークリップは、メインのムービークリップ内で作成され(中間コードDefineSpriteタグに基づいて作成され)、他の定義(definition)タグを包含することはない。
ステップ1012で、Stageオブジェクトは、メインのタイムラインを表すムービークリップの構造を作成し、メインのタイムラインにおいて、タイムラインは、1つ以上のフレームから成る。図11から分かるように、ムービークリップの作成は、フレームIDを制御ハンドラにマッピングするステップ1102と、フレームIDをアクション(action)ハンドラにマッピングするステップ1104と、フレームカウント(frameCount)を設定するステップ1106と、辞書を設定するステップ1108とを包含する。
中間コードオブジェクトは、JSONオブジェクトとして形成される、ステップ1014の場合には、ムービークリップは、JSONオブジェクトに包含されるJSONタグに基づいて構成される。ムービークリップは、SVGの<defs>タグとして設定される。図12A、図12B、および図12Cは、ムービークリップを構成するフローチャートである。最上位の<defs>タグがステップ1202で形成された後、JSONタグを分析して、タグの型を判断し、そのタグの型を前提として、動作がJavaScript(登録商標)ランタイムによって実行される。JSONタグは、定義タグ、制御タグ、アクションタグとして分類される。定義タグは、コンテンツを定義し、定義された各コンテンツは、文字IDを割り当てられる。中間コードランタイムは、定義されたコンテンツおよび関連付けられた文字IDをムービークリップのために辞書に格納する。制御タグは、文字IDにより辞書における定義を参照でき、定義された文字についての一部の動作を実行する。アクションタグは、実施例において後述されるように、ActionScriptのバイトコードを包含し得る。
中間コードランタイム210は、辞書から得られる表示オブジェクトの表示リストを保持し、DOMにおいて動的に、作成し、修正したSVGノードによってSVGを使用する表示リストから表示オブジェクトを表示する。ムービークリップタイムラインを再生している間、表示リストは、新しい各フレームのために更新される。表示リストは、積み上げた順に表示オブジェクトを管理し、クリップ層の機能の実施を担う。表示オブジェクトは、表示リスト上の要素に一致する。表示オブジェクトは、文字定義のインスタンスであり、ある深さに配置される。表示オブジェクトは、DOMツリーの正しい位置にSVGの<use>タグを作成するためのコードを包含する。クリップの深さは、表示オブジェクトに設定されてもよく、この場合、オブジェクト自体は表示されないであろう。代わりに、オブジェクトのアウトラインが表示リスト上の他のオブジェクトをクリップするために用いられる。クリップ層をSVGで機能させるために、もたらされた全ての表示オブジェクトは、それらの<use>タグのクリップの深さ特性を設定することによって修正される。SVGは、1つのクリップの深さ特性をタグごとに許可するだけであるので、<use>タグは、クリップの深さ特性を有するグループにラップされる。特に、<use>タグは、もしそれが複数のクリップ層によって影響を受けるのであれば、複数のSVGの<g>タグの内側にネストされてもよい。
中間コードランタイムは、DisplayObjectBuilderとして呼ばれるインタフェースクラスの定義を含む。DisplayObjectBuilderは、定義から表示オブジェクトのインスタンスを構築することができるビルダーのインタフェースを表す。spriteの場合では、spriteが表示リストに書き込まれるたびに、新しいムービークリップインスタンスが、DisplayObjectBuilderを用いて構成される。
図12A、図12B、および図12Cは、一連の決定ステップを示し、そこでは、中間コードオブジェクトは、具体例においてJSONタグであるタグ(IC_tags)についてチェックされる。ムービークリップの作成時に分析されるJSONタグは、IC_tag DefineFont1204、IC_tag DefineImage1206、IC_tag DefineButton1230、IC_tag DefineEditText1232、IC_tag DefineShape1234、IC_tag DefineText1236、IC_tag MovieDefinition1238、IC_tag DefineSound1270、IC_tag DoAction1272、IC_tag PlaceObject1274、IC_tag RemoveObject1276、および、IC_tag StartSound1278、および、IC_tag ShowFrame1279を含む。IC_tags DefineButton、DefineEditText、DefineFont、および、DefineTextは、定義タグである。制御タグは、IC_tag StartSoundタグ、IC_tag PlaceObjectタグ、および、IC_tag RemoveObjectタグを含む。
各定義タグおよび制御タグのそれぞれは、中間コードタグハンドラと呼ばれる関連付けられた操作を有する。定義および制御タグのために中間コードランタイム210によって実行される操作は、SVGノードを付加すること、または制御タグの場合においてSVGノードを修正することを含む。制御タグは、特定のフレームに連結され、フレームが表示されるたびに実施される。アクションタグは、IC_tag doActionタグを含む。アクションタグもまた、特定のフレームに連結され、フレームが表示されるたびに実施される。
定義および制御タグは、DOMツリーに組み込むためにSVGタグを作成する。DOMツリーのSVGタグは、他のHTMLタグとともにウェブブラウザによって扱われる。
IC_tag DefineFontの場合には(1204)、DefineFontタグハンドラは、ステップ1214で作成される。DefineFontタグハンドラが構成されると、フォントのグラフ定義を包含できる、SVGの<font>ノードまたは<font-face>ノードが作成される。SVGの<font>ノードまたは<font-face>ノードは、DOMに付け加えられる。SVGの<font-face>ノードは、font-familyの属性を含み得る。そのため、作成されたフォントは、このfont-familyを参照することによって後に用いられ得る。SVGの<font-face>ノードは、上昇および下降の属性を含んでもよい。SVGの<font>ノードは、EM方形サイズの値とともに設定される"horiz-adv-x"属性を含んでもよい。SVGの<glyph>ノードは、グラフデータの値を有する属性dとユニコード属性とを設定できる。
IC_tag DefineImageの場合では(1206)、DefineImageタグハンドラは、ステップ1216で作成される。DefineImageタグハンドラが構成されると、SVGの<image>ノードが作成され、それは、横幅と縦幅とハイパーリンクとの属性を有してもよい。SVGの<image>ノードはDOMに付け加えられる。
IC_tag DefineButtonの検出の場合には(1230)、中間コードランタイムは、DefineButtonタグハンドラをステップ1240で作成し、タグIDおよびDefineButtonタグハンドラをステップ1250で辞書に書き込むであろう。
IC_tag DefineEditTextの検出の場合には(1232)、中間コードランタイムは、DefineEditTextタグハンドラをステップ1242で作成し、SVGの<text>ノードを作り出すDefineEditTextタグハンドラをステップ1252で構成するであろう。SVGの<text>ノードはDOMに付け加えられる。さらに、タグIDおよびDefineEditTextタグハンドラはステップ1262で辞書に書き込まれる。<text>ノードに設定され得る属性は、font-family、font-size、x、y、fill-rule、fill、fill-opacity、およびtext-anchorを含む。SVGは余白をつぶす一方でSWFはそれを保護するので、"style"属性は余白を保護するための値に設定される。
IC_tag DefineShapeの検出の場合には(1234)、中間コードランタイムは、DefineShapeタグハンドラを作成するステップ1244と、DefineShapeタグハンドラを構成するステップ1254とを実行する。DefineShapeタグハンドラの構成により、形状が一致するパスノードを包含するSVGグループが作り出され、形状を描くために必要な全てのfillstyleの定義を作成する。SVGグループは、SVGの<g>タグおよび一組のSVGの<path>ノードとして形成される。SVGグループは、DOMに付け加えられる。さらに、ステップ1264で、タグIDおよびDefineShapeタグハンドラは、辞書に書き込まれる。
IC_tag DefineTextタグを検出して(1236)実行される操作は、DefineTextタグハンドラを作成するステップ1246、および、ステップ1256でDefineTextタグハンドラを構成することを含む。DefineTextタグハンドラを構成する際に、SVGの<g>ノードおよび一組の<text>ノードが作成される。テキストグループのためのSVGの<g>ノードは、形式変換行列の値を有する形式変換の属性を含み得る。上述したように、SVGの<text>ノードは、font-family、font-size、x、y、fill-rule、fill、および、fill-opacityを含む属性を有してもよい。さらに、ステップ1266で、タグIDおよびDefineTextタグハンドラは辞書に書き込まれる。
IC_tag MovieDefinitionタグが検出される場合には(1238)、DefineSpriteタグハンドラを作成する操作がステップ1248で実行され、ステップ1258で、タグIDおよびDefineSpriteタグハンドラは辞書に書き込まれる。
IC_tag DefineSoundタグの検出(1270)に関連付けられた操作は、DefineSoundタグハンドラを作成するステップ1280と、DefineSoundタグハンドラをサウンドマネージャに登録するステップ1290とを含む。
IC_tag DoActionタグが検出される場合には(1272)、ステップ1282で、DoActionタグハンドラが作成され、ステップ1292で、DoActionタグハンドラがフレームのactionハンドラとして付加される。
PlaceObjectタグハンドラおよびRemoveObjectタグハンドラは、表示オブジェクトをフレームのための表示リストに書き込み、除去する責任を負う。IC_tag PlaceObjectタグが検出されると(1274)、PlaceObjectタグハンドラはステップ1284で作成され、ステップ1294で、PlaceObjectタグハンドラは、フレームのための制御タグハンドラとして付加される。IC_tag RemoveObjectタグが検出されると(1276)、RemoveObjectタグハンドラはステップ1286で作成され、ステップ1296で、RemoveObjectタグハンドラはフレームのための制御タグハンドラとして付加される。
IC_tag StartSoundタグが検出されると(1278)、ステップ1288で、StartSoundタグハンドラが作成され、ステップ1298で、StartSoundタグハンドラはフレームのための制御タグハンドラとして付加される。
IC_tag ShowFrameタグは、フレームの終わりを示す。IC_tag ShowFrameタグが検出されると(1279)、フレームカウンタは値を増加させる。
図12A、図12B、および図12Cの判断ステップは、全てのタグがJSONオブジェクトにおいて検出されるまで繰り返される。
図8で示されるように、SVGシーンを構成するステップ804の後で、アニメーションがステップ806で実行される。図12A、図12B、および図12Cで、ムービークリップオブジェクトが構成されることにより、ムービークリップオブジェクトのために辞書に書き込まれる定義タグハンドラと、SVGノードの配置を有する初期のDOMと、関連付けられたフレームのために定義された制御タグハンドラと、関連付けられたフレームのために定義されたアクションハンドラとがもたらされる。アニメーションは、クロックを開始することと、MovieObjectのために再生メソッドを実行することとにより、中間コードランタイムによって実行される。図13、図14、および図15は、再生リストからアニメーションを作り出す実施例において含まれるステップを説明する。
アニメーションは、SVGノードをDOMに動的に付加することと修正することとを含む。SVGノードを動的に付加することと修正することとに関係するステップは図13のフローチャートに示される。アニメーションを開始させるために、クロックがステップ1300で開始される。クロックは、登録された各ムービークリップの計時メソッドを呼び出すことによって開始し、設定されたフレームレートでこのメソッドの呼び出しを続けるであろう。次に、それぞれのムービークリップのために再生メソッドが呼び出される。再生メソッドにより、ムービークリップは、クロックに従ってステップ1302で次のフレームに進むことができる。各フレームで、それぞれのフレームのためにインデックスを付けられた一組の制御タグハンドラがステップ1304で実施される。また、各フレームで、それぞれのフレームのためにインデックスを付けられた一組のアクションハンドラがステップ1308で実施される。ステップ1308において、停止メソッドがムービークリップに呼び出されるまでムービークリップにおけるフレームが周期的に繰り返される。
図14は、制御タグハンドラの実施に含まれるステップをさらに詳細に示す。フレームに関連付けられ得る一組の制御タグハンドラは、StartSoundタグハンドラ、PlaceObjectタグハンドラ、およびRemoveObjectタグハンドラを含む。StartSoundタグハンドラが実施された場合(1400)、音がサウンドマネージャによってステップ1402で開始される。PlaceObjectタグハンドラの実施(1404)は、表示リストに表示オブジェクトを書き込み、それにより、フレームに表示されるシーンが修正される。ステップ1406で、もし表示オブジェクトが表示リストに存在すれば、表示オブジェクトは、設定された形式変換メソッドにより、および、任意には、設定されたカラー形式変換により、既存のカラー形式変換行列のためにステップ1408で修正される。ステップ1406で、もし表示オブジェクトが表示リストに存在しなければ、新しい表示オブジェクトがステップ1410で作成され、クリップの深さに設定される。新しい表示オブジェクトは、ステップ1412で表示リストに書き込まれ、DOMに付加され、表示オブジェクトのための形式変換行列がステップ1414で設定される。もし表示オブジェクトがカラー形式変換行列を有すれば、カラー形式変換行列が設定されるであろう。いずれの場合にも、形式変換行列およびカラー形式変換行列の設定により、表示オブジェクトは現在の表示フレームで表示されるか、または修正されるだろう。表示されたオブジェクトは、RemoveObjectタグハンドラが実行されたときに(1416)、ステップ1418で表示リストから除去されるであろう。一組の制御タグハンドラにおける他の制御タグハンドラが実施されるであろう(1420)。
button表示オブジェクトを作成する場合に置いて、表示オブジェクトを作成するステップで(1410)、ボタンは、グループの状態として形成され、SVGの<g>タグによって指し示される。形成される各ボタンは、アップ(通常)とオーバーとダウンとの3つの状態を有する。各ボタンの状態は、予め定義された異なる文字の表示リストとして形成される。それゆえに、ボタンは、クロスコンパイラによって与えられる通常の形状定義として作成される。ボタンは、全てのイベントハンドラが結び付けられるヒット状態も有する。ボタンのイベントハンドラは、中間コードランタイムによって処理される。イベントハンドラは、'マウスオーバ(mouseover)'、'マウスアップ(mouseup)'、'マウスダウン(mousedown)'、および、'マウスアウト(mouseout)'を含む。
図15は、アクションハンドラの実施に含まれるステップを示す。アクションハンドラが遭遇したとき(1500)、そのハンドラに関連付けられた動作が、ステップ1502で実施されるであろう。それらのステップは、記録された各アクションハンドラのためにステップ1504で繰り返される。
対話方式の映画が、JavaScript(登録商標)のようにオブジェクト指向プログラム言語になったActionScript(登録商標)を用いて実現され得るが、AdobeのFlashのアプリケーションを開発するために付加された用途を用いてもよい。対話方式、および、他のSWFファイルを読み込むような複雑なタスクは、ActionScript(登録商標)を用いて実行され得る。
Adobeは、ActionScript(登録商標)のソースコードをActionScript(登録商標)のバイトコードにコンパイルするコンパイラを提供する。もしActionScript(登録商標)がアニメーションを制御するために開発されるのであれば、ActionScript(登録商標)のバイトコードは、たとえばDoActionタグおよびDefineButtonタグの形式でSWFファイルに含まれるであろう。Adobe(登録商標)Flash(登録商標)プレーヤは、ActionScript(登録商標)のバイトコードを解釈するための性能を提供する。
クロスコンパイラ204は、ActionScript(登録商標)のバイトコードを中間コードオブジェクトに伝達する。その伝達は、SWFのDoActionタグを、ActionScript(登録商標)のバイトコードを包含する、中間オブジェクトのDoActionタグに変換することによって達成される。類似の変換がボタンに含まれるActionScript(登録商標)のバイトコードのために実行される。その後、クロスコンパイラ204は、ActionScript(登録商標)のバイトコードを介して伝達する。中間コードランタイムは、中間コードオブジェクトに包含されるActionScript(登録商標)のバイトコードの解釈プログラムとして稼働する。
操作例1
操作例の入力および出力が図16〜図19に示される。図16のSWFファイルは、1つのDefineShapeタグにおける2つの隣接する矩形、すなわち、赤色の矩形および緑色の矩形を描くであろう。この定義は、PlaceObjectタグによってステージ(stage)に書き込まれ、フレームは、ShowFrameタグによって表示される。SWFファイルは、'End'タグで終わる。図16は、テキストとして表されるSWFファイルを示す。SWFのバイナリフォーマットのテキスト表現は、クロスコンパイラ204の構文解析ツールを用いることで得られる。図16から分かるように、SWFファイルは、ヘッダと一組のタグ付けされたデータブロックとから成る。SWFのヘッダは、ファイルのバージョンと、ファイルの長さと、フレームサイズと、フレームレートと、フレームカウントとを示す。図16で示される例は、バージョン(Version)と、フレームサイズ(FrameSize)と、フレームレート(FrameRate)と、フレームカウント(FrameCount)とを有するヘッダを示す。タグ付けされたデータブロックにおいて、各タグはタグの型で特定される。図16に示される例では、タグの型は、[09:SetBackgroundColor]と、[02:DefineShape]と、[26:PlaceObject]と、[01:ShowFrame]と、[00:End]とである。DefineShapeタグは、FillStylesの配列と、ShapeRecordsの配列とを含む。
図17Aおよび図17Bは、JSONオブジェクトの一例を、クロスコンパイラを用いて作り出した中間表現として示す。
クロスコンパイラは、図16のSWFの抽象構文木(AST)を構文解析し、それを中間表現に変換する。ASTの概要は同様であるが、多くの点で元のSWFのASTと異なる。
元のSWFファイルにおける(DefineShapeタグに包含される)ベクターグラフィックスがSWF仕様のフォーマットで定義される一方で、クロスコンパイラは、これをSVGのベクターグラフィックスの中間表現に変換する。たとえば、SWFは、各エッジのための、すなわち1つは左側のエッジのための、1つは右側のエッジのための、2つのfillstyleを可能にする。SVGは、その振る舞いをサポートしないので、クロスコンパイラは、自動的にパスを2つの構成要素、すなわち、赤色の矩形を描くものと緑色の矩形を描くものとに分ける。さらに、クロスコンパイラは、パス定義をSVGのベクターデータ(ストリングは"M2479"から開始する)の中間表現として生成する。
上述したように、JSONのASTは、SWFのASTよりも簡潔である。つまり、より少数の異なるタグが存在する。SWFの仕様では、複数の様々な特有のタグが存在し得る(たとえば、DefineShape、DefineShape2、DefineShape3、およびDefineShape4)。クロスコンパイラは、それらを全て、中間コードのDefineShapeにマッピングし、中間コードランタイムをより簡潔にする。複数のバージョンを有する他のSWFタグにも同じことがいえる。
図17Aおよび図17Bには示されないが、クロスコンパイラは、複数の他のSWF仕様の特徴を即応のウェブフォーマットに変換する。たとえば、画像、オーディオ、ビデオ、およびフォント定義は、全て、ブラウザで容易に使用できるフォーマットに変換される。
上述したように、JSONオブジェクトは、波括弧で囲まれた数値の対、および角括弧で囲まれた配列であるキーで作り上げられる。図17A、図17Bに示されるJSONオブジェクトは、第1の角括弧内の要素の配列を有するJSONのDefineShapeタグから成る。"paths"および"fillstyles"は、DefineShapeタグ内の配列として表される。DefineShapeタグの後に、SVGの形式変換行列に変換されたSWFの形式変換行列がある。形式変換行列の下に、JSONのPlaceObjectタグ、その後にShowFrameタグがある。SWFのヘッダから得られる"backgroundColor"と、"frameSize"と、"frameCount"と、"frameRate"は、キー、すなわち数値の対として与えられる。
図18は、図17A、図17BのJSONオブジェクトを用いて中間コードランタイムによって生成され得るSVGコードの一例を示す。中間コードランタイムは、SVGタグおよびHTML5を描画するためにウェブブラウザによって与えられる表示操作を用い、ムービークリップを再生するために各フレームのためにSVGを更新するような動作を実行する。
中間コードランタイムによって生成されたムービークリップの出力例が図19に示される。説明のために、赤色の矩形は斜め線のハッシュマーク模様を用いて示され、緑色の矩形がクロスハッチ模様を用いて示される。
操作例2
他の操作例が相互に作用する複数のSWFファイルを含む。Adobe(登録商標)Flash(登録商標)プレーヤの特徴として、他の子アニメーションを呼び出すというアニメーション性能が挙げられる。操作例は、この特徴をもたらすために中間コードランタイムの使用を説明する。
Adobe Flash IDEを用いる開発者は、"loadMovie"の呼び出しを含む、ソースレベルのActionScriptを生成できる。Adobe Flash IDEは、ActionScriptをコンパイルし、ActionScriptバイトコードを包含するSWFのDoActionタグをもたらす。ActionScriptバイトコードは、(ActionScriptにおけるloadMovie機能に相当する)ActionGetURL2命令を含むであろう。Adobe(登録商標)Flash(登録商標)プレーヤは、SWFファイルを実施し、ActionScriptバイトコードを解釈できる。ActionGetURL2命令に遭遇すると、プレーヤは、子SWFファイルを取り出す。
操作例2において、各アニメーションは、Adobe Flash IDEを用いてそれぞれのSWFファイルにコンパイルされる。親アニメーションは、ActionScript2.0のloadMovie機能を含む。図20は、ActionScript2.0のloadMovie機能、すなわちloadMovie("child.swf', _root)を有する親SWFファイルの一例を示す。ActionScript2.0の"loadMovie"機能を有する親Flashファイルは、ActionGetURL2命令を含むActionScriptバイトコードを作り出すためにコンパイルされる。任意の子アニメーションは、それぞれのSWFファイルにコンパイルされる。
クロスコンパイラ204は親SWFファイルをコンパイルする。HTMLページは、上述したように、親SWFファイルをStageオブジェクトとして組み込む。さらに、任意の子SWFファイルがクロスコンパイルされる。その後、フレームの表示中、またはボタンイベントの処理中のような親映画のタイムラインの実施中に、親映画は、ActionGetURL2のActionScript命令に遭遇し得る。ActionGetURL2命令は、doActionのJSONタグに含まれるActionScripバイトコードの形式である。ActionGetURL2機能に遭遇した場合に、中間コードランタイムは、JSONオブジェクトの形式で、XmlHttpRequestを用いる、クロスコンパイラされた子SWFファイルを読み込むであろう。JSONオブジェクトは、ActionGetURL2機能において規定された位置に書き込まれる。子映画を表すJSONオブジェクトを受けた後に、そのオブジェクトは、ムービークリップとして解釈され、親タイムライン内でネストされたムービークリップとして描画される。

Claims (16)

  1. サーバコンピュータ(302、500)と、前記サーバコンピュータと通信する少なくとも1つの型のクライアントコンピュータ(304、400、108、110、112、114)とを有するシステム(300)であって、
    前記サーバコンピュータ(302)は、クロスコンパイラ(308、520)を実施し、
    前記少なくとも1つの型のクライアントコンピュータ(304、400)は、関連付けられた表示部(408)を有し、少なくとも1つの対象のウェブブラウザ(312、430)を実施でき、前記少なくとも1つの対象のウェブブラウザは、ランタイムスクリプト(314、428)を実行でき、
    前記クロスコンパイラ(308、520)は、フォーマットされたマルチメディアオブジェクト(606)を構文解析し、タグ付けされたデータブロックオブジェクト(610)を生成し、前記マルチメディアオブジェクト(612)に包含されるマルチメディアデータに再コード化することを実行して、前記少なくとも1つの対象のウェブブラウザ(312、430)のために中間オブジェクト(618)を生成し、
    前記ランタイムスクリプト(314、428)は、前記対象のウェブブラウザ(312、430)によってマルチメディアコンテンツ(806)を描画するために、前記中間オブジェクト(802)を用いて、スケアラブルベクターグラフィックスのタグ(804)を動的に生成し、修正する、システム。
  2. 携帯表示装置(304、400、108、110、112、114)であって、
    ランタイムスクリプト(314、428)を格納するための記憶メディア(424)と、中間データ構造(310)と、ブラウザ(312、430)とを備え、前記中間データ構造は、フォーマットされたメルチメディアオブジェクト(306)に基づいて前記ブラウザのために生成され、
    ディスプレイ(408)と、
    前記中間データ構造を得るための(802)、前記ブラウザ(312、430)による解釈のために、スケアラブルベクターグラフィックスのコードを動的に生成および修正するために(804)、前記ランタイムスクリプトを実行するための、ならびに、前記スケアラブルベクターグラフィックスのコードに基づくマルチメディア画像を前記携帯表示装置の前記ディスプレイ上に描画するため(806)のプロセッサ(406)とを備える、携帯表示装置。
  3. 前記スケアラブルベクターグラフィックスのコードは、ハイパーテキストマークアップ言語文書の文書オブジェクトモデルに挿入される(1002)、請求項2に記載の携帯表示装置。
  4. 前記プロセッサ(406)は、構造化されたタグを作成すること(1002)と、属性値の対を前記タグのために設定すること(1004)と、フレームレートを設定すること(1006)と、辞書構造を作成すること(1010)と、ムービークリップを作成すること(1012)とによってグラフィックスのコードを生成および修正するために(804)、前記ランタイムスクリプト(428)を実行する、請求項2に記載の携帯表示装置。
  5. 前記ムービークリップは、タイムラインを構成する複数のフレームを有し、前記ディスプレイにアニメーションとして描画される(1302、1304、1306、1308)、請求項4に記載の携帯表示装置。
  6. 前記中間データ構造(802)は、1つ以上のデータ定義タグ、制御タグ、およびアクションタグを備え、前記プロセッサ(406)は、前記中間データ構造において遭遇した各データ定義タグおよび制御コードタグのためにグラフィックス定義タグを作成することによって(1214、1216、1240、1242、1244、1246、1248、1280、1282)前記アニメーションを実行するために前記ランタイムスクリプト(428)を処理し、前記制御コードタグに基づいて少なくとも1つの表示オブジェクトを表示リストに書き込み(1412)、前記少なくとも1つの表示オブジェクトを表示リストに書き込むことは、前記ムービークリップのフレームを再生するために、スケアラブルベクターグラフィックスのタグに基づいて表示するための表示オブジェクトを作成すること(1410)、または、表示オブジェクトのためにスケアラブルベクターのタグを修正すること(1408)を含む、請求項5に記載の携帯表示装置。
  7. 前記プロセッサ(406)は、前記ランタイムスクリプトを実行して、前記ムービークリップにおける次の各フレームのためにグラフィックスの定義タグを更新する(1304)、請求項6に記載の携帯表示装置。
  8. 前記記憶メディア(424)は、親マルチメディアオブジェクトのために親中間データ構造を格納し、複数の子マルチメディアオブジェクトのために複数の子中間データ構造を格納し、前記プロセッサ(406)は、前記子中間データ構造を前記親中間データ構造に動的に読み込んで、合成したムービークリップを作成する、請求項2に記載の携帯表示装置。
  9. 前記記憶メディア(424)は、対象のブラウザによって処理され得るフォーマットに再コード化された少なくとも1つの画像、ビデオ、およびオーディオを格納する、請求項2に記載の携帯表示装置。
  10. 前記プロセッサ(406)は、前記再コード化されたフォーマットに基づいて前記画像、ビデオ、およびオーディオを選択する、請求項9に記載の携帯表示装置。
  11. 前記システム(300)は、複数のクライアントコンピュータの型(108、110、112、114)を備え、前記複数のクライアントコンピュータの型(108、110、112、114)は、それぞれ異なる対象のウェブブラウザ(312、430)を実施でき、前記クロスコンパイラ(308)は、前記対象のウェブブラウザの各々のために、中間オブジェクト(310)を生成する、請求項1に記載のシステム。
  12. 前記クライアントコンピュータ(304)は、複数の対象のウェブブラウザ(312)を備え、前記クロスコンパイラ(308)は、前記対象のウェブブラウザの各々のために、中間オブジェクト(310)を生成する、請求項1に記載のシステム。
  13. 前記クロスコンパイラ(308)は、フォーマットされたマルチメディアオブジェクトのうち、タグ付けされたデータブロックオブジェクトとして生成できない部分のために警告メッセージを生成する、請求項1に記載のシステム。
  14. 階層的な構造化された文書のためにマルチメディアのコンテンツを表示する方法であって、
    タグ付けされたデータブロックオブジェクトを生成するためにバイナリのマルチメディアオブジェクトを構文解析すること(608)と、
    前記タグ付けされたデータブロックオブジェクトを包含する中間オブジェクトを生成すること(618)と、
    ランタイムスクリプトを実行するために、表示部を有するコンピュータによってブラウザを実施することと、
    前記ランタイムスクリプトが前記中間オブジェクトを得ること(802)と、
    スケアラブルベクターグラフィックスのコードを有するオブジェクトモデルを生成すること(804)と、
    表示オブジェクトを生成すること(1410)および表示オブジェクトを前記オブジェクトモデルに挿入すること(1412)と、
    前記表示部のために前記オブジェクトモデルを描画すること(806)と、
    前記オブジェクトモデルに基づいて前記表示部にシーンを表示すること(806)と、
    タイムラインに従って前記オブジェクトモデルにおける前記表示オブジェクトを修正すること(1408)と、
    前記タイムラインに沿って修正されるように前記表示オブジェクトを動的に描画すること(806)と、
    前記修正された表示オブジェクトに基づいて、修正されたシーンを前記表示部に表示すること(806)とを備える、方法。
  15. 前記バイナリのマルチメディアオブジェクトは、子マルチメディアオブジェクトを組み込むための命令を含む、請求項14に記載の方法。
  16. 前記表示オブジェクトを修正するステップは、表示オブジェクトが存在しない場合(1406)、新たな表示オブジェクトを作成すること(1410)を含む、請求項14に記載の方法。
JP2014502566A 2011-03-28 2012-02-07 中間フォーマットを用いた、swfのhtmlへのクロスコンパイル Active JP5815114B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/073,916 US20120249870A1 (en) 2011-03-28 2011-03-28 Cross-Compiling SWF to HTML Using An Intermediate Format
US13/073,916 2011-03-28
PCT/US2012/024121 WO2012134633A1 (en) 2011-03-28 2012-02-07 Cross-compiling swf to html using an intermediate format

Publications (2)

Publication Number Publication Date
JP2014519630A true JP2014519630A (ja) 2014-08-14
JP5815114B2 JP5815114B2 (ja) 2015-11-17

Family

ID=45607412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014502566A Active JP5815114B2 (ja) 2011-03-28 2012-02-07 中間フォーマットを用いた、swfのhtmlへのクロスコンパイル

Country Status (6)

Country Link
US (1) US20120249870A1 (ja)
EP (1) EP2691880B1 (ja)
JP (1) JP5815114B2 (ja)
KR (1) KR101569765B1 (ja)
CA (1) CA2831588C (ja)
WO (1) WO2012134633A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018522346A (ja) * 2015-11-17 2018-08-09 グーグル エルエルシー 命令リストを生成することによるflashコンテンツのhtmlコンテンツへの変換

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600919B1 (en) 2009-10-20 2017-03-21 Yahoo! Inc. Systems and methods for assembling and/or displaying multimedia objects, modules or presentations
US20120089902A1 (en) 2010-10-07 2012-04-12 Dundas Data Visualization, Inc. Systems and methods for dashboard image generation
US20120180108A1 (en) 2011-01-06 2012-07-12 Dundas Data Visualization, Inc. Methods and systems for providing a discussion thread to key performance indicator information
KR20120139019A (ko) * 2011-06-16 2012-12-27 삼성전자주식회사 편집 가능한 플래시 파일을 제공하는 장치 및 방법
US10387503B2 (en) 2011-12-15 2019-08-20 Excalibur Ip, Llc Systems and methods involving features of search and/or search integration
US10296158B2 (en) 2011-12-20 2019-05-21 Oath Inc. Systems and methods involving features of creation/viewing/utilization of information modules such as mixed-media modules
US10504555B2 (en) 2011-12-20 2019-12-10 Oath Inc. Systems and methods involving features of creation/viewing/utilization of information modules such as mixed-media modules
US11099714B2 (en) 2012-02-28 2021-08-24 Verizon Media Inc. Systems and methods involving creation/display/utilization of information modules, such as mixed-media and multimedia modules
WO2013177476A1 (en) 2012-05-23 2013-11-28 Qwiki, Inc. Systems and methods involving creation of information modules, including server, media searching. user interface and/or other features
US10417289B2 (en) 2012-06-12 2019-09-17 Oath Inc. Systems and methods involving integration/creation of search results media modules
US10303723B2 (en) 2012-06-12 2019-05-28 Excalibur Ip, Llc Systems and methods involving search enhancement features associated with media modules
US9465882B2 (en) 2012-07-19 2016-10-11 Adobe Systems Incorporated Systems and methods for efficient storage of content and animation
US10127327B2 (en) * 2014-05-21 2018-11-13 Adobe Systems Incorporated Cloud-based image processing web service
CA2893912C (en) 2014-06-09 2022-10-18 Dundas Data Visualization, Inc. Systems and methods for optimizing data analysis
US10380052B2 (en) 2014-10-01 2019-08-13 Landmark Graphics Corporation Image based transfer of wellsite data between devices in a petroleum field
US10642590B2 (en) * 2017-06-30 2020-05-05 Samsung Electronics Co., Ltd. Method and electronic device for rendering scalable vector graphics content
CN109445778A (zh) * 2018-09-13 2019-03-08 珠海豆饭科技有限公司 一种基于svg文件的界面辅助生成的方法和装置
US10824405B2 (en) * 2018-11-14 2020-11-03 Adobe Inc. Layer-based conversion with functionality retention
CN113516737A (zh) * 2020-03-27 2021-10-19 北京小米松果电子有限公司 动画转换方法、装置及智能设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100271374A1 (en) * 2009-04-27 2010-10-28 Research In Motion Limited Conversion of swf shape definitions for vector graphics rendering
JP2012150756A (ja) * 2011-01-21 2012-08-09 Broadtail Co Ltd AdobeFlash(登録商標)によるSWF形式の画像表現をHTML形式の画像表現に変換するコンピューター情報処理の方法、プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167441A (en) * 1997-11-21 2000-12-26 International Business Machines Corporation Customization of web pages based on requester type
US6964011B1 (en) * 1998-11-26 2005-11-08 Canon Kabushiki Kaisha Document type definition generating method and apparatus, and storage medium for storing program
US6757678B2 (en) * 2001-04-12 2004-06-29 International Business Machines Corporation Generalized method and system of merging and pruning of data trees
US20040044960A1 (en) * 2002-09-04 2004-03-04 Gilbert Quenton Lanier System and method for creating efficient markup based language transactions
GB2400780B (en) * 2003-04-17 2006-07-12 Research In Motion Ltd System and method of converting edge record based graphics to polygon based graphics
US20080052381A1 (en) * 2006-08-22 2008-02-28 Koon Wah Yu Method and system for selecting a transcoder to convert between content types
US20100281042A1 (en) * 2007-02-09 2010-11-04 Novarra, Inc. Method and System for Transforming and Delivering Video File Content for Mobile Devices
EP2425397A4 (en) * 2009-04-27 2015-07-01 Blackberry Ltd CONVERSION OF MORPHOLOGICAL SHAPE DEFINITIONS SWF FOR A VECTOR GRAPHIC RENDER
CN102238151B (zh) * 2010-04-27 2014-07-16 中兴通讯股份有限公司 一种基于Flash的媒体流生成系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100271374A1 (en) * 2009-04-27 2010-10-28 Research In Motion Limited Conversion of swf shape definitions for vector graphics rendering
JP2012150756A (ja) * 2011-01-21 2012-08-09 Broadtail Co Ltd AdobeFlash(登録商標)によるSWF形式の画像表現をHTML形式の画像表現に変換するコンピューター情報処理の方法、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN5014006960; ALEX YOUNG: 'GORDON: A FLASH JAVASCRIPT RUNTIME' [ONLINE] , 20100113, p1 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018522346A (ja) * 2015-11-17 2018-08-09 グーグル エルエルシー 命令リストを生成することによるflashコンテンツのhtmlコンテンツへの変換

Also Published As

Publication number Publication date
US20120249870A1 (en) 2012-10-04
CA2831588A1 (en) 2012-10-04
KR101569765B1 (ko) 2015-11-27
EP2691880B1 (en) 2019-05-08
KR20130143725A (ko) 2013-12-31
EP2691880A1 (en) 2014-02-05
WO2012134633A1 (en) 2012-10-04
JP5815114B2 (ja) 2015-11-17
CA2831588C (en) 2017-07-18

Similar Documents

Publication Publication Date Title
JP5815114B2 (ja) 中間フォーマットを用いた、swfのhtmlへのクロスコンパイル
Boduch React and react native
US9268539B2 (en) User interface component
US11216253B2 (en) Application prototyping tool
CN112114807A (zh) 界面显示方法、装置、设备及存储介质
US9892205B2 (en) Declarative show and hide animations in markup languages
US20150286739A1 (en) Html5-protocol-based webpage presentation method and device
US10565296B2 (en) Designing interactive web templates
Boduch et al. React and React Native: A complete hands-on guide to modern web and mobile development with React. js
CN110020307A (zh) 一种客户端视图的绘制方法和装置
EP3037958B1 (en) Declarative user interface representation conversion via hierarchical templates
Dixit Android
US7730388B2 (en) Converting an enhanced metafile into a chronologically independent object property list for conversion into a PDF document
US9529573B2 (en) Graphical user interface generation through use of a binary file
Magno Mobile-first Bootstrap
CN116595284B (zh) 网页系统运行方法、装置、设备、存储介质和程序
Sikora Dart Essentials
WO2024109400A1 (zh) 子应用页面处理方法、装置、计算机设备和存储介质
CN114217780A (zh) 一种支持网页和小程序可视化开发的方法、系统及终端
Maheshwari Transforming Flash files to HTML5 and JavaScript
CN114817133A (zh) 一种pdf文件的生成方法、装置、设备及可读存储介质
Picchi Web Standards for WebKit: Maximizing Mobile Safari
Esposito et al. Start Here! Build Windows 8 Apps with HTML5 and JavaScript
Sarkissian Evaluation of HTML5 Graphics for Data Structure Visualization
CN117195239A (zh) 微应用资源包生成方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150918

R150 Certificate of patent or registration of utility model

Ref document number: 5815114

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20151014

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250