メイン

sample アーカイブ

2007年5月13日

スプリングsample

たまには何か動くものをと思いまして、今日、作ったサンプルを紹介しましょう。このサンプルはchap06に掲載予定のサンプルです。

springPointing_circle_small.jpg


合計4つのカスタムクラスを使っています。トピックス的な要素としては、

1.MovieClipシンボルからインスタンスを作って、円周に並べる。
2.クリックイベントで応答する。
3.フレーム再生イベントを利用する。
4.クラスを継承する。
5.バネのようにビヨヨンと弾ませる。
6.指定の方向を向かせる。

というようなことが含まれているサンプルです。AS3.0では、1、2,3の方法がAS2.0とはまったく違う方法になっています。新たに学ぶ必要がある重要な要素です。

2007年5月16日

ドラッグ&ドロップsample

ドラッグ&ドロップのサンプルを作ったので紹介します。このサンプルもchap06に掲載予定のサンプルです。
ドロップ先を調べて、正解ならば中で広がり、不正解ならば元の位置に戻ります。これまでに同じようなサンプルを作ったことがある人も多いでしょうが、AS3.0では今まで通りには行きません。ぼくも何度も作り直して、やっとスマートな感じになりました。onRreleaseOutsideに代わるイベントがないっていうのが一番悩んだところ。

dragdrop.jpg

2007年5月18日

線で塗り絵sample

表示オブジェクトの領域をちょっとずつ塗りつぶしていくというサンプルです。線を繋げながら描くにはどうするか?とか、Pointクラスの勉強になります。これはchap07に掲載予定のサンプルです。
nurie_man_mini.jpg

2007年6月10日

ピクセルディゾルブsample

AS3.0は難しくなったという印象があるかもしれませんが、簡単にできるようになったこともあります。たとえば、TransitionManagerクラスやTweenクラスを使うと映像効果やトゥイーンを簡単に作ることができます。たとえば、読み込んだ写真をピクセルディゾルブで表示するなんてことが簡単にできます。

pixelDissolve.jpg

2007年12月 5日

ダブルクリック(子供に触らないで!)

正誤データばかりではなんなので、ちょっとは役立つネタを(^ ^;;;
AS3からダブルクリックを取るために次のようにdoubleClickEnabledプロパティをtrueにします。ところが、これだけではうまくいかないケースが多いんです。
my_mc.addEventListener(MouseEvent.DOUBLE_CLICK, onWClick);
my_mc.doubleClickEnabled = true;
function onWClick(event:MouseEvent):void{
	trace(event.target);
}

それはDisplayObject(ここではmy_mc)が入れ子になっている場合です。my_mcが入れ子の場合、そのchildのdoubleClickEnabledプロパティもtrueにしなければなりません。でも、childがたくさんあったり、childにさらにchildがある場合など、面倒でキリがありません。
どうにかならんのか〜とキレそうになるんですが、いい解決策があります。それは、my_mcの子供をマウスでいじらないで!とmouseChildrenプロパティの値をfalseにするのです。これで解決です。
my_mc.addEventListener(MouseEvent.DOUBLE_CLICK, onWClick);
my_mc.doubleClickEnabled = true;
my_mc.mouseChildren = false;
function onWClick(event:MouseEvent):void{
	trace(event.target);
}

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();
}

About sample

ブログ「ActionScript3.0入門ノート」のカテゴリ「sample」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはnoteです。

次のカテゴリはsample2です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。