書籍情報
-
ソースコード付き<デジタル放送対応>
BMLブラウザ実装ハンドブック通常価格 CD-ROM+冊子版
¥165,000(税込)メディアキャスト特別価格 CD-ROM+冊子版
¥157,143(税込)通常価格 CD-ROM版
¥154,000(税込)メディアキャスト特別価格 CD-ROM版
お申込フォーム 》
¥146,666(税込)
サイズ・判型 | A4判 |
---|---|
ページ数 | 482P |
発売日 | 2009/11/17 |
執筆者 | 監修:株式会社 テレビ朝日メディアプレックス 執筆:田中 賢一郎 |
発行 | 株式会社インプレスR&D |
発売 | 株式会社インプレスコミュニケーションズ |
ソースコードをもとにBMLブラウザの実装を徹底的に解説
データ放送コンテンツ制作者のための実践的解説書!
本書は、既刊の『BMLコンテンツ開発ハンドブック』(地上デジタル/衛星デジタル/ワンセグ放送編)シリーズの続編で、既刊本より、より実践的な内容になっています。
具体的には、ソースコードに基づいてBMLブラウザの内部実装について詳しく解説しています。 また、BMLブラウザ(giggle)のエンジン部分のソースコードを、初めてすべて公開し、付属のCD-ROMに同梱(注)しています。
BMLコンテンツ作成者は、ブラウザの内部実装を知ることで、ARIB規格に対する理解をより深めることができ、さらに、ブラウザの動きを予想することで、より効率の良いBMLコンテンツを作成できるようになります。
BMLコンテンツ制作者はもちろんのこと、テレビメーカーや放送用各種ツールメーカーの方々、さらに放送局でデータ放送に従事する人やメーカーの開発者、プログラムの勉強をしている学生など、多くの皆様に読んでいただける必読の一冊です。
(注)
・BMLブラウザエンジンのソースコード
・BMLブラウザgiggle
・BMLサンプルコンテンツ
・BMLブラウザエンジンテストデータ
具体的には、ソースコードに基づいてBMLブラウザの内部実装について詳しく解説しています。 また、BMLブラウザ(giggle)のエンジン部分のソースコードを、初めてすべて公開し、付属のCD-ROMに同梱(注)しています。
BMLコンテンツ作成者は、ブラウザの内部実装を知ることで、ARIB規格に対する理解をより深めることができ、さらに、ブラウザの動きを予想することで、より効率の良いBMLコンテンツを作成できるようになります。
BMLコンテンツ制作者はもちろんのこと、テレビメーカーや放送用各種ツールメーカーの方々、さらに放送局でデータ放送に従事する人やメーカーの開発者、プログラムの勉強をしている学生など、多くの皆様に読んでいただける必読の一冊です。
(注)
・BMLブラウザエンジンのソースコード
・BMLブラウザgiggle
・BMLサンプルコンテンツ
・BMLブラウザエンジンテストデータ
※同梱のBMLブラウザgiggleは、BMLブラウザgiggleの製品版とは若干内容が異なり、Windows 7やVistaに対応したり、USBドングルによるハードウェアプロテクトが解除されています。なお、BMLブラウザgiggle(製品版)は、販売を終了しているソフトウェアになります。
目次
- ■ 第1章 背景知識
-
- 1.1 インストール
- 1.1.1 Microsoft Visual C# Express Editionのインストール
- 1.1.2 NUnitのインストール
- 1.1.3 IISのインストール
- 1.1.4 GiggleProjectのインストール
- 1.2 動作確認
- 1.2.1 GiggleProject
- 1.2.2 NUnit
- 1.3 最もシンプルなBMLブラウザ
- 1.3.1 作業手順
- 1.4 コードの読み方
- 1.4.1 全体の構成
- 1.4.2 BMLブラウザ実装のスタンス
- ■ 第2章 DSMCC
-
- 2.1 背景知識
- 2.1.1 MPEG-2 PSとMPEG-2 TS
- 2.1.2 TSとES
- 2.1.3 コンポーネントタグ
- 2.1.4 PESとデータカルーセル
- 2.1.5 モジュールとリソース
- 2.1.6 名前空間
- 2.1.7 カルーセルの時間変化
- 2.1.8 イベントメッセージ
- 2.1.9 リンク・非リンク
- 2.1.10 ベースURI
- 2.2 SI/PSI
- 2.3 実装
- 2.3.1 IDsmcc
- 2.3.2 NameSpaceState
- 2.3.3 NsContext
- 2.3.4 SI
- ■ 第3章 BMLブラウザの概要
-
- 3.1 BMLブラウザの特徴
- 3.1.1 イベント駆動
- 3.1.2 キーとなるクラス
- 3.2 実装
- 3.2.1 BML文書の読み込み – BmlDocument
- 3.2.2 BmlNodeオブジェクトの作成 – BmlNode
- 3.2.3 BmlNodeの検索台帳 – NodeFinder
- 3.2.4 BMLブラウザへの入り口 – Browser
- 3.2.5 BMLエンジンの心臓部 – MessagePump
- 3.2.6 BML文書のチェック機能 – AribCheckVisitor
- ■ 第4章 PNG/MNG
-
- 4.1 背景知識
- 4.1.1 PNGの特徴とファイルフォーマット概説
- 4.1.2 ARIBの制限
- 4.1.3 CLUTファイル
- 4.1.4 RGBとYCbCr
- 4.2 実装
- 4.2.1 CLUTファイルのパース/li>
- 4.2.2 PNGファイルのパース
- 4.2.3 PNGファイルのパース(別手法)
- 4.3 MNG
- ■ 第5章 CSS2
-
- 5.1 背景知識
- 5.1.1 CSS2の例
- 5.1.2 CSS2モジュールに必要な機能
- 5.1.3 取り得る値
- 5.1.4 Active/Focus/Normal
- 5.1.5 適用可能な対象
- 5.1.6 セレクタへの制限
- 5.1.7 暗黙の初期値
- 5.1.8 優先順位
- 5.2 実装
- 5.2.1 データ構造
- 5.2.2 正規表現を使ったスタイルの取得
- 5.2.3 CSS特性名、DOM属性名
- 5.2.4 適用可能な対象の実装
- 5.2.5 優先順位の実装
- 5.2.6 CssItemの実装
- ■ 第6章 描画
-
- 6.1 背景知識
- 6.1.1 ブロック要素とインライン要素
- 6.1.2 クリッピング
- 6.1.3 ボックスモデル
- 6.1.4 position特性
- 6.1.5 デフォルトスタイルシートにみる描画ルール
- 6.1.6 Z-order
- 6.1.7 文字の組み版
- 6.1.8 ブロック要素
- 6.2 実装
- 6.2.1 ボックスモデル
- 6.2.2 要素の描画
- 6.2.3 インライン要素のレイアウト
- ■ 第7章 コマンド
-
- 7.1 コマンドパターン
- 7.2 クラス図
- 7.3 ARIBにおけるイベントに関する規定
- 7.4 実装
- 7.4.1 BmlCommand
- 7.4.2 BmlKeyCode
- 7.4.3 BmlCommandDataButtonPressed
- 7.4.4 BmlCommandDataEventChanged
- 7.4.5 BmlCommandBlur
- 7.4.6 BmlCommandFocus
- 7.4.7 BmlCommandChange
- 7.4.8 BmlCommandClick
- 7.4.9 BmlCommandLaunchDocument
- 7.4.10 BmlCommandFinishDocument
- 7.4.11 BmlCommandLoad/BmlCommandUnload
- 7.4.12 BmlCommandRepaint
- 7.4.13 BmlCommandTimer
- 7.4.14 BmlCommandModuleLocked
- 7.4.15 BmlCommandModuleUpdated
- 7.4.16 BmlCommandModuleTemplate
- 7.4.17 ModuleManager
- 7.4.18 BmlCommandEventMessageFired
- 7.4.19 BmlCommandKeydown
- 7.4.20 BmlCommandKeyup
- 7.4.21 BmlCommandEvalString
- 7.4.22 BmlCommandEvalTerminalInput
- ■ 第8章 browserオブジェクト
-
- 8.1 メンバー変数
- 8.2 プロパティ
- 8.3 メソッド実行の仕組み
- 8.4 メソッド実装詳細
- 8.4.1 拡張メソッド
- 8.4.2 通信関連メソッド
- 8.4.3 動作制御用メソッド
- 8.4.4 モジュールロック関連メソッド
- 8.4.5 その他のメソッド
- ■ 第9章 JavaScriptエンジン
-
- 9.1 ManagedとUnmanaged
- 9.2 Hostオブジェクト
- 9.3 組み込みオブジェクト
- 9.4 BMLブラウザにおけるHostオブジェクト
- 9.5 JavaScriptオブジェクトとManagedオブジェクトの関係
- 9.6 JavaScriptエンジン組み込み時の注意点
- 9.6.1 3/2 = 1
- 9.6.2 Dateオブジェクト
- 9.6.3 BinaryTable
- 9.6.4 文字コード
- 9.7 実装詳細
- 9.7.1JsVal
- 9.7.2 IEngine
- 9.7.3 SpiderMonkey
- 9.7.4 JsObject
- 9.8 JsObjectを継承するオブジェクト例
- 9.8.1 BmlNode
- 9.8.2 BmlEvent
- 9.8.3 BmlDocumentObject
- ■ 第10章 その他のクラス
-
- 10.1 BmlNodeを継承するクラス
- 10.1.1 BmlNodeMeta
- 10.1.2 BmlNodeScript
- 10.1.3 BmlCSS2Properties
- 10.1.4 BmlNodeBody
- 10.1.5 BmlNodeTextTemplate
- 10.1.6 BmlNodeDiv
- 10.1.7 BmlNodeBeitem
- 10.2 BmlDate
- 10.3 BmlBinaryTable