お問い合わせ

BMLブラウザ実装ハンドブック ソースコード付き<デジタル放送対応>

本書は、既刊の『BMLコンテンツ開発ハンドブック』(地上デジタル/衛星デジタル/ワンセグ放送編)シリーズの続編で、既刊本より、より実践的な内容になっています。
具体的には、ソースコードに基づいてBMLブラウザの内部実装について詳しく解説しています。 また、BMLブラウザ(giggle)のエンジン部分のソースコードを、初めてすべて公開し、付属のCD-ROMに同梱(注)しています。
BMLコンテンツ作成者は、ブラウザの内部実装を知ることで、ARIB規格に対する理解をより深めることができ、さらに、ブラウザの動きを予想することで、より効率の良いBMLコンテンツを作成できるようになります。
BMLコンテンツ制作者はもちろんのこと、テレビメーカーや放送用各種ツールメーカーの方々、さらに放送局でデータ放送に従事する人やメーカーの開発者、プログラムの勉強をしている学生など、多くの皆様に読んでいただける必読の一冊です。

※書籍購入希望の場合は、お問い合わせ内容に【書籍購入希望】と明記してください。後日、担当者よりご連絡させて頂きます。

書籍情報

ソースコード付き<デジタル放送対応>

通常価格 CD-ROM+冊子版¥165,000(税込)

メディアキャスト特別価格 ¥157,143(税込)

通常価格 CD-ROM版¥154,000(税込)

メディアキャスト特別価格 ¥146,666(税込)

サイズ・判型 A4判
ページ数 482P
発売日 2009/11/17
執筆者 監修:株式会社 テレビ朝日メディアプレックス 執筆:田中 賢一郎
発行 株式会社インプレスR&D
発売 株式会社インプレスコミュニケーションズ

ソースコードをもとにBMLブラウザの実装を徹底的に解説
データ放送コンテンツ制作者のための実践的解説書!

  • BMLブラウザエンジンのソースコード
  • BMLブラウザgiggle
  • BMLサンプルコンテンツ
  • BMLブラウザエンジンテストデータ

※同梱のBMLブラウザgiggleは、BMLブラウザgiggleの製品版とは若干内容が異なり、Windows 7やVistaに対応したり、USBドングルによるハードウェアプロテクトが解除されています。なお、BMLブラウザgiggle(製品版)は、販売を終了しているソフトウェアになります。

目次

■ 第1章 背景知識
  • 1.1インストール
  • 1.1.1Microsoft Visual C# Express Editionのインストール
  • 1.1.2NUnitのインストール
  • 1.1.3IISのインストール
  • 1.1.4GiggleProjectのインストール
  • 1.2動作確認
  • 1.2.1GiggleProject
  • 1.2.2NUnit
  • 1.3最もシンプルなBMLブラウザ
  • 1.3.1作業手順
  • 1.4コードの読み方
  • 1.4.1全体の構成
  • 1.4.2BMLブラウザ実装のスタンス
■ 第2章 DSMCC
  • 2.1背景知識
  • 2.1.1MPEG-2 PSとMPEG-2 TS
  • 2.1.2TSとES
  • 2.1.3コンポーネントタグ
  • 2.1.4PESとデータカルーセル
  • 2.1.5モジュールとリソース
  • 2.1.6名前空間
  • 2.1.7カルーセルの時間変化
  • 2.1.8イベントメッセージ
  • 2.1.9リンク・非リンク
  • 2.1.10ベースURI
  • 2.2SI/PSI
  • 2.3実装
  • 2.3.1IDsmcc
  • 2.3.2NameSpaceState
  • 2.3.3NsContext
  • 2.3.4SI
■ 第3章 BMLブラウザの概要
  • 3.1BMLブラウザの特徴
  • 3.1.1イベント駆動
  • 3.1.2キーとなるクラス
  • 3.2実装
  • 3.2.1BML文書の読み込み – BmlDocument
  • 3.2.2BmlNodeオブジェクトの作成 – BmlNode
  • 3.2.3BmlNodeの検索台帳 – NodeFinder
  • 3.2.4BMLブラウザへの入り口 – Browser
  • 3.2.5BMLエンジンの心臓部 – MessagePump
  • 3.2.6BML文書のチェック機能 – AribCheckVisitor
