SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

話題のあの人にインタビュー!

Progressionフレームワーク開発者が語る、
Progressionの魅力とFlashクリエイターの理想像

Flash開発のフレームワーク「Progression」開発者インタビュー

  • X ポスト
  • このエントリーをはてなブックマークに追加

 『Progression 3』は、Flashコンテンツのページ移動処理を行うためのフレームワーク。HTMLベースのサイトと同じような構造を持つFlashコンテンツを容易に開発でき、クリエイティブに集中できることもあって、近年利用するサイトが増えている。今回はProgressionプロダクトマネージャーの阿部 貴弘氏に、開発の背景や特徴、今後の展開、クリエイターに対するアドバイスなどを聞いた。

  • X ポスト
  • このエントリーをはてなブックマークに追加

株式会社CLOQUE. 代表取締役 阿部 貴弘氏
株式会社CLOQUE. 代表取締役
阿部 貴弘氏

 『Progression 3』(以下、Progression)は、Flashコンテンツのページ移動処理をスムーズに行うためのフレームワーク。HTMLベースのサイトと同じような階層構造や複雑なリンク構造を持つFlashコンテンツを容易に開発できる特徴を持つ。設計期間を短縮でき、Flash開発者がクリエイティブに集中できることもあって、利用するサイトが増えている。

 今回はProgressionプロダクトマネージャーの阿部 貴弘氏に、開発の背景や特徴、今後の展開、クリエイターに対するアドバイスなどを聞いた。

きっかけは「技術的興味」と「開発者共通の問題意識」

 開発のきっかけについて阿部氏に聞くと、当初はフレームワークを作るという目的はなかったという。「もともとFlash制作でデザインもプログラミングもすべて行っていました。ActionScript 3になってから、スクリプトの構文やエラーチェックの厳格さが増して、ActionScript 2の時代にできていた、デザインとプログラミングの並行開発が難しくなりました。そこでデザイン作業に集中できるように、事前に土台となるシステム部分を作ろうと思い立ったのがスタートです。そのときは、最新の技術を使ってどこまで作れるのかを試してみたいという趣旨もありました」

 2007年の2月~4月までの2か月間、前半の1か月にフレームワーク、後半の1か月でデザインを行う計画で着手した。サイトを作るはずが、フレームワーク開発に思いのほか没頭したため、フレームワークのみで2か月間を費やして最初のバージョンが完成し、オープンソースのコミュニティに公開した。「知り合いの方やFlash系の開発者にヒアリングしていると、Flash制作における同じような問題意識が分かってきました。ニーズがあるならそこで終わりにせず、開発を継続しようと思いました」と阿部氏。

Progressionの公式ページ
「作りたいものは、楽しいところだけ作る。」というキャッチコピーが素敵だ。
Progressionの公式ページ。「作りたいものは、楽しいところだけ作る。」というキャッチコピーが素敵だ。

従来のFlashコンテンツで大変だった「画面遷移」の実装

 Progressionのメイン機能について尋ねると「Progressionの核となる部分は画面遷移です。当時いくつかのフレームワークもありましたが、どれも手法としては器の上にすべての表示オブジェクトをのせて、遷移の際にはその器ごと入れ替えてしてしまうようなもの(FlexBuilderのViewStackなど)という印象がありました。この方式は一瞬で画面を丸ごと入れ替えるような実装には向いているかと思いますが、多くのFlashコンテンツの場合、2つの画面間で共通するオブジェクトに対してエフェクトをかけつつ遷移するような演出をよく用います。こうした演出を実装するためには、先ほどのように器単位で処理を分解する方法では困難です。また、構造自体も画面がただ横並びに扱われるだけではなく、一つの画面を子、孫といった複数の階層構造からなる表示オブジェクトを組み合わせて描画するような場合でも、破綻なく制御可能にするために画面と状態を完全に分離した実装とし、複雑な構造を整理しやすくしました。その結果、Flash制作においては実装難易度の高いディープリンク(ここではウェブアプリケーションの特定の状態を指すURL)も自動的に発行可能な仕組みを実現できました。

 また、演出には時間のかかる非同期処理を組み込む必要があるのですが、通常ActionScript 3ではイベントリスナーを連鎖させるような実装をしなければいけません。しかし、イメージを直感的に試してみたい場合に厳密さは冗長ですし、いろいろな演出を試してみるようなプロトタイピングには不向きな方法といえます。そこで非同期処理をよりシーケンシャルに記述できる仕組みを用意し、時間のかかる処理であっても記述行を入れ替えるだけで実行できるようにしています」とFlashクリエイターならではの視点での開発を行った経緯を語る。

 複数の画面が相互にリンクするような複雑なコンテンツの場合、画面とそれらをつなぐための制御のラインをたくさん用意する必要があり、画面数や構造が複雑になるほど手間がかかるが、Progressionの場合は、つなぐ部分だけを切り離して管理できるという。

画面遷移の機能を説明する阿部氏。
Progressionでは画面が階層構造を持ち、画面間のつなぎ変えも容易。
画面遷移の機能を説明する阿部氏。Progressionでは画面が階層構造を持ち、画面間のつなぎ変えも容易。

次のページ
ノンコーディングからOOPまで幅広いレベルに対応

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
話題のあの人にインタビュー!連載記事一覧

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4172 2009/08/05 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング