デル今週のおすすめパッケージ【個人向け】 | Flash本ベストセラー

2008年5月11日

Eventのグループ化

複数のイベントが完了したならば次の動作へ移行したいということがありますよね。次のサンプルでは、そんな複数のイベントを管理するEventGroupというカスタムクラスの簡単なデモです。

円いボールは、それぞれ好きな時間だけ動作して止まります。そして全部のボールの動作が完了するまで待ち、全部が止まったならば次の動作へ移行します。

ここで、個々に発生する「動作完了イベント」を受けて「全部の動作完了イベント」を発生するのがEventGroupの仕事です。メインのスクリプトは、EventGroupのイベントリスナーになるだけで、全員の動作完了を知ることができるわけです。

eventGroup.gif

このサンプルは何の役にも立ちそうにないですが、たとえば複数の問題をクリアしないと先に進めないとか、ネットワークからの複数のデータの読み込みが完了しないと表示しないとか、そういう場合に役立つテクニックです。

2008年5月 6日

袋文字キャプション

FLVPlaybackコンポーネントにFLVCaptioningコンポーネントを組み合わせれば、再生に合わせて表示するキャプション(字幕)を簡単に付けることができます。
でも、こんな風に袋文字で表示するにはちょっとした工夫が必要です。
さて、どうすればいいんでしょうか?
答えは・・・次の本が出るまで待ってね〜(いろいろ事情があるわけで)
flvCaption_fukuromoji.jpg

2008年5月 4日

吹き出しFLV

せっかく吹き出しを作るクラスを作ったので利用しましょう。
タイムに加えて吹き出しの表示座標と文を書いたキューポイントXMLを作り、これをスクリプトで読み込んでFLVにキューポイントを設定します。そして、FLV再生中のキューポイントの通過イベントを受けて吹き出しを表示するというサンプルです。

kitesurf.jpg

吹き出し

メッセージ文をXMLから読み込み、それを吹き出しで表示するというサンプルです。XMLでは文字サイズと背景色も指定できます。

吹き出しはドラッグして表示位置と重なりを変えることができます。
fukidashi_e.gif

日本語フォントを使う場合はフォントを埋め込むわけにいかないので、文字をビットマップに変換することでアニメーション中にも消えないようにしています。
fukidashi.gif

2008年4月20日

黒虫

黒虫(仮名)というムービーを作りました。似たようなムービーはあちこちで見たことがあると思いますが、ちょっと試したいことがあって作ったものです。
クリックして追い回すと楽しいですよ。(^ ^)/
kuro1.jpg

2008年4月14日

XMLSlideShow.asに機能追加

TweenImageLoaderクラスの訂正記事だけだと申し訳ないので、TweenImageLoaderクラスと組み合わせて使うXMLSlideShowクラスにスライドショーの送り、戻し、ジャンプ、停止トグルの関数を追加したいと思います。XMLSlideShowクラスは、XMLファイルから写真リストを読み込んでスライドショーを行うクラスです。p.434に掲載されています。
次のスクリプトをXMLSlideShow.asに追加して、XMLSlideShowのインスタンスから呼んでください。この追加機能が正しく動作するように、先のTweenImageLoaderクラスの訂正を必ず行ってください。
なお、この追加機能はp.430のSlideShowクラスでも利用できます。
//--------追加関数
//1つ進む
 public function goNext():void {
	timerObj.reset();
	timerObj.start();
	//currentNoのカウントアップ
	currentNo = (currentNo>=photoXml.photo.length())?1:(currentNo+1);
	loadImageNo(currentNo);
}
//1つ戻る
 public function goPrev():void {
	timerObj.reset();
	timerObj.start();
	//currentNoのカウントダウン
	currentNo = (currentNo<=1)?photoXml.photo.length():(currentNo-1);
	loadImageNo(currentNo);
}
//指定の番号へジャンプ
 public function goNo(no:int):void {
	timerObj.reset();
	timerObj.start();
	currentNo = Math.max(1, Math.min(photoXml.photo.length(), no));
	loadImageNo(currentNo);
}
//停止と再生のトグル
 public function togglePause():void {
	if(timerObj.running){
		timerObj.stop();
	}else{
		timerObj.start();
	}
}
使用例は次のようになります。p.437の最初に書いてあるフレームアクションに加筆したスクリプトです。ステージにはnext_mc、prev_mcのムービークリップを作っておきます。
import XMLSlideShow_work;
var xmlUrl:String = "xml/photolist.xml";
var slideObj:XMLSlideShow = new XMLSlideShow(container_mc, xmlUrl);