■ 第4章 PNG/MNG
  • 4.1背景知識
  • 4.1.1PNGの特徴とファイルフォーマット概説
  • 4.1.2ARIBの制限
  • 4.1.3CLUTファイル
  • 4.1.4RGBとYCbCr
  • 4.2実装
  • 4.2.1CLUTファイルのパース
  • 4.2.2PNGファイルのパース
  • 4.2.3PNGファイルのパース(別手法)
  • 4.3MNG
■ 第5章 CSS2
  • 5.1背景知識
  • 5.1.1CSS2の例
  • 5.1.2CSS2モジュールに必要な機能
  • 5.1.3取り得る値
  • 5.1.4Active/Focus/Normal
  • 5.1.5適用可能な対象
  • 5.1.6セレクタへの制限
  • 5.1.7暗黙の初期値
  • 5.1.8優先順位
  • 5.2実装
  • 5.2.1データ構造
  • 5.2.2正規表現を使ったスタイルの取得
  • 5.2.3CSS特性名、DOM属性名
  • 5.2.4適用可能な対象の実装
  • 5.2.5優先順位の実装
  • 5.2.6CssItemの実装
■ 第6章 描画
  • 6.1背景知識
  • 6.1.1ブロック要素とインライン要素
  • 6.1.2クリッピング
  • 6.1.3ボックスモデル
  • 6.1.4position特性
  • 6.1.5デフォルトスタイルシートにみる描画ルール
  • 6.1.6Z-order
  • 6.1.7文字の組み版
  • 6.1.8ブロック要素
  • 6.2実装
  • 6.2.1ボックスモデル
  • 6.2.2要素の描画
  • 6.2.3インライン要素のレイアウト
■ 第7章 コマンド
  • 7.1コマンドパターン
  • 7.2クラス図
  • 7.3ARIBにおけるイベントに関する規定
  • 7.4実装
  • 7.4.1BmlCommand
  • 7.4.2BmlKeyCode
  • 7.4.3BmlCommandDataButtonPressed
  • 7.4.4BmlCommandDataEventChanged
  • 7.4.5BmlCommandBlur
  • 7.4.6BmlCommandFocus
  • 7.4.7BmlCommandChange
  • 7.4.8BmlCommandClick
  • 7.4.9BmlCommandLaunchDocument
  • 7.4.10BmlCommandFinishDocument
  • 7.4.11BmlCommandLoad/BmlCommandUnload
  • 7.4.12BmlCommandRepaint
  • 7.4.13BmlCommandTimer
  • 7.4.14BmlCommandModuleLocked
  • 7.4.15BmlCommandModuleUpdated
  • 7.4.16BmlCommandModuleTemplate
  • 7.4.17ModuleManager
  • 7.4.18BmlCommandEventMessageFired
  • 7.4.19BmlCommandKeydown
  • 7.4.20BmlCommandKeyup
  • 7.4.21BmlCommandEvalString
  • 7.4.22BmlCommandEvalTerminalInput
■ 第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.1ManagedとUnmanaged
  • 9.2Hostオブジェクト
  • 9.3組み込みオブジェクト
  • 9.4BMLブラウザにおけるHostオブジェクト
  • 9.5JavaScriptオブジェクトとManagedオブジェクトの関係
  • 9.6JavaScriptエンジン組み込み時の注意点
  • 9.6.13/2 = 1
  • 9.6.2Dateオブジェクト
  • 9.6.3BinaryTable
  • 9.6.4文字コード
  • 9.7実装詳細
  • 9.7.1JsVal
  • 9.7.2IEngine
  • 9.7.3SpiderMonkey
  • 9.7.4JsObject
  • 9.8JsObjectを継承するオブジェクト例
  • 9.8.1BmlNode
  • 9.8.2BmlEvent
  • 9.8.3BmlDocumentObject
■ 第10章 その他のクラス
  • 10.1BmlNodeを継承するクラス
  • 10.1.1BmlNodeMeta
  • 10.1.2BmlNodeScript
  • 10.1.3BmlCSS2Properties
  • 10.1.4BmlNodeBody
  • 10.1.5BmlNodeTextTemplate
  • 10.1.6BmlNodeDiv
  • 10.1.7BmlNodeBeitem
  • 10.2BmlDate
  • 10.3BmlBinaryTable

BMLHANDBOOKS

BML開発ハンドブック