デベロッパーコミュニティでコードの検索、共有、コメントの投稿を行えます。
さらに詳しく*
次のステップ
Flexデベロッパー認定を取得する*
Flexのコンサルタントまたはトレーニング講師を探す。
Flexのオンラインセミナーに参加する*
デザインとコンポーネント
サービスとツールキット
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
ようこそ、さん
お問い合わせ
ホームユーザ向け写真/ビデオ編集ツール
すべての業種・ソリューション ›すべての製品 ›アドビサポートに問い合わせる。
注文状況の確認
教職員および学生
アドビについて
投資家の皆様へ*
地域・社会への貢献*
お問い合わせ
個人またはホームオフィス
法人のお客さま
教育関係のお客様
おすすめ製品
すべてのソフトウェアを見る ›
購入後について
割引価格でコスト削減
ライセンスをご利用中のお客さま
その他の購入方法
販売店のご紹介
初めてのアプリケーション開発
イベントの処理
Flex コンポーネントの位置指定と配置
アプリケーションアセットの埋め込み
このクラスライブラリには、コンポーネント(コンテナおよびコントロール)、マネージャクラス、データサービスクラスおよび他のすべての機能のクラスが含まれています。MXML を使用して、アプリケーションの目に見えない面を明確に定義することもできます。たとえば、サーバサイドデータソースへのアクセス、ユーザインタフェースのコンポーネントとデータソース間のデータバインディングなどです。■訳を後の文節にまとめました■ id プロパティを設定して、 Button インスタンスに一意の名前を割り当て、後でこれを参照することができます。この label プロパティを使用して Button インスタンスに表示するラベルのテキストを設定します。次の例は、Button コントロールを表示する Flex アプリケーションを作成するために必要なコードすべてです。Flex アプリケーションを記述したら、Flex コンパイラを使用してコンパイルする必要があります。0\bin フォルダがシステムのパスにあることを確認してください。Flex コンパイラをシステムのパスに置くことで、現在どのフォルダにいるかに関係なくコマンドラインからコンパイラを呼び出すことができます。
メモ帳などのテキストエディタで新規ファイルを作成し、MyFirst
mxml に記述して、ファイルを保存します。スタート/すべてのプログラム/アクセサリ/コマンドプロンプトを選択して、コマンドウィンドウを開きます。カレントディレクトリを、手順 1 で保存した Flex アプリケーションがあるフォルダに変更します。次のコマンドを入力して Flex コンパイラを起動します。コマンド文字列の 2 つのダッシュで始まる部分は コンパイラオプション と呼ばれ、Flex コンパイラの動作を指定するために使用します。strict モードでは、より厳密なコード記述が必要になります。たとえば、変数の型を静的に宣言する必要があります。この例では次のような SWF ファイルが生成されます。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。この mx 接頭辞によって mx ネーム空間の各コンポーネントが、完全な修飾子を持つクラス名に割り当てられます。結果は MXML を使用する場合と同様です。この長い複雑なコードの例を MXML を使用した例と比較すれば、明らかに MXML のほうが簡単です。MXML ではタグを使用する明確な構文でコードを記述できるので、ActionScript で長いコードを記述してコンポーネントを配置する場合と比べて時間を節約できます。この例では次のような SWF ファイルが生成されます。トップへ戻る。
著者について
設計について積極的に語り、著書や記事も多数
常に強固な意見を持ち、活気にあふれ情熱的
いつも笑顔を絶やさず、ガムをかみながら歩くこともある。
次のステップ
Flexデベロッパー認定を取得する*
Flexのコンサルタントまたはトレーニング講師を探す。
Flexのオンラインセミナーに参加する*
デザインとコンポーネント
サービスとツールキット
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用規約およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
ようこそ、さん
お問い合わせ
ホームユーザ向け写真/ビデオ編集ツール
すべての業種・ソリューション ›すべての製品 ›アドビサポートに問い合わせる。
注文状況の確認
教職員および学生
アドビについて
投資家の皆様へ*
地域・社会への貢献*
お問い合わせ
個人またはホームオフィス
法人のお客さま
教育関係のお客様
おすすめ製品
すべてのソフトウェアを見る ›
購入後について
割引価格でコスト削減
ライセンスをご利用中のお客さま
その他の購入方法
販売店のご紹介
初めてのアプリケーション開発
イベントの処理
Flex コンポーネントの位置指定と配置
アプリケーションアセットの埋め込み
このクラスライブラリには、コンポーネント(コンテナおよびコントロール)、マネージャクラス、データサービスクラスおよび他のすべての機能のクラスが含まれています。MXML を使用して、アプリケーションの目に見えない面を明確に定義することもできます。たとえば、サーバサイドデータソースへのアクセス、ユーザインタフェースのコンポーネントとデータソース間のデータバインディングなどです。■訳を後の文節にまとめました■ id プロパティを設定して、 Button インスタンスに一意の名前を割り当て、後でこれを参照することができます。この label プロパティを使用して Button インスタンスに表示するラベルのテキストを設定します。次の例は、Button コントロールを表示する Flex アプリケーションを作成するために必要なコードすべてです。Flex アプリケーションを記述したら、Flex コンパイラを使用してコンパイルする必要があります。0\bin フォルダがシステムのパスにあることを確認してください。Flex コンパイラをシステムのパスに置くことで、現在どのフォルダにいるかに関係なくコマンドラインからコンパイラを呼び出すことができます。
メモ帳などのテキストエディタで新規ファイルを作成し、MyFirst
mxml に記述して、ファイルを保存します。スタート/すべてのプログラム/アクセサリ/コマンドプロンプトを選択して、コマンドウィンドウを開きます。カレントディレクトリを、手順 1 で保存した Flex アプリケーションがあるフォルダに変更します。次のコマンドを入力して Flex コンパイラを起動します。コマンド文字列の 2 つのダッシュで始まる部分は コンパイラオプション と呼ばれ、Flex コンパイラの動作を指定するために使用します。strict モードでは、より厳密なコード記述が必要になります。たとえば、変数の型を静的に宣言する必要があります。この例では次のような SWF ファイルが生成されます。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。この mx 接頭辞によって mx ネーム空間の各コンポーネントが、完全な修飾子を持つクラス名に割り当てられます。結果は MXML を使用する場合と同様です。この長い複雑なコードの例を MXML を使用した例と比較すれば、明らかに MXML のほうが簡単です。MXML ではタグを使用する明確な構文でコードを記述できるので、ActionScript で長いコードを記述してコンポーネントを配置する場合と比べて時間を節約できます。この例では次のような SWF ファイルが生成されます。トップへ戻る。
著者について
設計について積極的に語り、著書や記事も多数
常に強固な意見を持ち、活気にあふれ情熱的
いつも笑顔を絶やさず、ガムをかみながら歩くこともある。
次のステップ
Flexデベロッパー認定を取得する*
Flexのコンサルタントまたはトレーニング講師を探す。
Flexのオンラインセミナーに参加する*
デザインとコンポーネント
サービスとツールキット
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
ようこそ、さん
お問い合わせ
ホームユーザ向け写真/ビデオ編集ツール
すべての業種・ソリューション ›すべての製品 ›アドビサポートに問い合わせる。
注文状況の確認
教職員および学生
アドビについて
投資家の皆様へ*
地域・社会への貢献*
お問い合わせ
個人またはホームオフィス
法人のお客さま
教育関係のお客様
おすすめ製品
すべてのソフトウェアを見る ›
購入後について
割引価格でコスト削減
ライセンスをご利用中のお客さま
その他の購入方法
販売店のご紹介
初めてのアプリケーション開発
イベントの処理
Flex コンポーネントの位置指定と配置
アプリケーションアセットの埋め込み
イベントの処理
ユーザがインタフェースコンポーネントと対話すると、イベントがそれをプログラマーに知らせます。また、コンポーネントの作成、破棄、サイズ変更など、コンポーネントの外観やライフサイクルに重要な変化が起こったことも知らせます。コンポーネントのインスタンスによってイベントが送信されると、そのイベントのリスナとして登録したオブジェクトに通知されます。イベント通知は次の 3 つの方法で受け取ることができます。
MXML を使用したイベントハンドラの登録
MXML 定義内でのインラインイベントハンドラの作成
MXML を使用したイベントハンドラの定義
イベント通知を受け取るためにもっともよく使用されるのは、イベントが発生したときに呼び出されるイベントハンドラを MXML で定義する方法です。" に設定されます。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。トップへ戻る。
MXML 定義内でのインラインイベントハンドラの作成
場合によっては、イベントハンドラをコンポーネントの MXML 定義内で定義すると、簡単にイベントに応答できることがあります。つまり、インラインイベントハンドラを使用します。イベントハンドラメソッドを呼び出す必要はありません。ヒント:インラインイベントハンドラを使用するのは簡単でコードも短くなりますが、コードの読み取り、保守および拡張や短縮が難しくなることがあります。インラインイベントハンドラには ActionScript の複数の文を含めないことをお勧めします。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。トップへ戻る。ActionScript を使用してイベントハンドラを登録して、イベントに応答することもできます。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。トップへ戻る。
著者について
設計について積極的に語り、著書や記事も多数
常に強固な意見を持ち、活気にあふれ情熱的
いつも笑顔を絶やさず、ガムをかみながら歩くこともある。
次のステップ
Flexデベロッパー認定を取得する*
Flexのコンサルタントまたはトレーニング講師を探す。
Flexのオンラインセミナーに参加する*
デザインとコンポーネント
サービスとツールキット
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
ようこそ、さん
お問い合わせ
ホームユーザ向け写真/ビデオ編集ツール
すべての業種・ソリューション ›すべての製品 ›アドビサポートに問い合わせる。
注文状況の確認
教職員および学生
アドビについて
投資家の皆様へ*
地域・社会への貢献*
お問い合わせ
個人またはホームオフィス
法人のお客さま
教育関係のお客様
おすすめ製品
すべてのソフトウェアを見る ›
購入後について
割引価格でコスト削減
ライセンスをご利用中のお客さま
その他の購入方法
販売店のご紹介
初めてのアプリケーション開発
イベントの処理
Flex コンポーネントの位置指定と配置
アプリケーションアセットの埋め込み
Flex コンポーネントの位置指定と配置
ほとんどの Flex コンテナではあらかじめ設定されたルールを使用して、コンテナ内で定義したすべての子コンポーネントの位置を自動的に決定します。Flex アプリケーションのコンポーネントの位置は、次の 3 つの方法で指定することができます。
自動位置指定の使用
絶対位置指定の使用
制約レイアウトの使用
自動位置指定の使用
ほとんどのコンテナの場合は、レイアウトの方向、コンテナのパディング、コンテナのそれぞれの子の間隔など、コンテナのレイアウトルールに基づいてコンテナの子の位置が自動的に決定されます。自動位置指定を使用するコンテナの場合は、子コンポーネントの x または y プロパティを直接設定したり、 move() メソッドを呼び出したりしても、効果がないか一時的に効果が適用されるだけです。これは、コンポーネントの位置が指定した値ではなく、計算された結果に基づいて決定されるためです。コンテナプロパティを指定してレイアウトをさまざまに制御することができます。次によく使われるプロパティを示します。■訳を後の文節にまとめました■ "absolute" 設定について詳しくは、絶対位置指定および制約レイアウトの節を参照してください。
■訳をまとめました■
■タグのみの部分を開けませんでした■
このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。トップへ戻る。
絶対位置指定の使用
次の 3 つのコンテナに絶対位置指定を使用することができます。Canvas コンテナの場合は常に絶対位置指定が使用されます。絶対位置指定の場合は、子コントロールの位置を x および y プロパティを使用して指定するか、制約レイアウトを指定します。それ以外の場合は、子が親コンテナの 0,0 の位置に配置されます。x と y 座標を指定する場合は、プロパティ値を変更した場合にのみ、コントロールが再配置されます。ヒント:Flex のコントロールを重ねることができるのは、絶対位置指定を使用する場合だけです。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。トップへ戻る。
制約レイアウトの使用
制約レイアウトを使用して、子コンポーネントのサイズと位置を同時に操作することができます。このレイアウトでは、コンポーネントの辺または中心を固定して、コンポーネントのコンテナに対する相対位置に配置することができます。絶対位置指定が使用可能なコンテナの場合は、制約レイアウトを使用して、その直接の子の位置とサイズを設定することができます。
コンポーネントのエッジの固定
コンテナの対応するエッジに対してピクセル単位のオフセットで、コンポーネントのエッジを固定することができます。コンテナのサイズを変更しても、固定された子のエッジの親のエッジに対する距離は変わりません。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。
コンポーネントの拡大
たとえば上と下のように 2 つのエッジを固定した場合は、コンテナのサイズを変更するとコンポーネントのサイズも変更されます。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。
コンポーネントの中心の固定
コンテナの中心に対してピクセル単位のオフセットで、子コンポーネントの水平中心や垂直中心を固定することもできます。パーセントのサイズを使用しなければ、子の指定した寸法は変更されません。負の値を指定するとコンポーネントが中心から左または上に移動します。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。次の図は、プロパティを設定した結果を視覚的に示しています。制約レイアウトで設定したサイズは、明示的に指定したサイズやパーセントで指定したサイズより優先されます。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。トップへ戻る。
著者について
設計について積極的に語り、著書や記事も多数
常に強固な意見を持ち、活気にあふれ情熱的
いつも笑顔を絶やさず、ガムをかみながら歩くこともある。
次のステップ
Flexデベロッパー認定を取得する*
Flexのコンサルタントまたはトレーニング講師を探す。
Flexのオンラインセミナーに参加する*
デザインとコンポーネント
サービスとツールキット
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
ようこそ、さん
お問い合わせ
ホームユーザ向け写真/ビデオ編集ツール
すべての業種・ソリューション ›すべての製品 ›アドビサポートに問い合わせる。
注文状況の確認
教職員および学生
アドビについて
投資家の皆様へ*
地域・社会への貢献*
お問い合わせ
個人またはホームオフィス
法人のお客さま
教育関係のお客様
おすすめ製品
すべてのソフトウェアを見る ›
購入後について
割引価格でコスト削減
ライセンスをご利用中のお客さま
その他の購入方法
販売店のご紹介
Flex クイックスタート: 簡単なユーザインタフェースの作成
コントロールの使用
コンテナの使用
コンポーネントへのスタイルの適用
エフェクトの追加
ステートの作成
ステートのトランジションの定義
ツールヒントの使用
カーソルの制御
コンテナの使用
コンテナ内にコントロールやコンテナといったコンポーネントを定義して、コンテナの内部に表示します。コンテナ内で定義したコンポーネントをコンテナの子と呼びます。たとえば、簡単なボックス、パネル、フォーム、さらにアコーディオンなどのエレメントや子コンテナを切り替えることができるタブ付きのナビゲータなどがあります。Container クラスを拡張するコンテナは、子コンポーネントを配置するというコンテナ自身の機能を追加します。ヒント:各コンテナに応じて、自動および絶対位置指定など異なるレイアウトルールが適用されます。詳しくは、「Flex コンポーネントの位置指定と配置」を参照してください。
レイアウトコンテナの使用
ナビゲータの使用
レイアウトコンテナの使用
レイアウトコンテナを使用してユーザインタフェースを配置します。次の表は、後述の例で使用するレイアウトコンテナの説明です。Panel コンテナはタイトルバー、キャプション、ボーダーおよびその子を表示します。デフォルトでは、Panel コンテナによって子コンポーネントが縦に配置されます。HBox コンテナと似ていますが、子の間に調整可能なデバイダが挿入される点が異なります。VDividedBox コンテナによって子コンポーネントが垂直に配置され、子の間に調整可能なデバイダが挿入されます。Tile コンテナによって子が複数行または複数列に配置されます。Form コンテナによって子が標準フォーム形式に配置されます。これ以外に、この例ではインタフェースのレイアウトを補助するために Spacer コントロールも使用します。これはコンテナではありません。ヒント:Spacer コントロールは非表示のコントロールで、自動位置指定のコンテナの正確な位置にエレメントを配置するために使用します。Flex では、他のコンポーネントが必要としないコンテナの空きスペースすべてに合うように Spacer コントロールのサイズが調整されます。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。トップへ戻る。
ナビゲーションコンテナの使用
ナビゲータコンテナは、子が他のコンテナである複数の子の中におけるユーザの移動(ナビゲーション)を制御します。ナビゲータコンテナの直接の子は、コンテナ(レイアウトコンテナまたはナビゲーションコンテナ)でなければなりません。ナビゲータ内にコントロールを直接ネストすることはできません。コントロールは、ナビゲータコンテナの子コンテナの子にする必要があります。次の表は、後述の例で使用するナビゲータコンテナの説明です。パネルは一度に 1 つだけ表示されます。コンテナをナビゲートするには、ユーザが表示したい子パネルに対応するナビゲーションボタンをクリックします。Accordion コンテナを使用すれば、ユーザが任意の順序で子パネルを表示して、フォームの前に戻ったり先に進んだりすることができます。TabNavigator コンテナによって、子をナビゲートするために使用する複数のタブを作成して管理します。ViewStack ナビゲータコンテナは、積み重なった子コンテナの集まりから成り立っています。一度に表示またはアクティブにできるのは 1 つの子コンテナのみです。ViewStack コンテナは、ユーザが現在アクティブなコンテナを切り替えるための内蔵メカニズムを定義するのではありません。このコンテンツを視聴するには Flash が必要です。ソースを表示するには、Flex アプリケーションを右クリックして、コンテキストメニューから「ソースの表示」を選択します。トップへ戻る。
著者について
設計について積極的に語り、著書や記事も多数
常に強固な意見を持ち、活気にあふれ情熱的
いつも笑顔を絶やさず、ガムをかみながら歩くこともある。
次のステップ
Flexデベロッパー認定を取得する*
Flexのコンサルタントまたはトレーニング講師を探す。
Flexのオンラインセミナーに参加する*
デザインとコンポーネント
サービスとツールキット
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
5日間のビデオトレーニングコースで、プログラミングを段階的に体験できます。共通のコンポーネント、エフェクト、コーディングテクニックなどに関する実行可能なサンプルが、Flexによる開発のレパートリー強化に役立ちます。
Flexに関心をお持ちですか
1時間でアプリケーションを構築できます。
チュートリアルと記事
Sparkのアーキテクチャとコンポーネントセットの概要
Flex 4の特長の1つは、新しく導入されたテキストレイアウトフレームワーク(TLF)です。テキストやテキストフローの細かい制御が可能になり、非常に効果的なUIを作成できます。
Flexデータバインディングの落とし穴:一般的な誤用と間違い
この記事では、データバインディングを使用するアプリケーションを作成する際にデベロッパーが陥りがちな落とし穴や間違いの中から、一般的なものを10個選んで紹介します。
FlexおよびJavaアプリケーションのアーキテクチャ
この記事では、FlexとJavaで開発するアプリケーションのアーキテクチャに関して、以下のような内容を説明します。
FlexおよびJavaアプリケーション構築のためのテクノロジー
この記事では、FlexおよびJavaアプリケーションの構築に使用されるテクノロジーの概要を紹介します。
FlexおよびPHPアプリケーションのアーキテクチャ
PHPに関連するFlexに固有の事柄について説明します。HTML/PHPアプリケーションの構築のための一般的な作業を、FlexとPHPでどのように実行するかを紹介したいと思います。Flexはクライアントサイドのテクノロジーであり、PHPはサーバーサイドのテクノロジーです。どちらのテクノロジーも非常に成熟しています。今回は、前回に引き続きデバッグに役立つTIPSをご紹介します。この記事ではPart 1の内容を基にして、クライアントサイドデータ管理を行うアプリケーションに拡張していきます。このチュートリアルでは、Flex 4 から新しく採用されたレイアウトについて紹介します。このチュートリアルでは、Flex 4 から新しく採用されたエフェクトについて紹介します。このチュートリアルでは、Flex4で新たに追加されたSparkコンポーネントとSparkスキンアーキテクチャについて詳しく紹介します。このチュートリアルでは、Sparkコンポーネントの標準SparkスキンとカスタムSparkスキンを紹介します。このチュートリアルでは、Flash Builder 4の3つのテーマのうちのひとつである、データ中心型開発について紹介します。このチュートリアルでは、Flex 4 の新機能であるSparkコンポーネントを紹介します。このチュートリアルでは、Flex 4 から新しく採用されたCSSについて紹介します。このチュートリアルでは、Flex 4 から新しく採用されたステート構文について紹介します。単に製品名が変わっただけではありません。Adobe Flexチームが費やした2年の月日にふさわしい進化を遂げています。この記事では、新しいSDKとフレームワークの新機能の概要について説明します。この記事では、Flex 4の主要な目標の概要、アーキテクチャの違い、およびコンポーネント、レイアウト、ステートの使用方法とエフェクトにおける変更点の概論を提示します。Flex 4でFlex 3アプリケーションをコンパイルするときに予期される事柄に関する質問についても回答します。初めてFlex開発を行う人でも、データやサービスにすばやく接続し、データをリッチなUIコンポーネントにバインドすることができます。また、経験豊かなデベロッパーは、高度なデータ指向アプリケーションを構築するための強力な新しい方法を利用できます。
Sparkのアーキテクチャーとコンポーネントセットの概要
この記事では、Flex 4に付属するSparkのアーキテクチャーとコンポーネントセットについて、すばらしい新機能の一部を紹介します。他にも、レイアウトの割り当て、新しいグラフィックライブラリ、拡張されたステートモデル、一新されたエフェクトエンジンなど、Sparkの優れた機能をいくつかご覧に入れます。今回からデバッグに役立つTIPSをいくつかご紹介していきます。具体的には、次のワークフローを扱います。この記事では、Flash Builder 4ベータ2の新機能の中から、呼び出し階層ビュー、拡張ステートシンタックスのサポート、コードヒントの変更、エディターの改善について説明します。
Flex 4ベータ版のビューポートとスクロールの基礎
独自のインタラクティブスクロールコンポーネントを作成したい場合や、Flex 4のスクロールの仕組を詳しく理解したい場合には、以下の内容が参考になります。
Flex 4ベータ版のビューポートとスクロールの基礎
独自のインタラクティブスクロールコンポーネントを作成したい場合や、Flex 4のスクロールの仕組を詳しく理解したい場合には、以下の内容が参考になります。Flexで実際の業務アプリケーションやWebサイトを構築する際にキーボード周りの実装でトラブルが発生することがあります。ちょっとした工夫でトラブルを回避し、アプリケーションが使いやすくなるようなTIPSを紹介します。この記事は初級、中級のFlex技術者の向けです。Flex/AIR開発では、「ああこれは最初から用意しておくべきだった。」と後悔しがちなポイントがいくつかあります。そのひとつが、Flex/AIRアプリケーションを「開発用」と「本番用」とで切り替える仕組みです。
これからはじめるRIAとFlexプログラミング 第3回Flexプログラミング言語の基礎知識
第3回目はプログラミングの経験がない方のために、Flexの開発言語であるMXMLとActionScriptsの基礎知識を身につけていただくことを目指して、これらのベースとなるトピックをご紹介します。Flexで実際の業務アプリケーFeliCa(フェリカ)は、ソニーが開発した非接触ICカード技術方式です。国内の様々な電子マネーのベースとなっている技術で、馴染みのある方も多いかもしれません。今回は、FeliCaの機能を使って携帯電話のブラウザを起動するFlashアプリケーションをFlexで作成します。Flexで実際の業務アプリケーションやWebサイトを構築する際に発生するトラブルに対してちょっとした工夫でアプリケーションが使いやすくなるようなTIPSをご紹介していきます。初級、中級のFlex技術者の方向けの記事となります。LiveCycle ESには、プログラミング的な手法でFlexのグラフコントロールにデータを挿入し、プロセスデータを視覚的に提示する方法が用意されています。この記事ではイベントを利用して、簡単なデータ検証を行ったり、一部のセルが編集されるのを防ぐことができるような、より複雑なitemEditorの作成方法を紹介します。この記事ではFlex 3フレームワークを用いて大規模なマーケティングプラットフォームを開発する際の一般的なストラテジを解説します。
Flexのデータマップコントロールを使用したデータ駆動型地図アプリケーションの構築
Mapsコンポーネントとデータ駆動の技法を使用して、Flexアプリケーションを作成します。
Flexでのエンタープライズセキュリティ
Flex Antビルドスクリプトを追加タスクで拡張します。Flex 4 SDKベータ版に含まれる新しいエフェクトを使用して、新しいレベルのFlexアプリケーションを作成する方法を学びます。Flex 4ベータ版のスキンアーキテクチャを使ってコンポーネントのスキンを作成する方法を学びます。
0によるFlexアプリケーションのテスト
Flexアプリケーションの自動UIテストを作成して使用します。この記事では、Flex 4 SDKベータ版の新しいエフェクトについて説明します。今回はFlash Playerのシングルスレッドモデルに注目し、それがもたらす問題と対策について紹介します。
Flexアプリケーションの開発におけるCFCの役割について
第2回目はプログラミングの経験がない方のために、最低限必要な知識を身につけていただくことを目指して、Flex開発のためにもっともベーシックとなるトピックをご紹介します。本連載では、その筆者の「Flex/AIRハマり帳」をもとに、これからFlex/AIR開発を始める方が同じ過ちを繰り返さないためのささやかなtipsを紹介していきたいと思います。第二回では、BlazeDSの本番環境へのデプロイについてです。本連載では、その筆者の「Flex/AIRハマり帳」をもとに、これからFlex/AIR開発を始める方が同じ過ちを繰り返さないためのささやかなtipsを紹介していきたいと思います。
マーケティング・ツールとしてのRIA 活用(後編)
マーケティングにおけるデータの分析の中でのFlex チャートコンポーネントの利用について解説をしていきます。
階層型コンポーネント指向アーキテクチャによるビジネスアプリケーション構築
PACアーキテクチャに代表される、階層構造をもつコンポーネントを組み合わせてアプリケーションを構成する、階層型コンポーネント指向アーキテクチャについて説明します。Pixel Benderを使用して、画像やベクトルグラフィックなど任意の表示オブジェクトに対してフィルタ、ブレンド、および領域塗りつぶしを適用する方法について説明します。
パート4:ステートとトランジション
プロジェクトの構造、編成、コード形式を参照するための規則とロードマップについて学習します。
Flexのベストプラクティス - パート2:開発作業におけるベストプラクティス
Flexの開発作業に関するベストプラクティスを、この記事では全部で90項目以上も紹介していきます。Flex 3のランタイム共有ライブラリを使用して、RIAのダウンロード時間を短縮し、起動時間を改善します。FlexとRIAに関する基本知識から開発方法の基礎を習得していただくことを目的とする連載です。FlexとZendを利用してコーディング、デバッギングおよびプロジェクト管理のワークフローを能率化する方法を紹介します。マピオンFlash Maps APIとはドラッグ&ドロップによるフリースクロール可能な地図をFlashアプリケーション内に埋め込むことができる地図APIです。本連載では、AIRでデスクトップウィジェットを制作する方法について、実際のプロジェクト例と実装例を交えながら、複数回に渡ってお届けしようと思います。今回は、FlexをベースにFlashと連携を行った、開発手法について解説を行います。
0 (そうめん) で非同期処理をスマートに
ActionScript Thread Library は、タスクシステムと Java のスレッドモデルをベースとした「疑似スレッド」を実現するライブラリで、複雑で冗長になりがちな、イベント処理や非同期処理、リアルタイム処理を、分かりやすくスマートに記述することを可能にします。初めてFlexを触ってみる人や、軽量スクリプト言語の経験があるWeb系エンジニアにもわかりやすいように、Flexとサーバサイドの通信方法について説明したいと思います。共有ライブラリの作成と使用およびプロトタイプの基礎について学習します。プロジェクトの構造、編成、コード形式を参照するための規則とロードマップについて学習します。ライブヘルプによる担当者とのやりとりを通じてサポートを受けるアプリケーションです。
画面デザインとロジックの分割テクニック
Flexで開発を行う際に、画面デザイン(MXML)、スクリプトを1つのMXMLファイルに記述せずに、画面デザイン部(MXMLファイル)、プログラムコードを記述するロジック部(ActionScriptファイル)のように分けて作成する方法が採用されることがあります。今回はいくつかある分割テクニックのうち、IMXMLObjectインターフェースを使用した方法、更にその方法を発展させた方法を紹介します。
マーケティング・ツールとしてのRIA活用(前編)
蓄積されたデータを多様な視点で分析することを目的としています。
Flexアプリケーションの開発時にありがちな10の失敗点
Flexアプリケーションの開発時に陥りやすい、一般的な誤りについて解説します。スキニングやスタイリングのワークフローを自動化する、CS3拡張機能とFlex Builder 3の機能の概要について解説します。一般的に誤解されがちなFlexに関する10の事柄について、正しい情報を紹介します。
開発したFlexアプリケーションの宣伝方法について
アドビ システムズ社が提供する無償リソースや各種プログラムを通じて、自主開発したFlexアプリケーションの認知度を高める方法を紹介します。この記事では、BlazeDSのメッセージングを使用するデモアプリケーションとして、複数ユーザで同時に書き込めるホワイトボードを例に、機能を説明します。
チャーティング機能を活用したWeb解析ツール
Web解析ツールによるアクセスや到達率、流入数、流出数などHTMLベースで提供されていた集計データを、Flex/Javaを用いてRIA化することによりユーザビリティを向上させ、クライアントにおけるサービス品質の向上を図りました。
Flex 4:マルチプラットフォームRIAの構築のためのオープンソースフレームワーク
アドビのオープンソース*
デベロッパーコミュニティでコードの検索、共有、コメントの投稿を行えます。
さらに詳しく*
次のステップ
Flexデベロッパー認定を取得する*
Flexのコンサルタントまたはトレーニング講師を探す。
Flexのオンラインセミナーに参加する*
デザインとコンポーネント
サービスとツールキット
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
ツールやサービス、API、ユーザーインターフェース、アーキテクチャ、システム要件などあらゆる側面からLiveCycleを紹介いたします。自分のニーズに合わせたタイムリーな方法でLiveCycle コミュニティと交流できます。LiveCycle ESには、プログラミング的な手法でFlexのグラフコントロールにデータを挿入し、プロセスデータを視覚的に提示する方法が用意されています。
ダイナミックPDFフォームでのハッシュの生成および操作
パスワード保護されたダイナミックPDFフォームに対してハッシュを使用する方法を学習します。前編、後編の2回に分かれています。
階層型コンポーネント指向アーキテクチャによるビジネスアプリケーション構築
PACアーキテクチャに代表される、階層構造をもつコンポーネントを組み合わせてアプリケーションを構成する、階層型コンポーネント指向アーキテクチャについて説明します。BlazeDSのリモーティング機能、Webメッセージング機能を利用した、オフラインでも購読可能なプッシュ配信型のRSSリーダーアプリケーションを作成します。
フォームガイドのカスタマイズ
Flex Builderを利用してオリジナルのフォームガイドライブラリ、ガイドレイアウトおよびパネルレイアウトを作成する方法を紹介します。
ビジネスコミュニケーションにおけるDRM(デジタル権限管理)利用のメリット
この記事では、BlazeDSのメッセージングを使用するデモアプリケーションとして、複数ユーザで同時に書き込めるホワイトボードを例に、機能を説明します。
0のデザインパターン、モデル、および分析*
0のアーキテクチャに関する説明のスライドをご覧ください。
分散GISシステムのバックボーンとしてのサービス指向アーキテクチャ*
地理情報システム(GIS)とサービス指向アーキテクチャ(SOA)との関係について説明し、GISから見たSOAの利点を示します。
パート1:基本的なサービスコンポーネントの作成*
パート2:高度なサービスコンポーネントの作成*
サービス指向アーキテクチャ(SOA)と特殊なメッセージングパターン、データおよびメッセージの交換パターン*
サービス指向環境における特殊なメッセージングパターンと、いくつかの一般的な概念について説明します。
ビデオを見る*
次のブログの最新投稿には、LiveCycleソフトウェアに関する最新情報が満載です。LiveCycle製品の導入に関するお問い合わせは こちら までご連絡をお願いします。インテリジェントなデータキャプチャを実現する動的なXMLテンプレートを作成できます。アプリケーションの開発およびテスト用ソフトウェアであるLiveCycle ESの体験版をお試しください。LiveCycle ESのさまざまなサービスと連携するプログラムの開発方法を、コード例を使用して説明します。フォームデザインとプロセスの作成から、サービスの設定、プロセスのテストに至るまでの過程を、手順を追って説明します。クイックスタートは、プロジェクトにコピーおよびペーストできる完成したプログラムです。クイックスタートを実行してその動作を確認し、必要に応じて変更を加えてください。
インストールと設定
2ソフトウェアのターンキーインストール*
バックエンドの分散データを接続し、FlexおよびAdobe AIRアプリケーションにリアルタイムでデータをプッシュするオープンソーステクノロジーをお試しください。1ソフトウェアに対する全般的な修正を入手できます。インテリジェントなデータキャプチャを実現する動的なXMLテンプレートを作成できます。アプリケーションの開発およびテスト用ソフトウェアであるLiveCycle ESの体験版をお試しください。
このSDKに含まれるすべての変更の一覧を見る*
xをサポート)
これらのサンプルでは、一般的な使用例と製品の機能を確認できます。LiveCycle ESのさまざまなサービスと連携するプログラムの開発方法を、コード例を使用して説明します。RandomWalkカスタムコンポーネントをアプリケーションに配置し、自動化ツールによってユーザ操作の記録と再生を実現する方法を説明します。新しいオートメーションAPIの動作を、新しく作成された2つのサンプルアプリケーションで示します。メトリックの表示と記録、テストの自動化、共同ブラウジングなどの機能をご覧いただけます。
2次元バーコード付きPDFフォームの処理*
フォーム作成デザインプロセスでは、計算とスクリプトの追加を選択して、フォーム受信者の操作性を高めることができます。ここに示すサンプルフォームは、LiveCycle Designerにおけるスクリプト作成についてのデザイナーの理解を深め、スクリプト作成作業ですぐに使用できるソリューションを示すことを目的としています。スクリプトの作成例*をご覧ください。
インテリジェントな小規模企業向けローンアプリケーションのサンプル*(PDF 751k)
ここで示すサンプルでは、次のタスクを実行する方法を示します。PDFドキュメントに署名を追加して、顧客がその信頼性と保全性を確認できるようにする。署名したPDFドキュメントから公開鍵を抽出する。PDFドキュメントを共有パスワードで暗号化する。PDFドキュメントを受信者の公開鍵で暗号化する。PDFドキュメントの署名を検証する。
サンプル:PDFドキュメントの証明*
このサンプルでは、PDFドキュメントを証明書によって保護するワークフローの実例を示します。ここで示すサンプルでは、次のタスクを実行する方法を示します。あらかじめ決められた時間が経過すると読み取り不可能になるPDFドキュメントを作成する。ドキュメントの透かしを変更するドキュメントアクティビティを使用する。ここで示すサンプルでは、PDFドキュメントの使用権限をAdobe Readerソフトウェアに対して有効にする方法の実例を示します。ここで示すサンプルでは、次のタスクを実行する方法を示します。オンラインのジャーナル記事に対するアクセス権限を適用する。受信者だけが(コンピュータを紛失または盗まれた場合でも)読むことができるドキュメントを作成する。ここで示すサンプルでは、次のタスクを実行する方法を示します。フォームデザインからHTMLフォームを作成する。フォームデザインからインタラクティブなPDFドキュメントを作成する。ユーザがダイナミックに追加または削除できる展開可能なフィールドを含むフォームをレンダリングする。可変長のデータとフォームデザインを結合して、PDFドキュメントを作成する。フォームデザインを選択して任意のフォーマットでレンダリングする。ここで示すサンプルでは、受信者だけが読むことのできる電子ステートメントを作成する方法の実例を示します。ここで示すサンプルでは、次のタスクを実行する方法を示します。書類を使用したワークフローを採用する組織で、記入して印刷する方式の紙製フォームからデータをキャプチャできるようにする。オフラインで保存および記入できるアプリケーションフォームを作成する。ユーザがデータを送信すると、カスタムのPDFドキュメントで応答できるようにする。ここで示すサンプルでは、次のタスクを実行する方法を示します。
サンプルのダウンロード
ここで示すサンプルでは、次のタスクを実行する方法を示します。添付ファイルなしで電子メールを送信するための同期QPACを作成する。添付ファイル付きで電子メールを送信するための同期QPACを作成する。電子メールを受信するための非同期QPACを作成する。
サンプルのダウンロード
サンプル:PDFドキュメントへのポリシーの適用*
このサンプルでは、Apply Policy QPACを使用して、ワークフローの自動手順としてプログラム上でポリシーを適用する方法の実例を示します。
サンプル:LDAPクエリの実行によるロールの解決*
このサンプルでは、データベースクエリとLDAPクエリを実行してロールを解決するワークフローの作成方法の実例を示します。
サンプル:複数手順プロセスでのデジタル署名の保存*
xのマップおよびリストのサンプルワークフロー
xでマップおよびリストを使用する方法を説明します。アドビのサンプルおよび関連資料をダウンロード、コピー、または使用した場合は、Adobe LiveCycleサンプルファイル使用許諾条件*に同意したものと見なします。その他の商標は各社が権利を所有しています。以下のテクニカルガイドラインは、アドビテクノロジを使用するにあたってのベストプラクティス手法を理解、計画、判断することを求めるユーザに、実用的なアドバイスを提供するためのものです。チーム体制のコラボレーション環境でLiveCycle ESアプリケーションを開発するにあたっての推奨事項を紹介します。電子署名を導入する上でのベストプラクティスを紹介します。
次のステップ
アドビRSSフィードについて*
入力用フォームのデザイン*
フォームを使いこなそう*
出力用フォームのデザイン*
出力の生成*
情報の保証*
データ統合およびサービス*
エンタープライズ向け技術サポート*
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
XML スキーマを元にしてフォームデザインを行う方法
フォームスクリプトについて
テーブル(表)の取り扱いについて
XML スキーマを元にしてフォームデザインを行う方法
フォームデザインは、オブジェクトライブラリから直接レイアウトエディタにドラック&ドロップして配置する、といった方法もありますが、次に説明する「フォームのデータ構造を元にしてフォームデザインを行う」ことも可能です。
データ接続について
フォームに外部のデータソースのデータを取り込んで表示したり、あるいは、その逆で、フォームのデータを外部に送信したりすることがあるかと思います。というより、電子フォームを作る目的を考慮すると、多くの場合そのようなことを行うはずです。とりわけ、LiveCycleプロセスでフォームを使用する場合には、その処理で使用するデータをフォームから取得したり、あるいは、処理したデータをフォームに挿入する(※4)といったようなことが必要になります。そのような目的で使用するデータソースとフォームを関連付けすることを「データ接続」といいます。
データ連結について
データ接続をしてから、そのデータソースの要素と個々のフォームオブジェクトに関連付けすることを「データ連結」といいます。
データ連結を行う2つの方法
得られる結果は同じですが、データ連結を行う方法は2つあります。今回は、後者の方法で行います。
オブジェクトを配置しフォームデザインを先に行っておいてから、データ接続を行い、そのデータの要素とフォームオブジェクトを関連付ける方法
先にデータ接続を行い、それを元にしてフォームデザインを行う方法
読み込んだデータソースを表すツリーからデータ要素をレイアウトエディタにドラッグ&ドロップします。この時点でデータソースとフォームオブジェクトの関連付けが自動的に行われます。W3C XML Schema におけるデータ接続の意味合いは、表示するデータそのものを読み込むということではなく、フォームに保持するデータ構造を決定する、ということです。これにより、前述のように、LiveCycleプロセスでフォームを使用する場合、その処理で使用するデータをフォームから取得したり、あるいは、処理したデータをフォームに挿入するといったことができるようになります。自動的に認識しない要素や属性の値は、Designer 側で手作業によりプロパティを設定する必要があります。(※5)XML にはなじんでいる方は多いと思いますが、XML スキーマにはなじみがない方もいらっしゃると思います。XMLデータをXML スキーマに変換するツールや、XML スキーマ の作成を支援するXML エディタがあるようですので、そちらを利用するのもよろしいかと思います。
また、以下のページで、作成したフォームからXML Schemaを生成する裏技を紹介しておりますのでご参考ください(ただし、完全なXMLスキーマにはならないようです)
まず、今回データ接続する XML スキーマを確認します。xsd をテキストエディタなどで開いて、軽く全体を眺めておいてください。全てのページに共通のデザイン要素となるマスターページや、いくつかのフォームオブジェクトがすでに配置されている状態になっています。画面左側「データ表示」パレットのタブをクリックします。
「データ表示」パレットの右側の小さなボタンをクリックし、表示されるメニューから[新規データ接続
]を選択します。「新規データ接続」ダイアログが表示されるので、以下の設定を行い、[次へ]ボタンをクリックします。
表2 「新規データ接続」ダイアログの設定
新規データ接続の名前:
任意の名前をつけることができます。
データ記述の取得先:
データ接続するデータの形式を選択します。
図10 「新規データ接続」ダイアログ・接続名と取得先データ形式の選択
次の画面「XMLスキーマファイルの選択」で、データ接続するXMLスキーマファイルを指定します。xsdファイルを選択します。そして、その他の設定項目はデフォルトのままにして、[完了]ボタンをクリックします。「データ表示」パレットにXMLスキーマが自動的に解析され、その結果のツリーが表示されることを確認します。xsd と 「データ表示」のツリー構造との対応関係も簡単に確認しておいてください。
図12 「データ接続」パレット・XMLスキーマ読み込み後
「データ表示」パレットの[orderBy]要素をレイアウトエディタに直接ドラック&ドロップします。ドラック&ドロップした位置によっては、エディタ領域からはみ出す可能性があるため、「フォームのスペースが足りないため、コンテンツを貼り付けられません。」というダイアログが表示される場合があります。この場合は、一旦[OK]ボタンをクリックします。レイアウトを整えます。まず、7つのテキストフィールドオブジェクトを囲う領域を下方向に十分に広げ、テキストフィールドをドラック&ドロップして配置を変更します。テキストフィールドオブジェクトのキャプション部分を直接ダブルクリックして、図15のように変更してください。
図15 テキストフィールドオブジェクトのラベルの変更
お好みに応じてテキストフィールドオブジェクトのサイズを変更し(※6)、7つのテキストフィールドオブジェクトを囲うオブジェクトごと「発注元」テキストフィールドオブジェクトの下に移動します。
図16 テキストフィールドのサイズ変更 および 移動
(※6)サイズ変更に関しては、以下のヘルプを参照ください。手順7~11を 「データ接続」パネルの[deliverTo]要素に対しても同様に行い、最終的に「配送先」テキストフィールドオブジェクト下部に配置してください。
図17 最終的な配置
この操作での注目点
以上の操作で、データ接続したデータソースの要素とフィールドオブジェクトとのデータ連結が済んだ状態になります。「データ表示」パレットを確認してください。データ要素名の隣にアイコンがついているものと、そうでないものがあります。アイコンがついているものが、フィールドオブジェクトと連結されているという意味です。
図18 フィールドオブジェクトとデータ連結されたデータ要素
また、データ連結されている様子は、パレットからも確認できます。データ連結されているフィールドオブジェクトを選択して、画面右下「オブジェクト/連結」パレットを確認します。「デフォルトの連結(開く、保存、送信):」が、データ連結の設定にあたります。また、「デフォルトの連結(開く、保存、送信):」の隣の小さなボタンをクリックすると、データ連結を変更することができます。テスト用のXMLデータを使用してプレビューする。
それでは、フォームのできばえをプレビューして確認してみましょう
そのままプレビューしてもよいのですが、今回は、予め用意しておいたテスト用のXMLデータをマージして表示してみます。メニュー[ファイル]- [フォームのプロパティ] を選択します。「フォームのプロパティ」ダイアログで、[プレビュー]タブを選択します。xml ファイルを選択します。そして、[OK]ボタンをクリックします。エディタ上部の[PDF プレビュー]タブをクリックします。
しばらくすると、[プレビュー]タブでフォームが表示されます(※7)
この操作での注目点
テスト用のデータをマージして、プレビューしました。今回のテスト用のデータは、予め用意しておいたものを使用しましたが、「フォームのプロパティ」ダイアログ ー [プレビュー]タブの[プレビューデータの生成]をクリックすると、テスト用のXMLデータを自動生成することもできます。(※7)テキストフィールドオブジェクト「郵便番号」、「電話番号」、「FAX番号」で期待されない表示なっています。これは、フィールドオブジェクトの種類とテキストフィールドオブジェクトの表示パターン設定によるものです。この点に関しては、今回の説明では省略します。詳細は、以下のヘルプを参照ください。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
ダイナミックPDFフォームでのハッシュの生成および操作 | デベロッパーセンター
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
ダイナミックPDFフォームでのハッシュの生成および操作
PDFフォームにパスワードが表示されないようにし、さらにソースコードやPDFドキュメント内にもパスワードがクリアテキストで保存されないようにするには、MD4、MD5、SHA-1、およびSHA-256ハッシュの生成方法と操作方法を知る必要があります。この方法では、一意のハッシュを生成してPDFドキュメントに保存することで、パスワードを難読化します。この一意のハッシュは様々なハッシュ関数で生成できます。この記事では、PDFフォームの内部でハッシュを生成して操作する方法について説明します。ハッシュ関数は可変長の文字列(またはメッセージ)の入力から固定長の文字列を出力として作成します。この出力はメッセージダイジェスト、またはデジタル指紋と呼ばれる場合もあります。この記事のサンプルファイルに含まれているPDFの例には、次のハッシュ関数のオープンソースの実装が使用されています。ハッシュを使用する最大の利点は、クリアテキスト文字列の比較でパスワードを直接比較するのではなく、2つのパスワードの2つのハッシュを比較できることです。2つの異なった文字列が同じハッシュを持つ可能性は非常に低いため、両方のハッシュが同一であれば、比較された文字列(この場合はパスワード)も同一であると推測できます。注意:MD4またはMD5には、よく知られているセキュリティ上の問題(いわゆるハッシュの衝突)があります。ハッシュの衝突や他のSHA-1がハックされているという問題(レインボーテーブルを含む)があることから、2番目のサンプルではSHA-256ハッシュ関数に重点を置くことにしました。詳しくは、Wikipediaの衝突およびレインボーテーブルのページを参照してください。この記事を効率良くフォローするには、次のソフトウェアやファイルが必要です。
この記事に必要な予備知識
スクリプトオブジェクトの検討
これらのスクリプトオブジェクト内のハッシュ関数のJavaScript実装を確認するには、スクリプトオブジェクトを選択し、スクリプトエディターでコードを調べます。次の各ハッシュ関数がどのように実装されているかを確認できます。このリストからわかるように、ハッシュの様々な出力形式に対して、様々な関数が使用できます。選択するハッシュ関数によって、ハッシュの長さも変わります。
サンプルPDFフォームの試用
この記事のサンプルファイルには、2つのPDFフォームが含まれています。2番目のサンプルは簡単なフォームで、正しいパスワードが入力されるとテキストフィールドのロックを解除します。
サンプル1:ハッシュの生成
次のステップに従って、最初のサンプルを試してみましょう
「clear text」というラベルの付いたテキストフィールドにパスワード、またはハッシュするその他のメッセージを入力します。どのボタンを押したかによって、16進数の出力を作成する4つのハッシュ関数のいずれかが呼び出され、入力した文字列またはメッセージがハッシュされます。ハッシュ処理の結果が「hash」というラベルの付いたフィールドに表示されます。ハッシュの長さは選択したハッシュ関数によって異なります。すべてのサンプルで出力形式には16進数が使用されています。スクリプトエディターを使用してサンプルを変更し、出力形式をBase64または単純な文字列に変更できます。
サンプル2:パスワードの照合
2番目のサンプルでは、実際のパスワードを確認できないようにするため、バックグラウンドでのハッシュの比較がどのように行われているかを示します。入力したパスワードがハッシュされます。非表示フィールドに保存された実際のパスワードもハッシュされます。パスワードが安全であるのは、パスワードが見えなくなっているからではなく、ハッシュされているからです。ハッシュ値からパスワードを再構築することは不可能なため、ハッシュされた形のパスワードが見られても安全です。比較はハッシュ間でのみ行われ、クリアテキストのパスワード間では行われません。両方のハッシュが同一であれば、パスワードも同一であると推測できます。
次のステップに従って、2番目のサンプルを試してみましょう
男性用のパスワードは「bob」です。パスワードフィールドからフォーカスを移動させたり、Enterキーを押したりすると、入力したパスワードのハッシュが自動的に生成され、正しいパスワードの保存済みハッシュとバックグラウンドで比較されます。男性用の正しいパスワードを入力すると、「Man 1」および「Man 2」というラベルの付いたテキストフィールドがアクセス可能になり、テキストが入力できるようになります。女性用のフィールドにも同じ動作が適用されます。オプションで「delete passwords」というラベルの付いたボタンをクリックすると、テキストフィールドが無効になり、枠線が変更されます。2つのハッシュ値を比較し、テキストフィールドを有効にするコードは簡単です。
次のステップ
このコードはどのような場合に必要なのでしょうか
承認された人物だけが入力できるPDFフォームを考えてみましょう
pdf*のように、ドキュメントのどこにもクリアテキストとして表示されないパスワードでフィールドをセキュリティ保護すると、パスワードを知っているユーザーのみがフィールドにアクセス可能になります。2つのサンプルPDFファイルも引き続き研究されることをお勧めします。pdfで使用されるパスワードやハッシュ関数を変更できます。ご協力・謝辞セクションに記載されたリソースでも、ハッシュの作成や、この記事で使用されているJavaScript実装に関する他の情報が提供されています。
ご協力・謝辞
ハッシュの衝突
著者について
Dimoは、アドビ システムズ社に4年以上勤務しており、ドイツのミュンヘン市に居を構えています。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
それは、さまざまな方法でアプリケーションからプロセスを呼び出せることです。また、インターフェイスとしてEJBが利用できないJavaアプリケーションであれば、代わりにSOAPを利用できます。
生成済みのプロキシクラス群ととbase64でエンコードされたデータの使用
生成済みのプロキシクラス群とDIME/MIMEアタッチメントの使用
この記事を効率良くフォローするには、次のソフトウェアやファイルが必要です。
この記事に必要な予備知識
プロセスの読み込み
ここで紹介する3つの方法は、いずれもユーザがJSPページにアクセスし、そこでアップロード対象のXMLファイルを選択するという、同じ処理を行います。ユーザが「アップロード」ボタンをクリックすることで、所定のサーブレットが呼び出されます。Documentオブジェクトなど)へのアクセスが可能になります。また、この場合、プロキシクラスやアタッチメントを扱う必要はありません。接続プロパティでは、接続先のサーバ、ポート、および転送プロトコルを指定します。使用するプロセスがセキュアな場合は、あわせてユーザ名とパスワードも指定します。接続プロパティの指定が完了したら、LiveCycleの呼び出しに用いられるサービスクライアントをインスタンス化します。例では、xmlDataという名前のパラメータを1つだけ用意し、これにアップロードされたファイルのコンテンツが配置されるようにしています。すべての入力パラメータの指定が完了したら、次にLiveCycle ESへの呼び出しを作成します。まず、サービス名、メソッドおよびパラメータを用い、リクエストを作成します。そして、このリクエストを実行します。このリクエストは短期間のみ存在するプロセスに向けた同期型リクエストであることから、レスポンスが即座に返されるはずです。最後に、呼び出しに対するレスポンスが返されます。この後、Documentオブジェクトは必要に応じて自由に利用できます。(筆者の場合、ブラウザへと書き出しています。
プロキシクラス群の生成
2のみをサポートする場合など)は、WSDLを基にオリジナルのプロキシクラス群を生成することができます。これらの大半のツールでは、WSDLファイルを指定することで、アプリケーションに読み込めるJavaクラス群を生成できます。この場合WSDLは、次の場所に配置されます。
生成されたプロキシクラスには、通常、com
通常、BLOBオブジェクトが作成され、これがバイナリデータおよびDocumentデータを保持します。
方法2:生成済みのプロキシクラス群とBase64エンコーディングの使用
Base64エンコーディングではデータが文字列に変換され、SOAPメッセージ内で送信されます。幸いにも、メッセージのエンコーディングとデコーディングはプロキシクラスによって大半が処理されるので、これらの詳細を心配する必要はほとんどありません。まず、生成済みのプロキシクラス群を利用して、LiveCycle ESサーバとの接続を設定します。LiveCycle ESサービスのURLはプリロードされるかもしれませんが、ここではバイナリデータがどの形式で送信されるかを指定する必要があります。次に、入力変数を指定する必要があります。
ここでは、入力としてオブジェクトのcom
残念ながら、SOAPの定義にはDocumentオブジェクトが存在しないため、代わりに、より汎用的なBLOBオブジェクトを使用します。結果は別のBLOBオブジェクトとして返され、このオブジェクトからは、getBinaryDataメソッドを利用してバイナリデータを抽出できます。
方法3:生成済みのプロキシクラス群とDIME/MIMEアタッチメントの使用
Base64エンコーディング処理のコードはさほど難しいものではありませんが、サーバ、クライアント両側でのエンコーディング処理には、相応のパフォーマンスハンデが伴います。これは特にデータファイルの容量が多い場面で顕著になります。SOAPアタッチメントは、Base64エンコーディングを使用するよりはるかに効率に優れています。次に、アタッチメントを追加する必要があります。これを行うには、DataHandlerオブジェクトを作成してバイナリデータを格納し、SOAPメッセージへと添付します。この際、アタッチメントIDが発行されます。アタッチメントIDをBLOBオブジェクトに渡すことで、どのアタッチメントがどのパラメータに対応するかをLiveCycle ESへと伝達します。結果としては、別のBLOBオブジェクトが返されます。BLOBにはバイナリデータそのものではなく、アタッチメントへの参照が含まれます。返されたアタッチメントIDを使用することで、メッセージ内の適切なアタッチメントが特定できます。そして結果のバイナリオブジェクトは、後の処理用にバイト配列に読み込んでおくことができます。
次のステップ
本記事で取り上げた項目について詳しくは、アドビ公式ドキュメンテーション*を参照してください。
著者について
Michael Hodgsonはアドビエンタープライズテクノロジチームに所属するeシステムスペシャリストです。アドビには過去5年間在籍し、顧客に提示するための試作デモの開発を専門に手がけています。Mikeはカナダ国オタワに在住し、同地にて勤務しています。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用規約およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
プロセスの定義
プロセスの作成
プロセスのアクティベートと呼び出しレイヤーの設定
印刷用に表示
前編をまだご覧になっていない場合は、前編からお読みください。※本記事よりダウンロード可能なサンプルプロセスファイル(LCAファイル)は、本記事の学習用に限定してご利用いただけます。無許可での再配布などは許諾されておりませんので、ご留意ください。
プロセスの定義
では、プロセスを定義します。]を選択します。新規プロセス定義のためのウィザードが開始されます。
この項目に関する説明
・プロセス名です。・プロセスを論理的にまとめるためのカテゴリです。元の画面に戻ると、入力したカテゴリ名が選択された状態になります。次の画面では特に設定する項目はありません。最後に[Finish]ボタンをクリックし、ウィザードを終了します。[Processes]ビューを確認して、以下の図のようになっていることを確認します。0”が開いていることを確認します。
この操作での注目点
ここでは、主にプロセスの特性を定義します。値は2つあり、[long-lived]がワークフローのようなプロセスの途中で人の手が介在するようなプロセスの場合、[short-lived]が人の手が介在しない全自動で処理が行われるプロセスの場合です。ウィザード終了後、[Processes]ビューに作成したカテゴリやプロセスなどが表示されます。それぞれは、「プロセスカテゴリ」、「プロセス」、そして「プロセスバージョン」と呼ばれるものです。
この項目に関する説明
・プロセスを論理的にまとめるフォルダです。・プロセスの動作には関与しません。・プロセスそのものを表します。・プロセス配下には複数のプロセスバージョンを定義することができます。・プロセスの中身である処理は、次のプロセスバージョンに作成していきます。・プロセスの処理を実装するところです。・アクティベートすると、サービスとなります。
・バージョン番号が付与され、デフォルトでは1
・既存のバージョンを元にして、新規のプロセスバージョンを定義することなどが可能です。(※1)プロセスバージョンを閉じてから編集目的で再び開くときには、プロセスバージョンを右クリックし、表示されるコンテキストメニューから[Edit]を選択して開いてください。プロセスバージョンをダブルクリックして開くと編集することができません。
著者について
m-School(エムスクール)は、プロフェッショナルのためのアドビ認定トレーニングセンターです。“あなたが今、必要とするスキル”が即座にマスターできる、短期集中のトレーニングを多数ご用意しています。法人研修や出張講座の実績も多数あり、すぐに業務で活用できるノウハウをご提供しています。運営は、教育関連事業で90年の実績がある学校法人駿河台学園(駿台予備学校)グループの、エスエイティーティー株式会社が行っています。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
LiveCycle ESプロセスはデータソースからデータを取得し、これをXMLデータとしてFlexベースのクライアントアプリケーションに返すことができます。
クライアントアプリケーションでは、次の図に示すColumnChartコントロールなどのコントロール要素を用いて、データを表示することができます(図1参照)
ここではクライアントアプリケーションによって、LiveCycle ESプロセスへのリクエストが発信される点に注目してください。このプロセスはリレーショナルデータベースからデータを抽出し、これをXMLドキュメントとともにクライアントアプリケーションへと返します。クライアントアプリケーションは構文解析を行った後、ColumnChartコントロール内に当該データを表示します。仮に、あるIT部署において、担当者別に案件の処理数を集計するようなクライアントアプリケーションがあったとします。
この場合、次の図に示すように、ColumnChartコントロールには担当者別の案件処理数が示されます(図2参照)
この記事では、MySQLデータソースのemployeeDataがデータソースとして用いられていると想定して、解説を進めることにします。closedCasesフィールドのデータは、前出の棒グラフの値と一致している点に注目してください。(前出のXMLデータは、このプロセスによって返されるデータの例です。このプロセス変数がプロセス自体の出力となります。メモ:この記事で紹介するFlexクライアントアプリケーションは、プロセス変数のoutXMLDataを参照します。GetEmployeeDataという名の処理が含まれたカスタムコンポーネントがこの操作手順にあたります。
データベースへのクエリーはjava
*パッケージ内に配置されたJavaクラスを用いて行われ、XMLデータソースの作成はorg
*パッケージ内のクラスを用いて行われます。メモ:この記事ではカスタムコンポーネントを作成するアプリケーションロジックを紹介しています。読者の方々は、コンポーネントの作成方法に精通していることが推奨されます。メモ:ここではLiveCycle ESの標準コンポーネントが利用できるため、カスタムのコントロールを作成しなければならないわけではありません。カスタムコントロールは、いったんデータベースにクエリーをかけ、その後、Flexベースのクライアントアプリケーションに渡すXMLデータを作成するために用いられます。カスタムコンポーネントの作成方法について詳しくは、LiveCycle ESでのプログラミング*の「はじめてのコンポーネント作成」を参照してください。
操作手順のおさらい
この操作によって、MySQLデータソースからデータが抽出されるとともに、XMLデータがダイナミックに生成され、データベースから抽出されたデータがXMLデータ内に配置されます。ColumnChartコントロールが配置されたFlexベースのクライアントアプリケーションを作成します。
XMLデータを生成するカスタムコンポーネントの作成
ここでは、MySQLデータベースにクエリーをかけ、そのクエリー結果を含むXMLデータを生成するカスタムコンポーネントを作成します。1以降のバージョンです。他のJavaプロジェクト同様、Javaのビジネスロジックが依存するJARファイルをプロジェクトのクラスパスに追加します。jarファイルを追加します。データベースコンポーネントのアプリケーションロジックを作成するには、以下の手順に従います。サービスインターフェイスを定義します。サービス実装を定義します。
サービスインターフェイスの定義
このPOJOは、当該サービスの処理操作(パブリックメソッド)、入力値、戻り値を定義したJavaインターフェイスを作成することで開発できます。このJavaインターフェイス内で定義されたパブリックメソッドが、サービスによって公開される処理操作になります。
この処理操作はorg
次のコードサンプルは、データベースコンポーネントに属するインターフェイスを示したものです。
このインターフェイスはcom
サービス実装の定義
このサービス実装は以下の制約を満たす必要があります。
実装クラスには引数なしのパブリックコンストラクターが必要
サービス実装クラスは必ずステートレスであること
入力パラメーター、出力パラメーターおよび例外は必ずシリアライズ可能であること
当該処理の呼び出し時に実行されるビジネスロジックは、それぞれ適切なメソッド内に定義されている必要があります。例えば、GetEmployeeDataメソッドであれば、データベースにクエリーをかけ、そして、その結果を含むXMLデータを作成するJavaアプリケーションロジックが含まれている必要があります。
データベースコンポーネント用のコンポーネントXMLファイルの作成
ここでは、LiveCycle ESにコンポーネントをデプロイするためのコンポーネントXMLファイルを作成します。コンポーネントXMLファイルはコンポーネントごとに存在し、各コンポーネントについてのメタデータを提供します。コンポーネントXMLファイルを利用すれば、各自の要件に合うようにコンポーネントをカスタマイズすることもできます。例えば、プロセスを開発するWorkbench ESユーザーが所定のコンポーネントを見つけやすくするために、特定のアイコンを指定しておくといったことが可能です。コンポーネントXMLファイルのスキーマについて詳しくは、LiveCycle ESでのプログラミング*の「コンポーネントXML要素」を参照してください。
サンプル:データベースコンポーネント用のコンポーネントXMLファイルの定義
コンポーネントのデプロイ
jarファイルを含めるようにします。xmlファイルおよび外部JARファイルは、JARファイルのルートに配置しておく必要があります。ここでは、開発したコンポーネント内のJavaアプリケーションロジックの実行に必要なJARファイルだけを含めることが推奨されます。jarファイルがプロジェクトのクラスパスに含まれている必要がありますが、このファイルをJARファイルに含める必要はありません。jarという名のJARファイルにパッケージ化するようにします。いったんデータベースコンポーネントをJARファイルにパッケージ化すると、当該CLASSファイルはコンポーネントJARファイルの一部にもなります。このCLASSファイルなしには、当該コンポーネントは機能しません。
データベースコンポーネントのデプロイ方法
一連の操作が完了すると、名前の横に緑の矢印が表示されます。デプロイが正常に行われている場合、横に緑の矢印が表示されます。メモ:データベースコンポーネントのデプロイは、LiveCycle ES APIを利用してプログラミング的に行うことも可能です。(詳しくは、LiveCycle ESでのプログラミング*の「プログラミング的手法を用いたコンポーネントのデプロイ」を参照してください。
カスタムコンポーネントを使用するLiveCycleプロセスの作成
このプロセスは短命のプロセス、つまりLiveCycle ESがプロセスのインスタンス記録を作成しないものであっても構いません。短命のプロセスの場合、たとえFlexクライアントアプリケーションが当該プロセスを呼び出しても、記録が作成されません。プロセスが作成できたら、忘れずにこれを有効化するようにします。
Flexベースのクライアントアプリケーションの作成
swcファイルを含めておきます。通常、このSWCファイルは次の場所に保存されています。[インストールディレクトリー]は、LiveCycle ESがインストールされているディレクトリーのことです。返り値がXMLオブジェクトに正しく配置されることを確認します。
次のステップ
著者について
過去10年以上にわたりソフトウェア業界に従事し、Java、C/C++/C#はもちろんのこと、他の様々なプログラミング言語に関しても豊富な経験を有しています。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
プロジェクトの作成
今回のアプリケーションではサーバー側とクライアント側の両方で、データベースを使用しています。役割としては、サーバー側がマスターデータ、クライアント側がローカルキャッシュとなります。クライアント側のアプリケーションでデータを表示する際には、常にクライアント側のデータベースを参照します。この方式のメリットとしては、以下の点があります。クライアント側・サーバー間の通信を減らすことができる。クライアント側の処理が高速化できる。オフライン状態でもデータを表示することができる。既読・未読の切り替えを個別に行うことができる。データベースの種類としては、サーバー側がH2、クライアントがSQLiteと異なるデータベースを使用しているため、データ型や外部キーの有無といった多少の相違点はありますが、テーブル構成自体は全く同じにしています。今回のアプリケーションではRSSの情報を保持する必要があるので、テーブルとしてはフィード情報テーブル(FEED_INFO)と、エントリ項目テーブル(ENTRY_ITEM)の2つのテーブルから構成されています。1つのフィードに対して、複数のエントリが紐付くという構造です。エントリ項目テーブルの未読フラグは、サーバー側のデータベースでは更新されずに、クライアント側のデータベースでのみ更新されます。
サーバー側のER図(論理モデル)
クライアント側のER図(論理モデル)
サーバー側のER図(物理モデル)
クライアント側のER図(物理モデル)
サーバー側のデータベースのテーブル構造にあわせて、Entityクラスを作成します。S2JDBCで使用するためのアノテーションも記述します。クライアント側でもデータベースのテーブル構造にあわせて、Entityクラスを作成します。このEntityクラスはサーバー側とデータをやりとりするためのDTOクラスも兼ねているので、クラスの定義の部分に[RemoteClass]メタタグを書く必要があります。DTOクラスを作成するときは、サーバー側とクライアント側の両方の完全修飾クラス名を同じにしておくと、間違いを起こす可能性が低くなるのでおすすめです。なお、DTOクラスと認識するための記述が必要となるのはクライアント側のクラスだけで、サーバー側のクラスには特別な記述は必要ありません。
クライアント側のフィード情報テーブル用Entityクラス (フィード情報テーブルには直接存在しない未読件数フィールドも定義している)
* (サーバーとデータをやりとりするためのDTOクラスも兼ねている)
* (フィード情報テーブルには直接存在しないフィールド)
クライアント側のエントリ項目テーブル用Entityクラス (定数や読み取り専用プロパティも定義している)
* (サーバーとデータをやりとりするためのDTOクラスも兼ねている)
//(読み取り専用プロパティ)
//フィールドの値をトリムし、改行を削除して返す。* 既読かどうかを判定します。//フィールドの未読フラグが「既読」かどうかを返す。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
BlazeDSのリモーティング機能、Webメッセージング機能を利用した、オフラインでも購読可能なプッシュ配信型のRSSリーダーアプリケーションを作成します。
クライアントサイドはAIRで作成
RSSリーダーの機能について
フィードを追加・削除する。オフラインの場合でもRSSを購読できる。サーバでは定期的に購読しているフィードの最新のエントリをチェックする。新着エントリがあった場合はプッシュ配信で接続しているクライアントにデータを送る。
サンプルファイルのダウンロード(この文書では、次の経験があることを前提として記述していますが、基礎的な知識があれば十分です。Javaでプログラムを作成したことがある。データベースを使用したことがある。以下が詳細な手順です。
ダウンロードした実行ファイルを、実行してインストール
ダウンロードしたアーカイブを任意の場所へ展開 (ここでは「C:\eclipse」として展開しました。
8MB」を選択し「ダウンロード」をクリック
ダウンロードした実行ファイルを、実行してインストール
「今すぐダウンロード」をクリック
ダウンロードした実行ファイルを、実行してインストール
プロジェクトの作成
WTPを利用したAIRプロジェクトを作成する詳細な手順です。
ウィザードで次のように入力し、「次へ」をクリック
0 サーバーを追加する。「終了」をクリックするとプロジェクトが作成される。
diconのルートパッケージの設定を修正
diconにタスククラス用の設定を追加
クライアント側のパッケージを以下のように作成
サーバ側のパッケージを以下のように作成
今回のアプリケーションではサーバー側とクライアント側の両方で、データベースを使用しています。役割としては、サーバー側がマスターデータ、クライアント側がローカルキャッシュとなります。クライアント側のアプリケーションでデータを表示する際には、常にクライアント側のデータベースを参照します。この方式のメリットとしては、以下の点があります。クライアント側・サーバー間の通信を減らすことができる。クライアント側の処理が高速化できる。オフライン状態でもデータを表示することができる。既読・未読の切り替えを個別に行うことができる。データベースの種類としては、サーバー側がH2、クライアントがSQLiteと異なるデータベースを使用しているため、データ型や外部キーの有無といった多少の相違点はありますが、テーブル構成自体は全く同じにしています。今回のアプリケーションではRSSの情報を保持する必要があるので、テーブルとしてはフィード情報テーブル(FEED_INFO)と、エントリ項目テーブル(ENTRY_ITEM)の2つのテーブルから構成されています。1つのフィードに対して、複数のエントリが紐付くという構造です。エントリ項目テーブルの未読フラグは、サーバー側のデータベースでは更新されずに、クライアント側のデータベースでのみ更新されます。
サーバー側のER図(論理モデル)
クライアント側のER図(論理モデル)
サーバー側のER図(物理モデル)
クライアント側のER図(物理モデル)
サーバー側のデータベースのテーブル構造にあわせて、Entityクラスを作成します。S2JDBCで使用するためのアノテーションも記述します。クライアント側でもデータベースのテーブル構造にあわせて、Entityクラスを作成します。このEntityクラスはサーバー側とデータをやりとりするためのDTOクラスも兼ねているので、クラスの定義の部分に[RemoteClass]メタタグを書く必要があります。DTOクラスを作成するときは、サーバー側とクライアント側の両方の完全修飾クラス名を同じにしておくと、間違いを起こす可能性が低くなるのでおすすめです。なお、DTOクラスと認識するための記述が必要となるのはクライアント側のクラスだけで、サーバー側のクラスには特別な記述は必要ありません。
クライアント側のフィード情報テーブル用Entityクラス (フィード情報テーブルには直接存在しない未読件数フィールドも定義している)
* (サーバーとデータをやりとりするためのDTOクラスも兼ねている)
* (フィード情報テーブルには直接存在しないフィールド)
クライアント側のエントリ項目テーブル用Entityクラス (定数や読み取り専用プロパティも定義している)
* (サーバーとデータをやりとりするためのDTOクラスも兼ねている)
//(読み取り専用プロパティ)
//フィールドの値をトリムし、改行を削除して返す。* 既読かどうかを判定します。//フィールドの未読フラグが「既読」かどうかを返す。今回のアプリケーションのサーバー側は、大きく分けて以下の3つのパーツで構成されています。
サーバー起動時の初期化処理を行う初期化サーブレット
RSSを取得するためのタイマータスククラス
データベースアクセスには、S2JDBCと前のページで解説したEntityクラスを使用しています。
サーバー起動時の初期化処理を行う初期化サーブレット
xmlファイルに以下のような記述を加える必要があります。今回のアプリケーションでは、自作した初期化サーブレット以外に、SeasarやBlazeDSで用意されている初期化サーブレットも同時に動かす必要があります。そこで、自作した初期化サーブレットが他の初期化サーブレットよりも後で初期化処理が行われるようにするために、他よりも大きい値を指定する必要があります。この指定を誤ると、自作した初期化サーブレットの中でSeasarの機能が使えなくてエラーになることがあります。今回自作する初期化サーブレットでは、大きく分けて以下の2つの処理を行っています。
データベースの初期化(テーブルの作成)
RSSを取得するタイマータスククラスを定期的に実行
//オーバーライドするメソッド
* 初期化処理を行います。//親クラスの処理を先に呼び出す。//データベースの初期化を行う。
//RSSを取得するタイマータスクをコンテナから取得
//タイマーを起動して、RSSを取得するタスクを定期的に実行する。* 終了処理を行います。//親クラスの処理を先に呼び出す。//RSSを取得するタイマーを終了し、実行中のタスクを破棄する。* データベースの初期化を行います。
//JDBCマネージャをコンテナから取得
//テーブルの作成を行うSQLファイルを実行する。
データベースの初期化
データベースの初期化を行っている箇所のソースは以下の通りです。
//JDBCマネージャをコンテナから取得
//テーブルの作成を行うSQLファイルを実行する。sql」と指定しているのは実行時のクラスパスのルートからの相対パスとなります。このSQLは、テーブルがまだ存在しない場合のみテーブルの作成するようになっているので、サーバーを何度も起動し直しても副作用がでないようになっています。
RSSを取得するタイマータスククラスを定期的に実行
RSSを取得するタイマータスククラスを定期的に実行している箇所のソースは以下の通りです。
//RSSを取得するタイマータスクをコンテナから取得
//タイマーを起動して、RSSを取得するタスクを定期的に実行する。ここで注意する必要があるのは、RssTaskクラスのインスタンスを取得する際に、普通にnewするのではなく、Seasarのコンテナから取得していることです。普通にnewしてしまうと、AOPが効いていない状態のインスタンスになってしまうので、publicフィールドの自動設定や、アノテーションによるトランザクションの制御などができなくなってしまいます。
今回のアプリケーションではタスクを定期的に実行するために、java
どちらもあまり使用頻度が高くないクラスですが、別スレッドでタスクを定期的に実行するには便利なクラスです。固定頻度実行について、JavaのAPIリファレンスを引用すると以下の通りです。固定頻度実行では、最初の実行のスケジュールされた実行時間を基準にしてそれぞれの実行がスケジュールされます。何らかの理由で実行が遅延した場合 (ガベージコレクションまたはその他のバックグラウンド作業など)、「遅れを取り戻す」ために 2 つ以上の実行が連続して行われます。最終的に実行の頻度は、指定した期間の対応する頻度と同じになります。
RSSを取得するためのタイマータスククラス
RSSを取得するためのタイマータスククラス(rss
RssTaskクラス)では、大きく分けて以下の3つの処理を行っています。
データベースからフィードを取得する対象のサーバーのURLを取得
RSSに関する処理を簡単に行うためのsyndicationライブラリを使ってフィードに対するエントリを取得し、新しく見つかったエントリならばデータベースに登録
新しく見つかったエントリがあればプッシュ配信
* RSSを取得するタイマータスククラス
//オーバーライドするメソッド
* このタイマータスクによって実行されるアクションです。
//フィード情報テーブルの全ての情報を取得
//(ソート順にはフィードIDの昇順を指定する)
//検索結果が見つからなかった場合
//以降の処理を行わない。
//新しく見つかったエントリを格納するリスト
//検索結果の全ての要素に対して処理を行う。//取得するフィードのURLオブジェクトを作成する。//フィードを取得する。//見つかったエントリの全ての要素に対して処理を行う。
//すでに同じURLのデータが登録されていないかチェック
//エントリ項目テーブルにURLが一致するデータが存在する場合
//同じデータを登録しても仕方がないので、現在の要素をスキップして次の要素に処理をまわす。//取得したエントリの情報をDBに登録する。//取得したエントリの情報をエントリ項目テーブル用Entityに詰め直す。
//本文に設定
//それ以外の場合
//仕方がないので「本文なし」を設定
//作成日時に設定
//それ以外の場合
//仕方がないので作成日時に現在日時を設定
//Entityの情報を元にしてエントリ項目テーブルに登録
//新しく見つかったエントリを格納するリストに登録したEntityを追加
//どうしようもないのでとりあえずスタックトレースを出力する。
//(本当はログファイルに出力したりする方が良い)
//新しく見つかったエントリがあればプッシュ配信する。
//新しく見つかったエントリを格納するリストが空でない場合
//メッセージブローカーのインスタンスを取得
//非同期メッセージのインスタンスを生成
//宛先を設定
//クライアントIDにユニークなIDを設定
//メッセージIDにユニークなIDを設定
//タイムスタンプを設定
//ボディーに新しく見つかったエントリを格納するリストを設定
//メッセージブローカーを使って作成したメッセージのプッシュ配信を行う。
新しく見つかったエントリがあればプッシュ配信
今回のアプリケーションの中で特に重要なのがプッシュ配信の部分なので、これについて詳しく解説します。xml」であらかじめ設定した宛先を設定する点です。
//メッセージブローカーのインスタンスを取得
//非同期メッセージのインスタンスを生成
//宛先を設定
//クライアントIDにユニークなIDを設定
//メッセージIDにユニークなIDを設定
//タイムスタンプを設定
//ボディーに新しく見つかったエントリを格納するリストを設定
//メッセージブローカーを使って作成したメッセージのプッシュ配信を行う。このクラスの1つ1つのpublicメソッドが、クライアントから直接呼び出し可能なメソッドとなります。プッシュ配信のときと同様、メソッドの引数や戻り値に設定できるのはStringなどの基本型かDTOクラス、またはその配列やListだけなので注意して下さい。* 全てのフィード情報を返します。//フィード情報テーブルの全ての情報を取得して返す。
//(ソート順にはフィードIDの昇順を指定する)
* 全てのエントリ項目を返します。//エントリ項目テーブルの全ての情報を取得して返す。
//(ソート順にはフィードIDの昇順とエントリIDの昇順を指定する)
* フィード情報を追加します。
//すでに同じURLのデータが登録されていないかチェック
//フィード情報テーブルにURLが一致するデータが存在する場合
//nullを返して以降の処理を行わない。
//フィードを取得
//取得ろするフィードのURLオブジェクトを作成する。//フィードを取得する。//例外を投げ直す。//取得したフィードの情報をDBに登録する。//取得したフィードの情報をフィード情報テーブル用Entityに詰め直す。
//Entityの情報を元にしてエントリ項目テーブルに登録
//登録したフィード情報を返す。* フィード情報を削除します。クライアント側の全てのソースに対して解説すると長くなってしまうので、このページでは技術的に重要なポイントに絞って解説しています。具体例として掲載しているソースはわかりやすくするために編集していますので、今回のアプリケーション内部で実際に記述されているソースとは若干異なる点がありますが、ご了承下さい。今回のアプリケーションは、以下の図のように画面のパーツごとにmxmlファイルを分割しています。各パーツの役割は以下の通りです。
mxml - 今回のアプリケーションのメイン画面
mxml - フィードの一覧のリストを表示するパーツ
mxml - エントリの一覧のデータグリッドを表示するパーツ
サーバー側の処理の呼び出し
今回のアプリケーションでは、クライアント側からサーバー側の処理を呼び出す仕組みとして、S2BlazeDSを使ったRPC(リモートプロシージャコール)を行っています。
具体的には、リモートオブジェクト(mx
RemoteObject)クラスを使ってサーバー側で定義したサービスクラスのメソッドを呼び出します。今回、実際に設定している値は以下の通りです。リモートオブジェクトを使って実際にサーバーのメソッドを呼び出す処理は、必ず非同期処理となるので、結果を受け取るイベントハンドラ関数を別途用意する必要があります。
リモートオブジェクトにイベントハンドラ関数を関連づける方法としては、イベントリスナーを設定する方法と、レスポンダ(mx
Responder)クラスを使用する方法の2種類がありますが、今回は後者のレスポンダクラスを使用する方法を採用しています。イベントリスナーを設定する方法では、1つのリモートオブジェクトに対して1つのイベントハンドラ関数しか設定できないため、サービスクラスに複数のメソッドが存在する場合は不都合が生じます。一方、レスポンダクラスを使用する方法では、リモートオブジェクトのそれぞれのメソッド呼び出しに対して別個のイベントハンドラ関数を設定することができます。
//サーバーのサービスを呼び出すためのリモートオブジェクトのインスタンスを生成
//リモートオブジェクトのエンドポイントのURLを設定
//リモートオブジェクトを使って、サーバーのフィード情報を追加する処理を呼び出す。
//(サーバー側のメソッドと同じシンタックスでメソッドを呼び出す)
//成功時と失敗時に呼び出す関数を割り当てる。* サーバーのサービスのフィード情報を追加する処理の呼び出し成功時のイベント処理を行います。
//何らかの処理
* サービス呼び出し失敗時のイベント処理を行います。
//何らかの処理
サーバー側からプッシュされるデータの取得
クライアント側で、サーバー側からプッシュされるデータを取得するには、コンシュマークラス(mx
コンシュマークラスを使うためには、リモートオブジェクトクラスの場合と同じように、宛先や通信先のサーバーを設定する必要があります。ただし、リモートオブジェクトクラスで通信先のサーバーを指定する場合はエンドポイントを設定したのに対して、コンシュマークラスではチャネルセットを設定する点が異なります。Channel)クラスをまとめるためのクラスで、チャネルクラスに実際に通信先のサーバーのURLを指定することになります。MESSAGE)」イベントに対するイベントリスナーをあらかじめ設定しておく必要があります。ここまでの設定は下準備で、最終的にサーバー側からプッシュされるデータを受け取れるようにするためには、コンシュマークラスのsubscribe()メソッドを呼び出して、サブスクライブ状態にする必要があります。具体的な例を挙げると、ローカルサーバーの宛先「rss」からプッシュされるデータを取得するためのソースは以下のようになります。
//サーバーからのプッシュ配信を受け取るためのコンシュマークラスのインスタンスを生成
//チャネルセットのインスタンスを生成
//ストリーミング用のチャネルを生成してチャネルセットに追加
//ポーリング用のチャネルを生成してチャネルセットに追加
//コンシュマーオブジェクトにチャネルセットを設定
//コンシュマーオブジェクトのメッセージ受信時のイベントリスナーを設定
//コンシュマーオブジェクトをサブスクライブ状態にする。* サーバーからのプッシュ配信を受け取るためのコンシュマーオブジェクトがメッセージを受信した場合のイベント処理を行います。
//何らかの処理
オンライン・オフライン状態の監視
URLMonitorクラスを使うためには、監視対象のURLと、サーバーをポーリングする間隔(監視間隔)を指定する必要があります。STATUS)」イベントに対するイベントリスナーをあらかじめ設定しておく必要があります。ここで注意する必要があるのは、このイベントは監視間隔の時間が経過する度に発生するのではなく、あくまでもステータスが変化した場合のみ発生するという点です。具体的な例を挙げると、ローカルサーバーのオンライン・オフライン状態を監視するためのソースは以下のようになります。
//サービス呼び出しに使うリモートオブジェクトのURLを監視対象にして、URLMonitorのインスタンスを生成
//監視間隔を5秒にする。* サーバーと接続可能かチェックするためのURLMonitorのステータス変化時のイベント処理を行います。
//使用可能な場合
//(オンライン状態の場合)
//何らかの処理
//使用可能でない場合
//(オフライン状態の場合)
//何らかの処理
今回のアプリケーションでは、クライアント側のデータベースアクセスには特別なフレームワークなどは使用せずに、AIR標準のflash
dataパッケージのクラスのみを使用しています。ただ、データベースに関する処理を分散させるとプログラムがわかりにくくなってしまうので、クラス構成としてはテーブル単位でDAOクラスを作って、そこでのみSQLを実行するようにしています。
なお、今回のアプリケーションでは、アプリケーションのプライベート記憶領域(File
db」という名前でデータベースのファイルを作成しています。クライアント側のデータベースは、サーバー側とは異なり同時に1ユーザーしかアクセスしないため毎回コネクションを取得し直すよりも、同じコネクションを使い回す方が効率的です。そのため、今回のアプリケーションではコネクションは初期化処理で取得して、アプリケーションの実行中はずっと保持するようにしています。その他、初期化処理ではサーバー側と同様に、テーブルがまだ存在しない場合のみテーブルを作成するSQLを実行しています。
動的なSQLの組み立て
今回のアプリケーションでは動的なSQLを組み立てる際に、flash
これは、プログラムをわかりやすくするためだけではなく、SQLインジェクション攻撃を防ぐためにも効果的な方法で、リファレンスガイドでも推奨されている方法です。
埋め込むパラメータの形式としては「
」を使った形式ではなく、「:パラメーター名」を使った形式を使用しています。」のインデックスに対応する値を関連づけます。一方、「:パラメーター名」を使った形式は、そのままパラメーター名に対応する値を関連づけます。
「:パラメーター名」を使った形式は「
」を使った形式に比べて、以下のようなメリットが得られるのでお奨めです。プログラムがわかりやすくなる。後からSQLが変更されてもインデックスが変更される心配がない。同じ値を設定するパラメーターが複数あっても、値を関連づけるのは一度で済む。「:パラメーター名」を使った形式でSQLを実行する具体的なソースは以下のようになります。
検索結果を結果の型を指定して取得
今回のアプリケーションでは、SELECT文を実行する際に結果の型を指定している箇所があります。
//(ここで指定するのは、インスタンスではなく、クラスそのものなので注意)
//検索結果の取得
//結果が取得できた場合
//実行結果のデータが入った配列を返す。
//結果が取得できなかった場合
//空配列を返す。今回のアプリケーションでは、更新系のSQLを実行する際には、全てトランザクションを切って行うようにしています。これは、複数のレコードを更新する時に途中でエラーが発生した場合も、データの一貫性を保つことができるようにするためです。また、トランザクションを切らないと、非常にデータベースの更新が遅くなるのでそれを回避するという意図もあります。これは、SQLiteのようなファイルデータベースの特性として、コミットのタイミングで実際にファイルへの書き込みが行われるためです。トランザクションを切らないと、1レコードずつコミットが行われるので、その都度時間がかかるファイルへの書き込み処理が行われてしまい、実用に耐えないレベルの遅さになってしまいますので注意して下さい。トランザクションはコネクションクラスのbegin()メソッドによって開始され、コミットを行うcommit()メソッド、もしくはロールバックを行うrollback()メソッドによって終了します。トランザクションを切って、更新系のSQLを実行する具体的なソースは以下のようになります。//トランザクションを開始する。//ここで何らかの更新系のSQLを実行する。//トランザクションをコミットする。
//例外が発生した場合
//トランザクションをロールバックする。これ以外にも、AIRでは既存の行が上書きされる「INSERT OR IGNORE」(REPLACE INTOも同様)といった便利な非標準のSQL構文が用意されていますので、一度は以下のリファレンスガイドのページに目を通して、どのようなSQL構文がサポートされているかを把握しておくことをお奨めします。本サンプルはシングルユーザーがローカルで動作させることを前提としています。以下の点を拡張すると本格的なRSSリーダーになると思います。
アカウント機能を追加して、ユーザごとにフィードを管理
フィードにカテゴリの情報を追加
登録されているフィードのランキングなど
起動時にサーバーのフィード情報を取得する処理の効率化(全データを取得するのではなく差分だけを取得するようにする)
興味がある方は、ぜひチャレンジしてみて下さい。
著者について
最近はRIA・仮想化・グリッドを中心に、システムの構築、設計、実装まで何でも行っています。これからは弊社のオープンソースプロジェクトや社内技術文書以外にも公開していく予定です。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
現在持っているWebアプリ関連スキルをRIA方面へ伸ばすため日々奮闘中
デモアプリケーションについて
デモアプリケーションの試し方
印刷用に表示
この記事では、BlazeDSのメッセージングを使用するデモアプリケーションとして、複数ユーザで同時に書き込めるホワイトボードを例に、機能を説明します。この文書では、次の経験があることを前提として記述していますが、基礎的な知識があれば十分です。
サンプルファイルのダウンロード(著者について
自身がFlexでの開発を始めるにあたりおこなった作業のログというかたちで、手順をまとめさせていただきました。環境構築から記載しておりますので、これからFlexをさわり始めるみなさまの参考となれば幸いです。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
Flexデベロッパーダービー*には、魅力的かつ斬新なアプリケーションの応募が多数寄せられました。Flex 2の可能性をご提示くださったコンテスト応募者の皆様には、この場を借りて御礼申し上げます。Flexに触れるのが初めての方は、別途記事のFlex 2: 次世代のリッチインターネットアプリケーションの実現、またはFlex 2ホームページを参照して、Flexの詳細をご覧ください。コンテストの審査にあたっては、デベロッパーコミュニティの(アドビ社外の)主要メンバーを審査員としてお迎えし、 以下の項目を基準にして、ポイント制で各応募作品を評価しました。ここでは各カテゴリの受賞作を紹介するとともに、受賞作品となったFlexアプリケーションへのリンクをまとめています。このカテゴリは、提供商品・サービスのカスタムオーダーや絞り込みが可能であり、この際、ユーザが所定の手順を追うごとに、画面表示と関連データを変化させることで、よりスムーズに適切な商品・サービスへとユーザを導くことができるアプリケーションを対象としています。Home Locatorは直感的な操作感を持つ不動産物件検索アプリケーションです。ユーザは、クリック操作で米国地図上の検索エリアを指定し、表示される検索結果を価格、寝室数、洗面室数などといった条件で絞り込むことができます。
このアプリケーションを体験する*
このカテゴリは、コンポーネントやインターフェイスガジェットを直感的かつ適切なかたちで利用して、DHTMLや標準的なWebアプリケーションのユーザビリティを高めることが可能なアプリケーションを対象としています。グラフィカルな実行プラン、構文のハイライト、テーブルの直接編集、タブ形式のクエリウィンドウ、オブジェクトブラウザなどの機能を搭載しています。このカテゴリは、複数のアプリケーションやデータベースといった様々な構成における分析を促進する、ビジネスプロセスやビジネスインテリジェンスのスナップショットに対するリアルタイムで視覚的な画面表示を提供するアプリケーションを対象としています。このカテゴリでは、アプリケーションの使いやすさはもちろんのこと、レポート作成が必要なビジネスユーザの使用を想定して、ビューを保存・印刷できることも重視されました。StatPodsはWebサイトの訪問数、ページビュー、セッション追跡、利用ブラウザ・プラットフォームなどの情報を視覚的に提示するダッシュボードです。StatPodsは日別または月別の複数のデータセットを読み込める、比較ビューを搭載しているのが特徴です。
このアプリケーションを体験する*
このカテゴリは、複数のソースからコンテンツを取得し、これらを新たに組み合わせて作成するアプリケーションを対象としています。コンテンツの取得元としては、一般公開されたAPIやRSS・Atomなどのデータフィードが利用されています。comと公共図書館システムを組み合わせたマッシュアップです。comのコンテンツと公共図書館システムの情報を統合的なインタフェースに集約して、リッチなブラウジング体験を愛読家に提供することを目的に開発されています。
このアプリケーションを体験する*
このカテゴリは、特定の目的を達成するために、2人以上のユーザがリアルタイムに、そして相互の状況を把握しながら共同作業することができるアプリケーションを対象としています。ユーザ間のコミュニケーション手段として、オーディオ、ビデオ、テキストに対応することが要件とされました。
このアプリケーションを体験する*
その他のクールな作品(別名、ワイルドカード)
このカテゴリは、以上のどのカテゴリにも属さないアプリケーションを対象としています。
このアプリケーションを体験する*
我々は、デベロッパーの方々がFlex 2で開発する、素晴らしい作品をいつも楽しみにしています。皆さんのアプリケーションをショーケースギャラリーで取り上げることを希望される場合は、以下の情報を明記して、こちらよりご応募ください。
アプリケーションの説明:
アプリケーションデモのURL:
注意事項:現在、弊社のサーバに、皆様からお寄せいただくアプリケーションデモをホスティングすることはできません。コンパイル済みアプリケーションをご自分のサイトにパブリッシュして、弊社にそのURLをご提供ください。なお、アプリケーションのソースをご提供いただく義務はありません。しかし、アプリケーションがどのように開発されたかを公開し、デベロッパーコミュニティに貢献することを希望する場合は、Flex 2アプリケーションコンパイル時にメニュー項目の「View Source」を有効にし、サーバにソース表示のための出力がパブリッシュされるようにしてください。
著者について
この記事は、アドビ システムズ社の著作物です。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
1パブリックプレリリースの概要
1パブリックプレリリース*は、コンテンツクリエーターの皆様にとって、画期的なツールです。1では、このクロスプラットフォーム路線をさらに推し進め、コンピューターの電源がオフであっても、ラップトップが閉じられていても、顧客とのコミュニケーションを継続することを可能にします。1の開発に取り組んできました。これらの機器で、Flash Playerのインストールおよびアップデート、またブラウザーでのSWFコンテンツの表示が、デスクトップと同様に可能になります。アドビは、完全版のFlash Playerをモバイル機器で使用できるようにするほか、デスクトップでもモバイル機器でも活用できる新機能の開発にも精力的に取り組んできました。この記事では、これらの新機能をご紹介するほか、Flash Playerがモバイル機器でも動作するようにどのように最適化されているかについてもご説明します。
皆様にとって、ここで挙げている各機能はアプリケーションの強化にどのように役立つでしょうか
プレーヤーが浸透する前に、できるだけ早期にこれらの機能を取り入れることをお勧めします。1を同じように認識します。1を持っている場合にのみ新機能を提供する条件を使用している場合、ユーザーが絶対的最新版のプレーヤーを持っていなくても拡張機能を追加できます。
コミュニティからの情報提供
コミュニティからの参加規模に社員一同感謝しております。また、コミュニティ発のご要望にも誠実に対応しています。
グローバルなエラー対応
バグ対応の立ち上げとほぼ同時に、3人のユーザー様から、同じ機能のご要望をいただきました。このことから、この機能が現在最も必要とされている機能であると受け止めました。1では、他の方法では捕らえられない各エラーを捕捉する、単一のグローバルエラーハンドラーを作成することができます。グローバルエラーハンドラーには、デベロッパーの皆様にとって、2つの重要なメリットがあります。第1のメリットは、開発プロセスにあります。すべてのエラーに関するデータを収集する、単一の関数を作成できるのです。リリース版プレーヤーが入っているユーザーのマシンでアプリケーションが実行されているときでも、データをサーバーに送り返すことが可能です。この方法により、テストプロセスでは発見が困難なバグの情報を収集することができます。また、グローバルエラーハンドラーの第2のメリットは、副次的ながら、ユーザーの皆様にとっての快適さを高めるものです。現在、デバッグプレーヤーをインストールしている場合は、捕捉されないエラーが発生した場合にポップアップメッセージボックスが表示されるようになっています。グローバルエラーハンドラーを追加すると、このポップアップメッセージボックスは表示されなくなります。
マイクロフォンの使用
このAPIは、MP3ファイルからwaveデータをバイナリ形式で抽出し、同等のバイナリデータをサウンドバッファーに送信するものでした。これらの機能はすぐに活用され、優れた作品が多く生まれました。その後間もなくいただいたご要望が、マイクロフォンデータの使用に関するものでした。マイクロフォンデータを使用して、エンターテインメント、コミュニケーション、および生産性アプリケーションを開発する方法について、優れたアイディアが寄せられました。1では、現在MP3ファイルから取得しているのと同じ種類のデータにアクセスできます。ただし、データソースはマイクロフォンです。現時点では、この新しいAPIの提供は、デスクトップコンピューター向けのみとなっています。
デベロッパー向け機能
皆様の多くは、新機能を使用した実験的プロジェクトを経て、これまでにない表現力を持つ新機能のほか、ビデオおよびネットワークの拡張機能、新たなテキストエンジンを活用した商用コンテンツの作成を既に開始されたことと思います。最近まで、コンピューターのユーザーインターフェイスにはあまり変化がありませんでした。ユーザーが使用するものは、キーボードとマウス、またはこれと同等のものでした。多少の変化が起こったのはモバイル業界でした。モバイル機器の操作において、新たな技術が試みられたのです。この試みで得た多くの知見がデスクトップに徐々に持ち込まれるようになってきた今、アドビはこれらの革新を主流へと押し上げようとしています。また、プレーヤーのサポートも同様に、モバイル機器に拡大されています。これには、デスクトップに主眼を置くユーザーにとってもメリットがあります。この数年間で最も刺激的なユーザーインターフェイスの改善のひとつに、マルチタッチがあります。マルチタッチは多くのモバイル機器やWindows 7でサポートされています。Flash Playerでもマルチタッチジェスチャーを使用しているほか、ユーザーに低レベルのタッチ情報を提供して、独自のマルチタッチインタラクションの作成を可能にしています。使用するマルチタッチのタイプは、構築するアプリケーションの種類によって異なります。今のところ、ジェスチャーのサポートによってメリットがあるのは、マウスベースのアプリケーションのみのようです。オペレーティングシステムが特定の動作(つまみなど)を認識し、対応するアクション(拡大など)に変換します。Flash Playerはこのアクションを実行し、拡大などのエフェクトを実行するデータを受信します。現在のオペレーティングシステムでサポートされているジェスチャーをFlash Playerで確認して、アプリケーションが対応できるように準備することもできます。皆様もご存知のように、アドビは、Flash Player向けの機能を構築する際、使いやすいシステムの提供に努めるほか、多くの場合、より強力な低レベルシステムと組み合わせることで、必要とされているあらゆるものを構築する方法を探ります。マルチタッチでも同様に取り組んだ結果、導入したのがタッチポイントイベントです。選択によって、ジェスチャーのサポートを無効にし、マウスイベントとよく似たイベントを有効にすることが可能です。指先で画面に触れるたびに、イベントが発生し、タッチが発生した位置に関するデータのほか、タッチの境界ボックスの座標やタッチの圧力レベルなど、特定のオペレーティングシステムで提供されるデータが取得されます。この情報を使用して独自のジェスチャーを構築することもできます。しかし、タッチポイントイベントを使用する最も一般的な状況は、マウスの使用も可能であるものの、本当は複数のインタラクションポイントが欲しい場合であるとわかりました。例えるなら、これはピアノの鍵盤で一度に複数の鍵を押したり、指絵の具アプリケーションでそれぞれの指に違う色やブラシを割り当てたりするようなものです。モバイル機器のユーザーインターフェイス機能として、加速度計も一般的になりました。加速度計によって、電話機の傾斜や振動を認識することができます。機器の状態を感知し、それに応じて反応できるので、機器がより使いやすくなるほか、ゲームなどの多くのアプリケーションでは、主要ユーザーコントロールとして使用されています。1で提供される機能です。画面方向付けAPIを使用すれば、画面でブラウザーがどの方向を向いているかを認識し、アプリケーションが必要に応じて反応できるようにすることが可能です。さらに、加速度計から未加工データを取得し、それを使用して必要なコントロールやシェイクジェスチャー(端末を振る動作)を作成することもできます。多くのラップトップには加速度計が付いていますが、Flash Playerが対応するデスクトップオペレーティングシステムには、このデータにアクセスするためのAPIがありません。1では、加速度計へのアクセスはモバイルのみの機能になります。もちろん、デスクトップで実行するSWFファイルに加速度計のためのコードを追加することは常に可能です。SWFファイルをデスクトップや加速度計のない機器で実行しても、イベントは呼び出されません。
テキストとグローバル化
0で新しいテキストエンジンを導入したとき、活字と様々な言語タイプについてご説明しました。1でも、テキストエンジン全体の改善と高速化を継続しました。ほとんどの改善点は、Flash Player 10でリリースしたテキストレイアウトフレームワークライブラリの使用を通じて、ユーザーに意識されることなく提供されます。テキストレイアウトとレンダリングの改善に加え、新しいグローバル化APIにもアクセスできます。主に使用する言語が1つの場合、他の多くの言語で情報が扱われる方法が異なることを忘れがちです。例えば、日付、時刻、通貨の情報には、様々な形式があります。リストをアルファベット順に並べ替える場合、特定の言語のルールに基づいて、求める結果が異なることもあります。Flash Playerでは、新しいグローバル化機能によって、オペレーティングシステムの設定で選択されている値を使用してテキストやリストを処理できます。また、オペレーティングシステムで現在設定されていなくても、特定の形式を使用することも可能です。なお、この新機能は、現在作成済みのものには影響しません。グローバル化APIを使用するには、明示的に利用する必要があります。グローバル化APIにより、対象ユーザーに合わせた形式で情報を表示できます。ただし、アプリケーションによっては、情報の表示方法を統一した方がよい場合もあります。
メディアの再生
この高い使用率は、急速な進化と成長を続ける業界に新たなコーデック、導入オプション、サービス品質の向上によって対応してきた賜物です。1でも、新しいメディア機能の加速を継続し、コンテンツの配信、双方向性、保護に重点を置いています。
表示を一定のレンタル期間に制限するなど
柔軟な使用ルールを設定して、メディアへのアクセスを制御できます。1では、業界標準の暗号化方式を使用して、コンテンツ保護のための堅牢な環境を実現します。コンテンツはライフサイクル全体にわたって、改ざんや乗っ取りから保護されます。これによって、コンテンツプロバイダーはアナログおよびデジタル出力の保護のための要件を指定し、不正な記録に対する追加保護策を講じることができます。
ストリーミングに関する改善
1では、HTTPストリーミングでビデオを読み込むことも可能になります。これによって、ビデオを取得して多数のフラグメントに変換し、Flash Playerが新しいコンポーネントを使用して個々にダウンロードすることができます。これらのフラグメントはWebサーバーに保存できるため、専用サーバーは不要です。この方法だと、プログレッシブでの読み込みより、ビデオに対するランダムアクセスの量が多くなります。ただし、ビデオの展開を最大限に効率化するには、やはり完全なストリーミングが最適です。接続が再度確立されると、切断した箇所からのバッファー処理が新しい接続で継続されるため、ビデオには中断が発生しません。1では、ユーザーによる制御をさらに強化し、プレーヤーでビデオを再度バッファー処理することなく、既存のバッファー内での検索が可能です。例えば、新しい追跡バッファーによって、閲覧したビデオがメモリに保存されます。これによって、見落とした部分に戻るための待ち時間が解消されます。これは、チャット、会話、Webカメラの使用、他の参加者へのデータ送信ができる共同作業アプリケーションを可能にするものでした。1では、これがさらに細かくなり、グループに対応できるようになりました。現在、2人のユーザー間でメッセージを送信できるだけでなく、ユーザーグループを作成することが可能になっています。直接ピア接続による1対1のコミュニケーションも引き続き可能です。グループを使用することで、ネットワークをより効率的に使用できるほか、データを必要とするユーザーのみに渡すこともできます。
モバイルに最適な設計
1は多くの機能を備えています。新しいAPIを使用してコンテンツを作成すれば、それらの機能に触れることができます。このリリースの改善点のほとんどは、ユーザーが直接アクセスする部分の改善ではありませんが、そのメリットは感じていただけるはずです。アドビは、Flash Playerをデスクトップコンピューターからネットブックやモバイル機器へと展開するにあたり、メモリや処理リソースに制限があるテクノロジーに足を踏み入れました。「Webはただ1つのみ」という信念を貫き、Flash Playerの高い一貫性をすべてのプラットフォームで提供するためには、すべきことは1つだけでした。Flash Playerを可能な限り最適化し、コンテンツの邪魔をしないようにするということです。メモリの割り当てを減らし、革新的なメモリ共有方法を編み出して、できるだけ専用ハードウェアを利用することで、コンテンツが最大限のメモリとプロセッサーを使用できるようにしたのです。コンテンツはデスクトップコンピューターで再生されることを前提として最適化されている可能性があります。アドビは、テクノロジーの差異を埋めるために最善を尽くし、デスクトップにできるだけ近い品質でアプリケーションを実行できるようにしていきます。ビデオコンテンツの場合、これはハードウェアの高速化を意味します。264およびAACメディアのデコードと再生をできるだけハードウェアで実行します。プログレッシブビデオの場合、大容量ビデオをメモリに保存することはできないため、循環バッファーを自動的に使用してビデオを徐々に読み込んで部分的に再生した後、ビデオの再生とダウンロードを続行しながら、再生済みの部分をメモリから削除します。このバッファーは、プログレッシブバッファーがメモリ4 MBに達した時点で使用されます。べクトルやイメージの場合も、モバイル機器のハードウェアの機能をできるだけ利用します。ベクトル図面は、テッセレーション(三角形に分割)してGPUに送信できるようになっています。また、多数のイメージの読み込みおよび消去時のメモリを改善したほか、可能な場合はイメージも高速化します。その他にも、コンテンツを快適に再生するための小さな改善を数多く行いました。しかし、今後、モバイル機器で使用可能な容量を超えるメモリが必要なコンテンツが登場する可能性もあります。システムをどれほど最適化しても、Flash Playerは、デベロッパーの皆様が各種アプリケーションを作成するために使用するプラットフォームにすぎません。結局、各種データが一定容量のRAMを消費するのは、不変の事実です。複雑なアプリケーションでは、使用可能な容量を超えるメモリが必要となる可能性があります。1には、リソース不足に陥ることを防止し、もしリソースが不足する事態になっても、ユーザーに不便を感じさせないための新機能が加わっています。様々なSWFファイルが存在するWebページがある場合、Flash Playerはリソースのある限りできるだけ多くのプレーヤーインスタンスを起動します。使用可能なリソースが少なすぎる場合、新しいプレーヤーインスタンスが起動される代わりに再生ボタンが表示され、ユーザーはこのボタンでインスタンスをアクティブ化します。また、画面に表示されていないSWFファイルはデフォルトで無効になっています。これらの機能は自動的に動作しますが、読み込みの優先順位が最も高いコンテンツがどれかを示すヒントを提供するため、デベロッパーコントロールを追加しました。HTMLで、あるSWFに最も高い優先順位を指定すると、そのSWFが最初にアクティブ化されます。他のすべてのSWFはHTMLページの読み込みが完了するまで待機し、その時点で優先順位が決まります。同様に、画面には表示されないことが多いものの、アクティブ化しておく必要があるSWFがある場合は、そのSWFの優先順位を高く設定してアクティブな状態を維持します。これらの対策を取っても、システムでメモリ不足が発生した場合、Flash Playerはプレーヤーインスタンスをシャットダウンしてメモリを解放し、プレーヤーやブラウザーがクラッシュしないようにします。多くの場合、シャットダウンされたSWFファイルは、後で再開できるように再生ボタンに置き換えられます。しかし、共有メモリに問題があるような場合は、アプリケーションが不安定にならないように、すべてのプレーヤーインスタンスのシャットダウンが必要となります。その場合もページは維持され、ページをリフレッシュするとSWFファイルが回復します。
次のステップ
1によって、Flash Playerがモバイル機器にも広がるほか、モバイルへの移行による直接的な成果である革新や最適化がデスクトップにもたらされます。1バプリックベータ版の提供を開始するにあたり、皆様にぜひ各機能を知っていただき、Flash Player 10向けの既存プロジェクトでこれらを活用する方法をご検討いただきたいと思います。皆様がコンテンツの対象となり得る新たなプラットフォームとしてモバイル機器を検討する際は、コードを最適化する方法だけでなく、ユーザーが機器をどのように操作するのかを考えてみてください。モバイル機器での使用感を最高のものにするには、デスクトップでの操作との一貫性を持たせるとともに、新しい設定を利用して、さらに有意義な方法で情報を提供することが重要です。詳しくは、以下を参照してください。
1のプレスリリースを読む*
1最新機能について詳しく見る*
1パブリックプレリリースのデモとインタビュー*
1でのビデオおよびグラフィックのためのハードウェアの高速化*
著者について
でFlashプラットフォームマネージャーとして、同社を取り巻く資産を活用してリッチインターネットアプリケーション開発に適したオプションを検討する仕事をしていました。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用規約およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
Astroのダウンロードを終えたら、いよいよ最新情報をお伝えしましょう
私達のもとには、デザイナーやデベロッパーの皆さんから、そしてアドビの社員からも、機能に関する要望が数多く寄せられています。私は、そうした中から採用する機能を選ぶ楽しみを味わう一方で、つらいことですが次期リリースまで採用を見送らなくてはならない機能も決定する必要があります。素晴らしいご意見が多数あるため、採用する機能も見送る機能も、かなり長いリストになります。では、どんな機能が最も採用されやすいかといえば、それは新しい可能性を開拓するようなものです。例えば、要望が多い機能として、新しいグラデーション、新しいフィルタ、新しいブレンドモードといったものがあります。ユーザが達成したい目的はそれぞれ違っていて、円錐形の塗りつぶしが一番欲しいという人がいれば、向きを指定したぼかし機能がぜひ必要だという人もいます。要望があまりに多いので、正直な話、1つ1つ対応していたらFlash Player 10の作業はフィルタの追加だけで終わってしまいそうでした。おかげで、塗り、ブレンドモード、フィルタをデザイナーが独自に作成できる機能が実現し、あらかじめ Flash Playerに作り込む必要がなくなりました。たった1つの機能で、実質的に無数のフィルタに対応できたわけです。ユーザに次期リリースを待っていただく必要も、Flash Playerを肥大化させる必要もありません。私達としても、製品の土台となるテクノロジを強化する作業に全力を注ぐことができます。土台がしっかりすれば、クリエイティブユーザの皆さんは、Flash Playerのリリース時期に拘束されることなく、いっそう多くの強力なフィルタを作成できるようになります。数値計算処理もでき、また、他の機能と連携させてオーディオフィルタを作成することも可能です。Pixel Benderを初めて皆さんにご紹介した時点で、以上の機能はすべて備わっていましたが、コミュニティではさらに私達が想像もしなかった機能拡張が行われています。Flash Player 10の新機能はいずれも、マルチタスクに対応し、クリエイティブツールのレパートリーに取り入れて柔軟に使えるように作られています。このことを頭において説明をお読みください。皆さんの活用方法を見せていただくことが楽しみでなりません。クリエイティブ表現は、Flashが誕生して以来の基本テーマです。その後、アプリケーション開発、ゲーム、ビデオとFlashの利用分野は拡大しましたが、コンテンツの種類が何であってもデザインとエクスペリエンスが重要であるという事実に私達は取り組み続けています。ここでは、ユーザとのインタラクティブなやり取りをいっそう充実させ、直感性を向上するために役立つ新機能をご紹介します。2D空間における既存のインタラクティブ処理を維持したまま、あらゆる2Dのディスプレイオブジェクトに3D空間内での変形処理やアニメーション処理を簡単に加えることができます。アプリケーションに3Dエフェクトを取り入れ、クリエイティブな可能性を広げるのに役立ちます。簡単なコーディングで、3D変形処理を施したオブジェクト同士をネストして複雑な効果を作成できます。継承機能により、わかりやすい方法で多数のオブジェクトに対する変更をすばやく適用できます。低レベルの3D操作が必要な場合や、コミュニティで開発された3Dエンジンを使用する場合のために、Flash Player 10では、三角形の集合によって複雑な形状を描画し、UV座標を使ってテクスチャマッピング処理を実行する機能が描画APIに追加されました。次のビデオでは、手軽に使える新しい3Dエフェクトの一部をご説明します。このコンテンツを視聴するには Flash が必要です。
カスタムフィルタとカスタムエフェクト
カスタムフィルタやカスタムエフェクトは、従来からあるFlash Playerネイティブのフィルタと組み合わせて、あらゆるディスプレイオブジェクト(ベクトル、ビットマップ、ビデオを含む)に適用できます。これによってインタラクティブ性が失われることもありません。カスタムエフェクトにはパラメータを与えることができ、これによって実行時にアニメーションやエフェクトの変化を実現できます。たとえ作成するエフェクトの規模が大きくても、大量のコーディングは必要ありません。ほとんどのフィルタは1Kに満たないコード量で実現できるため、アプリケーションが肥大化せず、ファイルサイズの要件が非常に厳しい場合にも対応できます。Pixel Benderは、イメージのフィルタやエフェクト以外の情報処理にも利用できます。サウンド関連の新機能を使えばリアルタイムのオーディオフィルタを作成できます。また、単純に別スレッドでPixel Benderの強力な数値処理エンジンを使って非同期のデータ処理を実行してもかまいません。このコンテンツを視聴するには Flash が必要です。
新しいテキストエンジン
TextFieldとは別に新設された、高度な柔軟性を備えるテキストレイアウトエンジンは、低レベルのレイアウト操作を行う機能や、コンポーネントレベルのテキストオブジェクトを作成するインタラクティビティAPIによって、テキストコントロールの作成作業に革新をもたらすものです。デバイスフォントの取り扱いに関する概念が高度化されたことで、組み込みフォントと同じ感覚でアンチエイリアスや回転の処理、スタイルの指定、フィルタの適用ができ、クリエイティブ表現の自由度が高まりました。また、右から左向きに書く言語や縦書きのテキストレイアウトにも、合字などのタイポグラフィ要素にも対応しています。次のビデオでは、以前から要望のあったテキストレンダリングを実現するFlash Player 10機能の一部をご紹介します。このコンテンツを視聴するには Flash が必要です。
描画APIの機能拡張
三角形のサポートやPixel Benderを使った操作などの新機能により、描画APIは大幅にパワーアップしています。また、描画API呼び出しを効率化するためのAPIを追加し、コード量の削減と描画エンジンの大幅な高速化を実現しました。次のビデオでは、描画APIに関する機能拡張の一部をご説明します。このコンテンツを視聴するには Flash が必要です。
映像パフォーマンスの向上
0バーチャルマシン(AVM)の導入によって劇的なスクリプト実行の高速化が実現されました。その上で、Flash Player 10では、RIAやリッチメディアエクスペリエンスの映像パフォーマンス向上という同じく重要な改良に取り組みました。イメージの転送や合成にGPUの機能を活用したことで、CPUの負荷が軽減され、重いグラフィック処理を実行するアプリケーションの多くが高速化されます。これにより、いっそうスムーズでリアルな、応答性に優れたユーザエクスペリエンスを実現できます。次のビデオでは、グラフィックスカードの機能を利用した映像パフォーマンス向上について一部をご説明します。このコンテンツを視聴するには Flash が必要です。新しいモード「direct」では、画面に対するピクセル描画がビデオカードの機能で可能な限り高速に実行され、CPUは他の処理を進めることができます。また、もう1つの新しいモード「GPU」は最新ビデオカード向けで、いっそう多くの変形処理や合成処理がビデオカード上で実行されます。テキストアンチエイリアスエンジンSaffronが更新され、アンチエイリアステキスト(特にアジア言語のレンダリング)についてパフォーマンスと表示品質が向上しました。また、ストロークフォントのサポートによりメモリ使用量が低減されました。これはArrayに似ていますが、格納する要素のデータ型がすべて同じであることを要求する型です。要素の型が一定であるため、Vectorはパフォーマンス面でArrayよりもはるかに優れています。その一部は、今後リリースされるAdobe Flash Media Serverやその他のアドビサーバー製品においてリッチメディアの配信とエンドユーザエクスペリエンスの向上に使用されるものです。
サウンドAPIの機能強化
新しいオーディオAPIにより、アプリケーションレベルでのオーディオ合成や、Adobe Pixel Benderを使ったオーディオフィルタ処理までも実行できます。これは、ネットワーク状況の変化に対応してストリームを自動調整し、常に最適の状態でビデオを表示する機能です。ビデオ再生が途切れ途切れになってユーザの意識がそれることを、ビットレートを変化させて防止します。これにより、ビデオのコンシューマに対して実際の帯域幅の範囲内で最高のエクスペリエンスを提供できます。RTMPビデオストリームのビットレートをネットワーク状況に応じてダイナミックに変化させる機能は、Flash Media Serverの今後のリリースで提供されます。Speexは、従来のNellymoserの代替となる、可能な限り遅延の少ないオーディオエクスペリエンスを提供する高音質の新ボイスコーデックです。
コミュニティからの要望による機能拡張
クリエイティブ表現、映像パフォーマンスおよびリッチメディアに関する新機能の他にも、Flash Player 10にはコミュニティからの要望が多かった新機能や機能拡張がいくつか盛り込まれています。
全画面表示での制限付きキーボードアクセス
制限付きでキーボードを使用できることにより、全画面のゲームやビデオコントロールに対する安全なキーボードアクセスが可能です。
ファイル参照への実行時アクセス
RIA上でユーザによるファイルのロード操作が可能になります。実行時にファイル内容を操作し、終了したら [参照] ダイアログボックスで保存することもできます。実行時にファイルをロードまたは保存するためにサーバー言語を学んだりサーバーにアクセスしたりする必要はなくなりました。
巨大なビットマップのサポート
インタラクティブデザイナーとデベロッパーからいただいたFlash Player 10に対するコメントとFlash Player 10を体験いただけるサイトがございますので、ぜひアクセスしていただきたく存じます。
著者について
でFlashプラットフォームマネージャーとして、同社を取り巻く資産を活用してリッチインターネットアプリケーション開発に適したオプションを検討する仕事をしていました。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用規約およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
この、セキュリティの向上にフォーカスをあてたアップデートには、インターネットからオペレーティングシステムが攻撃を受ける可能性を少なくし、アドウェア、スパイウェア、マルウェアなど悪意あるソフトウェアからユーザーを守るため仕様変更を数多く含みます。しかし、従来のWindowsセキュリティモデルの悪用を封じるために必要とされるSP2の仕様変更は、いくつかのMacromedia製品を含む、安全でなおかつ有用な技術の利用にも間接的に影響を与える場合があります。この記事では、Webデザイナーとデベロッパー、Webサイト管理者、ITおよびコンピュータシステムの責任者、そしてFlash Playerユーザーが留意すべきSP2の変更点について説明します。これにより、開発プロセスとエンドユーザー体験の両方の分野で、SP2がどこに、どのように影響を及ぼすのかを概説することが目的です。
SP2とその影響に関する、より詳細な情報は、以下の記事を掲載しているMicrosoft社サイトから取得することができます:
最も顕著な変更は、インターネットからのダウンロードで入手したソフトウェアのインストール時および起動時に表示される新しいセキュリティ警告ダイアログボックスです。この新しいセキュリティ警告ダイアログボックスの多くは、ダウンロード入手したソフトウェアにデジタル署名がなされていない場合に表示されます。デジタル署名は、ダウンロードされたソフトウェアの信頼性を証明する役割を果たします。各ソフトウェアパブリッシャーは現在それぞれのソフトウェアのためにデジタル署名を申請し、作成している段階ですが、それが完全に終了するまでは、信頼できる多くのソフトウェアであってもダイアログボックスが表示される、移行の時期が発生することになります。ただし、デジタル署名のないソフトウェアであっても、ユーザーはそのソフトウェアのインストールを続行したい旨をクリックで表明し、続行することができます。
ユーザー体験に及ぼす影響の概要
ActiveXアップグレード:SP2の新しいユーザーインターフェイスとセキュリティモデルにより、新しいセキュリティ確認ダイアログボックスが表示されます(デジタル署名がなされていないActiveXコントロールの場合)
注意:SP2自体が、すべての構成ファイルにデジタル署名がなされたバージョンのFlash Player 6を含んで出荷されるため、現行のSP2ビルドを使っているユーザーには上記のダイアログボックスは表示されません。すでにFlash Player 7がインストールされているマシンにSP2を適用した場合もダイアログは表示されません。ポップアップブロック:SP2で新しく導入されたポップアップブロック機構により、新規ブラウザウィンドウが開かない場合があります。ローカルマシンゾーンのロックダウン(封鎖): ローカルで実行されるコンテンツに対するセキュリティ防御が強化されたため、デジタル書名のないActiveXコントロールのような、ローカルに保存されたアプリケーションやプログラムを起動する際に、新しいセキュリティ確認ダイアログボックスが表示されることがあります。
ローカルでコンテンツやアプリケーションを実行する場合:
インストーラおよび実行形式ファイルへのセキュリティ対策: 上記「ローカルマシンゾーンのロックダウン」と同様に、ローカルに保存された実行形式ファイルを起動する際にセキュリティ確認ダイアログボックスが表示されることがあります。
ネットワークを使って通信するアプリケーションを実行する場合:
Windowsファイアウォールセキュリティ: 特定のポートを使って通信を行うアプリケーションは、そのポートの使用を明示的に許可しないと動作しない場合があります。次のセクションでは、 SP2 ユーザーが各々の状況において発生する現象を解説します。これは、ActiveXコントロールやツールバーなどのブラウザアドインをユーザーが管理できる新機能の追加によるものです。現在、ActiveXコントロールのより新しいバージョンを必要とし、アップデートを促すコンテンツを含むWebサイトを表示する際は、新しいActiveXコントロールをコンピュータにインストールして良いかどうか確認を求めるセキュリティ警告ダイアログボックスが表示されます。SP2以降では、ActiveXコントロールのダウンロードを促すコンテンツを表示する際、「情報バー」と呼ばれる新しいユーザーインターフェイス要素が表示されることになります。この金色の情報バーはブラウザウィンドウ上部に表示され、ブラウザがユーザーにセキュリティ関連情報を伝えるための、一貫したメッセージ表示場所となります。ここにメッセージが表示されるだけでなく、関連してカーソル表示の変更やサウンドが発生することもあります。新しい情報バーは、ActiveXコントロールとコンテンツをダウンロードする前に、ユーザーに対してセキュリティ関連の警告を表示します。ActiveXコントロールをアップグレードする際、SP2以降のIEはインストール済みのActiveXコントロールとサーバーからインストールする新しいActiveXコントロール、その両方のデジタル署名とそれが合致するかどうかをチェックし、信頼性を検証するようになります。どちらか一方の、あるいは両方のコントロールにその情報が見つからない、あるいは合致しない場合にWindowsは情報バーを表示します。ユーザーは、メインページの情報バー、あるいはテキストをクリックし、「インストール」ボタンをクリックすることでActiveXコントロールのインストールを開始できます。Macromediaはすでにデジタル署名に対応しており、今後登場するMacromedia製品やプレーヤーでは、ダウンロードし、インストールする際、この新しいユーザーインターフェイスが表示されないように対処します。ただし、すべての構成ファイルにデジタル署名を含まないバージョンのFlash Player 7(2004年5月より前にダウンロードしたもの)の場合、将来新バージョンにアップグレードする際には情報バーが表示されることになります。この場合、ユーザーはActiveXコントロールのアップグレードを許可する手順を経てインストールを行います。ポップアップブロックは、IE以外のブラウザや、広く使われているソフトウェアパッケージの多くに装備されている機能です。中レベルの設定では、ユーザーが関与(ボタンをクリックするなど)しないのに開かれるポップアップをブロックするようになっています。多くのポップアップ広告がこれにあたります。低レベルの設定では、ユーザーが関与しないポップアップであっても、大部分のポップアップが開かれます。一方、高レベルの設定では、セキュアな接続(HTTPS)を介さない限り、ユーザーが関与したポップアップであっても、大多数のポップアップをブロックします。同時に情報バーが現れ、メッセージ部分にポップアップがブロックされた旨が表示されます。同時にそのポップアップだけを表示させるのか、あるいはすべてのポップアップを表示させるのかを選択できます。
情報バーが、ポップアップが抑止されたことを告知しているところ
同時にステータスバーにアイコンが表示されます。Webをブラウズするユーザーへの影響: Internet Explorerブラウザのインストールベースを考慮すると、ポップアップ広告の多くがブロックされると考えられます。また、デザイン的な考慮でメインのWebサイトと別に新規のポップアップウィンドウを開き、コンテンツを表示するMacromedia Flashサイトもブロックされる恐れがあります。
ローカルマシンゾーンのロックダウン
Windowsオペレーティングシステムでのセキュリティ侵害のなかで最も多いのはローカルマシンゾーンで起きるものです。SP2以前では、アプリケーション権限にほとんど制限がありませんでしたが、SP2以降、クライアントサイドでスクリプトやActiveXコントロールを実行する際にInternet Explorerが警告を表示するようになります。Webをブラウズするユーザーへの影響: ローカルマシンゾーンのロックダウンは、Internet Explorerで実行されるローカルファイルだけに影響を及ぼします。つまり、ブラウザ内で実行されるWeb コンテンツの大部分には影響がありません。また、ローカルで実行されるコンテンツの多くはCDやDVDに収録されるプロジェクタとして配布されるため、影響を受けません。コンテンツ制作者がこの制限に対応するための回避策はMicrosoft社サイトで公開されています。Internet Explorerがローカルマシンゾーンのロックダウンを強化したことに関連し、危害を与える恐れのあるファイルタイプを扱うときのセキュリティも強化されています。Windowsは、特定のタイプのファイルとそれがどこから来たのか(インターネットからダウンロードされたのか、電子メールの添付ファイルとして保存されたのか、など)を監視するようになり、それらファイルに対してセキュリティリスクを伴うアクションをユーザーが起こす際に警告を発します。ここで影響を受けるのが、製品やトライアル版をインストールするためにダウンロードされた実行形式ファイル(EXEファイル)です。また、Macromedia FlashやDirectorから独立再生形式として書き出され、インターネットからのダウンロードとして配布されることも多いスタンダローンプロジェクタも実行形式ファイルのひとつです。実行形式ファイルのパブリッシャー(配布および販売元)をデジタル署名によって認証できない場合、ファイルの実行の継続を確認するダイアログボックスが実行を中断します。デジタル書名のない実行形式ファイルは、ユーザーが許可しないかぎり実行されません。Macromediaはこのデジタル署名をダウンロード提供する製品およびトライアル版インストーラに順次追加していきます。すべてのインストーラに対するデジタル署名の追加が完了するまでの移行時期においては、デジタル署名がなされていないインストーラを使用せざるを得ない状況が発生しますが、そのようなインストーラであってもMacromediaサイトから提供されているインストーラはすべて安全に実行できることを確認しているため、安心してご利用いただけます。アプリケーションをダウンロードして起動するユーザーへの影響: 今後Microsoft Windows XPユーザーは、インターネットからダウンロードされた実行形式ファイルの実行など、セキュリティリスクを伴うアクションについてはシステムより警告を受けます。多くのユーザーは、現在でもファイルを実行する際、その入手経路が不明確なものについては実行すべきかどうか自分で判断をしていますが、この新しいセキュリティ警告は、そのような判断を助けるための情報を提供する意味合いがあります。
Windowsファイアウォールセキュリティへの変更
Windowsファイアウォールに施された強化は、オペレーティングシステムをインストールした直後からセキュリティ警戒の強化を行うために役立ちます。インターネット接続ファイアウォールはデフォルトの状態でオンになっており、マシンへの外部からの接続や、ネットワークからの要求を受け取るアプリケーションを遮断します。Microsoft社は、このセキュリティ機能を、サーバーマシンのようネットワークからの要求を処理するコンピュータではなく、外部に対して要求を送り結果を受信する家庭およびビジネス向けコンピュータのために設計しました。このセキュリティ強化により、一般によく使われるアプリケーション、例えばMicrosoft Messengerを含むインスタントメッセンジャー、ファイル転送アプリケーション、P2Pアプリケーション、といったものであっても、サーバーと似た動作(外部からの接続を受け付ける)を行うアプリケーションでシステム警告が表示されることになります。次に示すダイアログボックスは、そのようなアプリケーションをシステムが管理する「例外(Unblocked)」アプリケーションのリストに追加するかどうかをユーザーに確認します。Windowsファイアウォールはアプリケーションがインターネット経由の通信を行ってよいかどうかの確認をユーザーに求めます。ネットワークユーザーへの影響: Windows XPユーザーは、SP2導入直後はセキュリティ警告ダイアログボックスの表示や各アプリケーションのネットワーク通信に対する確認に対処する必要がありますが、必要なアプリケーションの例外リストへの追加などにより、時とともにそのようなダイアログの表示は減少してゆきます。
仕様変更の行われる時期と影響
ダウンロード転送量と、想定されるネットワークトラフィックを考慮し、Microsoft社は全ユーザーに対し即時にネットワーク経由でアップデートするように勧めてはいませんが、インストールCD-ROM配布などにより、今後数ヶ月をかけて多くのユーザーがSP2のインストールを完了することになると予想されます。この期間中、Microsoft社は1億人ほどのユーザーがインストールを完了すると見込んでいます。短期的には、ほとんどのユーザーにとってWebブラウジング体験に大きな変化はありません。Macromedia自身も、SP2へのアップグレード体験がスムーズなものになるように努力を行っています。SP2への移行の初期段階ではいくつかの混乱が想定されますが、WebコミュニティやWebサイト、そしてブラウザがこの移行への対応を完了し終えたときには、プラグインのアップデートがよりスムーズなものとなるだけでなく、Webが真に安全なコミュニケーションや探検の場としてより発展する可能性を得ることになります。
より詳しい情報を得るには
この記事の初頭で紹介したリソースのほかに、以下の情報もご利用ください:
マイクロソフト ヘルプとサポート*
著者について
ワリード・アンバーがFlashの未来を構築し、インターフェイスデザイン、グラフィックアート、ビジュアライゼーションの世界に革新をもたらすためにMacromediaに入る前の4年間、すでに彼の生活はMacromedia Flashを中心に回っていました。子供たちが時々は外に出て遊ぶことができるよう、コンピュータをより効率的にしようと働く彼が、ほとんどオフィスに閉じこもっていなければならないのは皮肉なことです。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
ようこそ、さん
お問い合わせ
ホームユーザ向け写真/ビデオ編集ツール
すべての業種・ソリューション ›すべての製品 ›アドビサポートに問い合わせる。
注文状況の確認
教職員および学生
アドビについて
投資家の皆様へ*
地域・社会への貢献*
お問い合わせ
個人またはホームオフィス
法人のお客さま
教育関係のお客様
おすすめ製品
すべてのソフトウェアを見る ›
購入後について
割引価格でコスト削減
ライセンスをご利用中のお客さま
その他の購入方法
販売店のご紹介
攻撃者はこの脆弱性を突いてシステムを制御することができます。お使いのプラットフォーム用のFlash Playerを最新版にアップデートすることを推奨します。
0以前をお使いの場合、8
0へアップデートしてください。ユーザはFlash Playerを社内イントラネットで再配布したり、ソフトウェア製品やサービスとともに再配布することができます。再配布を許諾する条件の詳細については、こちらを参照してください。次のリンクからダウンロードできます。1 SP1”へは自動的にアップグレードされません。お手数ですが、上述のリンクよりAdd-Inをダウンロードしていただき、手動でアップグレードを行ってください。1 には適用できません。1にアップグレードすることを推奨します。0にアップデートします。ここからダウンロードしてください。
影響を受けるソフトウェアのバージョン
複数のブラウザを使用している場合、それぞれについて確認を行ってください。次の手順を実行して下さい。複数のブラウザを使用している場合、それぞれについて確認を行いインストールしてください。
アドビはこの問題をクリティカルアップデート項目であると分類すると共に、ユーザー各位に対してFlash Player 8
0へのアップデートを推奨します。この脆弱性により任意のコードが実行される可能性があります。脆弱性はユーザのWebブラウザ、電子メールクライアント、Flash Playerを参照するあるいは組み込むアプリケーションを通じ、ネットワークから取得されるコンテンツを用いて攻撃されることがあります。
影響を受けるソフトウェア
推奨するアップデート
本セキュリティ速報に記載されている脆弱性について報告し、弊社のお客様のセキュリティを保護するために貢献されたMicrosoftに感謝いたします。
セキュリティ問題の報告
アドビ システムズ社はセキュリティ問題を深刻に考え、お客様各位に対応策情報を提供しています。
アドビ製品のセキュリティに関する問題であると思われる原因を発見した場合は、PSIRT@adobe
その問題を検討し、対処いたします。
セキュリティ問題に関する情報配信
アドビ システムズ社では、製品およびお客様各位に多大な影響を及ぼすと思われるセキュリティ問題が判明した際には、適宜皆様にその情報を公開いたします。通常この情報は、セキュリティ速報という形式で問題およびその対処方法を解説します。新規に公開されるセキュリティ速報の通知を希望されるお客様は、セキュリティ速報サービスにご登録ください。アドビ システムズ社は、必要に応じて本ドキュメント内の情報を最新の情報で更新する権利を所有します。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用規約およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
ようこそ、さん
お問い合わせ
ホームユーザ向け写真/ビデオ編集ツール
すべての業種・ソリューション ›すべての製品 ›アドビサポートに問い合わせる。
注文状況の確認
教職員および学生
アドビについて
投資家の皆様へ*
地域・社会への貢献*
お問い合わせ
個人またはホームオフィス
法人のお客さま
教育関係のお客様
おすすめ製品
すべてのソフトウェアを見る ›
購入後について
割引価格でコスト削減
ライセンスをご利用中のお客さま
その他の購入方法
販売店のご紹介
当社が開発するコードおよびリリースするソフトウェアがより一層安全なものになるよう、製品テストの強化、サードパーティ各位との連携によるソフトウェアアーキテクチャ検証、および当社ソフトウェアの脆弱性に関する細部までのテストを行っています。当社はカスタマー各位のセキュリティ及びプライバシー保護を大変重要なことと考えています。マクロメディアは、Adobe Flash 広告が特定の方法で実装されている場合、プライバシー漏洩の可能性があると報告を受け、それを確認しました。一般的に、アプリケーションに対する入力は、それらがすべて安全なものだと前提せず、その正当性をチェックすることが求められます。Flash で開発したアプリケーションもその例外とはなりません。このプライバシー漏洩の可能性は、ブラウザから Flash に渡された URL パラメータに悪意あるコードが含まれないという前提でアプリケーションを設計することにより生じます。処理を行う前に入力された情報の内容をチェックすることにより、アプリケーションの安全性を確実にしなければなりません。すべての Flash 開発者は、上記のような、入力に対するチェックを怠らない開発手法に従うことが望まれます。このような clickTAG 変数を利用した悪意ある HTTP コーディングでは、許可のないweb サイトから、オンライン広告プロバイダーが使っている HTTP クッキーにアクセスできる可能性が生じます。ただし、それは clickTAG 変数を使いながら、それに渡される入力の安全性チェックを行わない Flash 広告に限ったことです。また、その場合でも広告を掲載している web サイトも含め、広告プロバイダー以外の web サイトに属する HTTP クッキーに任意にアクセスすることは不可能です。広告に関連する HTTP クッキーは、個人情報を含まないのが一般的です。このようなクッキーは、広告効果のトラッキングと、個人を特定しない識別のみに利用されます。このため、マクロメディアは一般のインターネット利用者のプライバシーがこの問題により侵害される可能性はないと認識しています。これにより、clickTAG 変数に悪意あるコードが受け渡されることを防止できます。現在、大多数のオンライン広告プロバイダーはこの対処法を導入しています。マクロメディアはプロバイダーと協力し、Adobe Flash 広告の実装がこの点を念頭において行われるようにしています。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用規約およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
オンライン上の地位や存在感を確立・維持するためには、検索エンジンがリッチインターネットアプリケーション(RIA)を確実に巡回・インデックス化できるようにすることが肝心です。さもなければ、せっかくのコンテンツがユーザーの日の目にあたらないことになります。アドビは検索エンジン大手と協同し、SWFコンテンツの検索性を向上させるために数々の重要なステップを追いつつありますが、検索ランキングを高めるために今すぐ読者側で講じられる対策もいくつかあります。検索エンジン最適化(SEO)テクノロジーセンターでは、検索エンジン関連の課題や問題点を解説するとともに、これらに対応するために有効な、実用的な対処法やサンプル、ベストプラクティスなどを紹介していきます。
RIAの検索エンジン最適化テクニック
SWFコンテンツの検索結果ランキングを向上させる上で重要な課題と、これらの対処テクニックを紹介します。
RIAを検索エンジン向けに最適化する際のチェックリスト
RIA開発の計画段階および制作サイクルにおいて必要な検索エンジンへの配慮事項を紹介します。検索エンジンのスパイダーが確実にWebサイト内を巡回できるようにするための注意事項とテクニックを紹介します。に提供し、Flashファイル フォーマット(SWF)のインデックス作成用検索機能を強化した今回の発表について学びます。
さらに詳しく
使いやすく、代替コンテンツにも対応でき、しかも、Web標準規格をサポートするだけでなく、JavaScriptデベロッパーに包括的なAPIをも提供する、最新の埋め込み・検知メカニズムの使用法を紹介します。しかし、それに伴って一部の Flash コンテンツが閲覧できないというトラブルが報告されています。バージョン関係のトラブルでお困りのコンテンツ制作者の方は、ぜひご一読ください。
次のステップ
アドビRSSフィードについて詳し*く
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
RIAと検索エンジンの課題
検索ランキングの向上を目指したSWFアプリケーションの最適化
その他の最適化テクニック
印刷用に表示
RIAの検索エンジン最適化テクニック
RIAは、検索エンジンにとって悩みの種であることは言うまでもありません。と協同して問題の根本的な対策を検討し、Adobe Flash Platformだけではなく、今後の技術革新にも影響を及ぼせるような原則および解決策の提示に向けて努力しています。これと同様の課題は、既に数年前にPDF形式で問題となっていました。当時、検索エンジンはPDFドキュメントのコンテンツ認識に難がありましたが、今では比較的に手軽にPDFファイルも巡回およびインデックス化できるようになっています。つまり、この問題もゆくゆく解決されるというのが重要なポイントです。はこの最前線にいるのです。このプレイヤーは、SWFコンテンツのステートを変化させ、コンテンツ内のテキストにアクセスすることを可能にする、いわば「ヘッドレス」バージョンのFlash Playerプレイヤーです。が協同でこの問題に取り組む間も、読者側でSWFコンテンツの検索精度を高めるためにできることはあります。この記事では、読者がデベロッパー、デザイナー、コンテンツ所有者、Webサイト所有者、プロジェクトマネージャー、あるいはSEOエキスパートのいずれであるかを問わず、どのような課題に注意し、どのような方法でこれらに対処すればよいかについて解説することにします。例えば、仮に読者がAdobe Flashテクノロジーを用いたサイトを完成させたとします。このサイトのしゃれたデザイン、スムーズなアニメーション進行、充実したユーザー体験全般に関してはクライアントからの評価も高く、独創的なブランド体験が見事に確立されているとともに、サイトの更新も簡単にできるような、とてもクールなサイトであったとします。
納期、予算、コンテンツの課題点といった懸案事項もすべてクリアーし、誰もが達成感に満ちあふれていることでしょう
この記事では、プロジェクトの初期段階で見過ごされがちな、最も重要な質問の1つに対する答えを提供することにします。その質問とは、「ところで、このサイトは検索エンジンとの相性に問題がありませんか」という質問です。
皆さんも、このような状況に直面したことがあるのではないでしょうか
通常、この質問は制作作業が完了し、クライアントが自らのブランドをキーワードに検索し、サイトの検索ランキングが期待したほど高くないことに気付いた時点で発生しがちです。大半の場合、検索エンジンとの親和性に優れたサイトを制作することは業務の範疇として含まれていなかったり、情報アーキテクチャーやデザインおよび機能面の仕様を決定する際に、この親和性が検討事項や議題にあがることはありません。RIAを開発するにあたっては、クライアントの期待、デザイン上の判断、コンテンツの要件、機能面での判断など、様々な要素を検討・優先付けする必要がありますが、RIAにどの程度の検索エンジンとの親和性を求めるかを、計画段階で具体的に検討しておくことが非常に重要です。あらかじめ時間を割き、検索エンジンとの親和性が高いRIAを開発しておくことで、長期的には様々なメリットを享受できるようになります。この記事では、読者に新たな試練を与えるのではなく、開発サイクルの一環として取り入れることができる、検索関連のベストプラクティスを解説することを目指しています。検索エンジンとの親和性を高めることは実際に可能です。この記事を効率よくフォローするには、Adobe Flashテクノロジーおよびリッチインターネットアプリケーションに精通し、Web開発テクニックに対して高度な知識を有している必要があります。
著者について
Damienは、オレゴン州ポートランドの大手インタラクティブエージェンシーで10年以上もの間、WebデザイナーおよびWeb開発者としてキャリアを積みました。現在は、どのような検索がマーケティングミックスに一致するのか、顧客企業の理解を深める手助けをしており、Cisco Systemsの25以上の国に渡る検索戦略とプログラム開発チームを率い、クライアントとエージェンシー間のベストプラクティスに取り組んでいます。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
データ駆動のグラフィックウィザードを使ったグラフィック生成を自動化する | デベロッパーセンター
記事のアーカイブ*
ユーザグループの検索*
ユーザグループについて*
データ駆動のグラフィックウィザードを使ったグラフィック生成を自動化する。この新しいウィザードを使えば、一つのデータソースから複数のグラフィックを作成できます。これにより、Web グラフィックの制作プロセスを自動化できます。それでは、このウィザードでどのようなことができるのかを詳しく見ていくことにします。グラフィックウィザードは、XML ファイルと Fireworks のテンプレートに埋め込まれた変数とを組み合わせ、オリジナルのテンプレートに基づいて新しいグラフィックを生成します。
中核となる1つのグラフィックをもとに、さまざまなバリエーションのイメージファイルを次から次へと大量に作成した経験がある方であれば、きっとこのグラフィックウィザードがお気に入りになるでしょう
グラフィックウィザードは標準フォーマットの XML ファイルを読み込み、使用します。XML ファイルのフォーマットは次のようなものです。※日本語テキストを扱う場合、テキストエンコーディングは "utf-8" にします。一つの XML ファイルの中に必要に応じて複数のレコードとフィールドを記述することができます。Fireworks のイメージソースファイルをテンプレートにするために必要な作業は、変数を追加することだけです。このイラストウィンドウの例のように、必要な数だけ変数を記述でき、同じ変数が数箇所に出てきても構いません。テキスト変数に加え、グラフィックウィザードは他にも2つのタイプの変数、すなわちイメージと URL を取り扱うことができます。イメージを変数にするには、まずイメージを選択し、プロパティインスペクタの[オブジェクト名の編集]テキストボックスに {varImage} のように {} で囲んだ固有の名前を入力します。URL の場合もやり方はほとんど同じです。スライスやホットスポットを選択し、{url} のような変数名を[リンク]テキストボックスに入力します。
変数の名前はどのようなものでも構いませんが、対応するデータフィールドで使われているものと同じ名前にするのが分かりやすいでしょう
たとえば、"lastName" という名前のデータフィールドがあったとすると、そのフィールドからのデータが出てくるところには {lastName} というような変数を使います。このような方法で変数の名前をつければ、作業の中のステップを1つ省略できます。
グラフィックウィザードを使用する:チュートリアル
それでは、グラフィックウィザードの使用法を、順を追って見ていきましょう
このチュートリアルに沿って実際に作業を進めていくには、まずサンプルファイル (XML ファイル1つ、Fireworks MX PNG ファイル1つ、いくつかのイメージファイルを含むフォルダー1つ) をダウンロードし、これらのファイルを専用のフォルダー内で解凍します。
この記事に必要なもの
このチュートリアルは、こちらのソフトウェアのインストールとサンプルファイルが必要です。
チュートリアルとサンプルファイル:
ダウンロードしたサンプルファイルを使ってこのステップを行う場合、これらのファイルはすでに用意されていますので、Sample Template
png を開いてください(この後のステップではこのサンプルファイルを使うことを前提に進めていきますが、もちろん自分で用意したファイルを使っても構いません)
テンプレートファイルを開いたら、[コマンド] - [グラフィックウィザード] を選びます。6つのステップからなるこのウィザードでは、それぞれのステップに対応するヘルプが用意されているので、テンプレートの中の変数と XML ファイルの中のフィールドをすばやく対応させることができ、複数のファイルを自動的に作成することができます。グラフィックウィザードを開始する。最初の画面では、グラフィックウィザードがテンプレートファイルに含まれているすべての変数を表示します。まず行う必要があるのは、[XMLデータファイルを選択してください:] フィールドの横にあるフォルダーアイコンを選択して、XML データファイルを特定することです。次に、イメージ変数がある場合は置き換えるファイルを含むフォルダーを選びます。準備ができたら [次へ] を選びます。XML ファイルのレコードとフィールドをレビューする。次に、ウィザードは XML データファイルの中に見つかったレコードを表示します。ビデオのコントロールボタンに似たインターフェイスでレコードを前後に進めることができます。この画面(下図参照)は、XML ファイル内のフィールドを特定するのに特に役立つのと同時に、処理する必要があるどんなレコードも特定することができます。[次へ] をクリックして次のステップに進みます。処理するレコードを選択する。3つめのステップでは、処理したいレコードを選択します。[すべてのレコード] を選べば、そのデータファイルに含まれるすべてのレコードを処理することになります。[最初のレコードのみ] を選ぶと1番目のレコードのデータを処理します。特定のレコードを選ぶ場合は、[特定のレコード番号(カンマ区切り)] を選びます。レコードを指定する場合は、"1,3,5"、あるいは"2,4"のようにカンマで区切って数字を指定します。レコードの選択が終わったら、[次へ] をクリックします。データフィールドをマッピングする。さて、ここからがグラフィックウィザードの最も重要なところです。前述したように、同じ名前の変数とフィールドであれば自動的にマッピングされます。リンクされていない変数をデータにマッピングするためには、[変数を選択してください] リスト上で変数名を選択し、次に [フィールドを選択してください] リスト上で、対応するフィールドを選びます。次に、[リンクの追加] ボタンをクリックして選択を確定すると、下にある [マッピング済み変数] リストに変数とフィールドの組み合わせが表示されます。[マッピング済み変数] リストから変数とフィールドの組合せを選択してから [リンクを削除] ボタンをクリックすれば、リンクを解除することもできます。変数のマッピングが完了したら、[次へ] をクリックします。
命名と書き出し
ここまで来ればほとんど完了です。ステップ5はしめくくりの作業で、ファイルの命名と書き出し先のフォルダーなどを指定するだけです。まず、生成されるファイルの命名スキームを選択します。命名スキームは、ベースとなるファイル名前に自動生成された番号が付いたものです。デフォルトでは、ベースとなる名前はテンプレートの名前から取られますが、またファイル名として有効なものであれば拡張子をつけない形で [ファイル名] フィールドに指定できます。次に、3つある自動番号割り付けパターン(先行の0を付けない方法、先行の0を一桁だけ付ける方法、先行の0を2桁つける方法)の中からいずれかを選びます。最後に、[開始値] を入力するか、何も入力せずにデフォルトのままにするかを指定します。続いて、ドロップダウンリストの中から書き出しのタイプを選びます。ファイルを書き出すときには、あらかじめ書き出しファイルを格納するフォルダーを選択する必要があります。また、ソースのPNGファイルを生成するように指定するオプションもあり、このオプションを選んだ場合はそれらのファイルを格納するフォルダーも選択します。[次へ] をクリックし、最後のステップに進みます。最後のステップは今まで選択してきた内容の確認です。選択した内容を変更したければ、[戻る]を選んで、該当するステップまで戻ります。すべてが確定したら、[終了] を選び、グラフィックを生成します。生成されたすべてのファイルは選択したフォルダーに格納されます。[最初のレコードのみ] レコードオプションを選んだ場合は、ファイルは開いた状態になります。ウィザード処理をレビューする。生成されたファイル(このイラストレーションウィンドウ 参照) を開くと、すべての変数がXMLファイルの中で指定したデータに置き換えられているのが分かります。変数イメージに1つ、あるいは複数のエフェクトが適用されている場合は、それらのエフェクトは代替のイメージにも適用されます。さらに、変数URLを伴うすべてのスライスは新しいアドレスにリンクされます。ここまで見てきた作業はまるで魔法のように簡単なものでした。
著者について
講演者としても知られ、Adobe(旧Macromedia)の米国および欧州でのカンファレンスや、全米各地のユーザグループで講演を行っています。
お問い合わせ
不正コピー防止について
著作権と商標について*
当Webサイトをご利用のお客様は、利用規約およびプライバシーポリシー(2009年7月14日更新)にご同意いただいたものとみなされます。
ようこそ、さん
お問い合わせ
ホームユーザ向け写真/ビデオ編集ツール
すべての業種・ソリューション ›すべての製品 ›アドビサポートに問い合わせる。
注文状況の確認
教職員および学生
アドビについて
投資家の皆様へ*
地域・社会への貢献*
お問い合わせ
個人またはホームオフィス
法人のお客さま
教育関係のお客様
おすすめ製品
すべてのソフトウェアを見る ›
購入後について
割引価格でコスト削減
ライセンスをご利用中のお客さま
その他の購入方法
販売店のご紹介
ホームユーザー向け写真/ビデオ編集ツール
あなたにぴったりの製品は
大好きな家族や友人、思い出の場所を撮った写真が何百、何千枚