container_mc.addEventListener(MouseEvent.CLICK, onClick);
next_mc.addEventListener(MouseEvent.CLICK, onNext);
prev_mc.addEventListener(MouseEvent.CLICK, onPrev);

function onClick(event:MouseEvent):void {
	slideObj.togglePause();
}
function onNext(event:MouseEvent):void {
	slideObj.goNext();
}
function onPrev(event:MouseEvent):void {
	slideObj.goPrev();
}

p432

p380で紹介しているTweenImageLoaderクラスをp.432でも使用しています。こちらのスクリプトでもTweenクラスのトゥイーンが途中で中断してしまうことがないように、インスタンスをインスタンス変数imgTweenに保存するように訂正してください。
imgTweenをローカル変数で保持すると使用中にも関わらずガベージコレクションされてしまうことがあるようです。

-------------
p.432スクリプト 18行目に挿入
訂正前:
var imgHolder:MovieClip;

//コンストラクタ

訂正後:
var imgHolder:MovieClip;
var imgTween:Tween;

//コンストラクタ
-------------
p.432スクリプト 下から2行目
訂正前:
var imgTween:Tween = new Tween(
訂正後:
imgTween = new Tween(

p381〜p383

TweenImageLoaderクラスのスクリプトにおいて、Tweenクラスのインスタンスをローカル変数imgTweenで保持していますが、マウス操作などを行うとトゥイーンの途中でもimgTweenがガベージコレクションされてしまい、トゥイーンが最後まで行われないことがあるようです。トゥイーンが最後まで行われるように、imgTweenをインスタンス変数で宣言してください。お手数かけます。

p.381スクリプト 10行目に挿入
訂正前:
var imgHolder:MovieClip;

//コンストラクタ

訂正後:
var imgHolder:MovieClip;
var imgTween:Tween;

//コンストラクタ

-------------
p.381スクリプト 下から10行目
訂正前:
var imgTween:Tween = new Tween(
訂正後:
imgTween = new Tween(

-------------
p.382 1つ目の例:Tweenクラスでフェードイン
訂正前:
var imgTween:Tween = new Tween(
訂正後:
imgTween = new Tween(

-------------
p.382 3つ目の例:水平スケールをトゥイーンする
訂正前:
var imgTween:Tween = new Tween(
訂正後:
imgTween = new Tween(

-------------
p.383 1つ目の例:回転角度をトゥイーンする
訂正前:
var imgTween:Tween = new Tween(
訂正後:
imgTween = new Tween(

2008年2月 5日

Flash Player 9の普及率

AS3で制作するには、Flash Player 9の普及率も気になるところ・・・
この数字があれば、クライアントも説得できるのではないでしょうか。

Flash Playerバージョン普及率

2008年1月23日

WOW-Engine

ActionScript 3の3D物理(3次元での質量とか加速とか衝突とか)のクラスライブラリWOW-Engineってのが出ましたよ。

WOW-Engine
http://seraf.mediabox.fr/wow-engine/as3-3d-physics-engine-wow-engine/

ちなみに、2Dならbox2dflash
こっちは3D描画をしなくていいので、そのぶん手軽。
でも、2D描画でも3Dで考えた方がいろいろ応用が効くように思えますね。
Zの値は重なりとかサイズとか、別のプロパティ表現に置き換えればいいわけだし・・・

●「Adobe Flash CS3 詳細!Flash ActionScript3.0入門ノート」の元原稿の一部です。
※リンクは自由ですが、記事の転載は禁止します。

Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD付)
Adobe Flash CS3
詳細! ActionScript3.0入門ノート

目次

Actionscript 3.0 Cookbook
Actionscript 3.0 Cookbook


Essential ActionScript 3.0 (Essential)
Essential ActionScript 3.0 (Essential)


ActionScript 3.0 アニメーション
ActionScript 3.0 アニメーション
Google
Web oshige.com

大重美幸 :oshige index
contact : e-mail
Syndicate this site (XML)
atom.xml
© YOSHIYUKI OSHIGE.

wavelogo_orange.jpg