<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flash ActionScript 3.0</title>
	<atom:link href="http://studio-benkei.com/flash-as/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://studio-benkei.com/flash-as</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 17 May 2009 06:06:37 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>AS3　エフェクトを使って外部イメージファイルの読み込み</title>
		<link>http://studio-benkei.com/flash-as/?p=407</link>
		<comments>http://studio-benkei.com/flash-as/?p=407#comments</comments>
		<pubDate>Sun, 17 May 2009 06:06:37 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 サンプルコード]]></category>
		<category><![CDATA[ActionScript3.0 写真]]></category>
		<category><![CDATA[ActionScript3.0メモ]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[カスタムクラス]]></category>
		<category><![CDATA[サンプルコード]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=407</guid>
		<description><![CDATA[TransitionManagerクラスを利用すると読み込んだ画像に映像効果を付けて表示することができます。映像効果を付けるためのステートメントはTransitionManager.start();を実行する1行だけなので、とても簡単です。]]></description>
			<content:encoded><![CDATA[<p>ボタンをクリックするといろいろなパターンのエフェクトを使用した画像が表示されます。</p>
<div id="fla">
<p class="textFla">このFlashの表示には<a href="http://get.adobe.com/jp/flashplayer/">Flash Player</a> 9以降が必要です。</p>
<p><script type="text/javascript">
           var so = new SWFObject("http://studio-benkei.com/flash-as/wp-content/swf/fadeImgLoader.swf", "hogemovie", "440", "340", "7", "#000");
           so.write("fla");
        </script>
      </div>
<p>TransitionManagerクラスを利用すると読み込んだ画像に映像効果を付けて表示することができます。<br />
映像効果を付けるためのステートメントはTransitionManager.start();を実行する1行だけなので、とても簡単です。<br />
ただし、映像効果を付けるためには、TransitionManagerクラスのstart()の第一引数には、MovieClipインスタンスを指定する必要があるため、<br />
サンプルでは、空のMovieClipインスタンスimgHolderを作り、このimgHolderのLoaderクラスのインスタンスimgLoaderをaddChildしています。</p>
<p>また今回は様々なエフェクトを紹介するのに、下記のImageLoaderクラスを継承したサブクラスでonLoaded()を再定義するオーバーライドという手法を利用しています。</p>
<p class="mb0">ImageLoader.as▼</p>
<pre name="code" class="js">
package {
	import flash.display.DisplayObjectContainer;
	import flash.display.MovieClip;
	//外部ファイル読み込み関連のパッケージ
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.net.URLRequest;
	import flash.events.Event;
	//トランジション関連のパッケージ
	import fl.transitions.*;
	import fl.transitions.easing.*;

	public class ImageLoader {
		var imgHolder:MovieClip;

		//コンストラクタ
		function ImageLoader(container:DisplayObjectContainer,url:String,x:Number,y:Number) {
			//イメージを読み込むコンテナを作る
			imgHolder = new MovieClip();
			imgHolder.x = x;
			imgHolder.y = y;
			container.addChild(imgHolder);
			//loader作成
			var imgLoader:Loader = new Loader();
			imgHolder.addChild(imgLoader);
			//イベントリスナーの登録
			imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded);
			//URL
			var urlReq:URLRequest=new URLRequest(url);
			//読み込み開始
			imgLoader.load(urlReq);
		}
		//読み込み完了
		function onLoaded(event:Event):void {
			//Fadeトランジションを利用して表示
			TransitionManager.start(imgHolder,{type:Fade,direction:Transition.IN,duration:2,easing:Regular.easeInOut});
		}
	}
}
      </pre>
<p class="mb0">メインのタイムラインのフレームアクション▼</p>
<pre name="code" class="js">

import ImageLoader;
var url0:String = "0.jpg";
var imgLoaderObj0:ImageLoader = new ImageLoader(this, url0, 10, 10);

import BlindsImageLoader;
var url1:String =  "1.jpg";
var imgLoaderObj1:BlindsImageLoader = new BlindsImageLoader(this, url1,170,10);

import IrisImageLoader;
var url2:String =  "2.jpg";
var imgLoaderObj2:IrisImageLoader = new IrisImageLoader(this, url2,330,10);

import PxDissolveImageLoader;
var url3:String =  "3.jpg";
var imgLoaderObj3:PxDissolveImageLoader = new PxDissolveImageLoader(this, url3,10,132);

import SqueezeImageLoader;
var url4:String =  "4.jpg";
var imgLoaderObj4:SqueezeImageLoader = new SqueezeImageLoader(this, url4,170,132);

import WipeImageLoader;
var url5:String =  "5.jpg";
var imgLoaderObj5:WipeImageLoader = new WipeImageLoader(this, url5,330,132);

import ZoomImageLoader;
var url6:String =  "6.jpg";
var imgLoaderObj6:ZoomImageLoader = new ZoomImageLoader(this, url6,10,254);
      </pre>
<p>次のBlindsImageLoaderクラスはImageLoaderクラスを継承し、ブラインド効果で表示するようにonLoaded()をオーバーライドしています。<br />
BlindsImageLoaderクラス定義では、ImageLoaderクラスのコンストラクタで必要な引数をsuper()で引き渡し、onLoaded()のfunctionにはoverride修飾子を付けて再定義しています。</p>
<p class="mb0">BlindsImageLoader.as▼</p>
<pre name="code" class="js">

package {
	import flash.display.DisplayObjectContainer;
	import flash.events.Event;
	import fl.transitions.*;
	import fl.transitions.easing.*;
	public class BlindsImageLoader extends ImageLoader{
		//コンストラクタ
		function BlindsImageLoader(container:DisplayObjectContainer,url:String,x:Number,y:Number) {
			super(container, url, x, y);
		}
		//読み込み完了
		override function onLoaded(event:Event):void {
			//トランジションを利用して表示
			TransitionManager.start(imgHolder, {type:Blinds, direction:Transition.IN, duration:2, easing:None.easeNone, numStrips:10, dimension:0});
		}
	}
}
</pre>
<p>その他のエフェクトのソース紹介。以下はBlindsImageLoader.asと変わらないので、<br />
TransitionManager.start();の箇所だけ載せておきます。</p>
<p class="mb0">IrisImageLoader.as▼</p>
<pre name="code" class="js">
			TransitionManager.start(imgHolder, {type:Iris, direction:Transition.IN, duration:2, easing:Strong.easeOut, startPoint:5, shape:Iris.CIRCLE});
</pre>
<p class="mb0">PxDissolveImageLoader.as▼</p>
<pre name="code" class="js">
			TransitionManager.start(imgHolder, {type:PixelDissolve, direction:Transition.IN, duration:2, easing:Regular.easeIn, xSections:10, ySections:10});
</pre>
<p class="mb0">SqueezeImageLoader.as▼</p>
<pre name="code" class="js">
			TransitionManager.start(imgHolder, {type:Squeeze, direction:Transition.IN, duration:2, easing:Elastic.easeOut, dimension:1});
</pre>
<p class="mb0">WipeImageLoader.as▼</p>
<pre name="code" class="js">
			TransitionManager.start(imgHolder, {type:Wipe, direction:Transition.IN, duration:2, easing:None.easeNone, startPoint:1});
</pre>
<p class="mb0">ZoomImageLoader.as▼</p>
<pre name="code" class="js">
			TransitionManager.start(imgHolder, {type:Zoom, direction:Transition.IN, duration:2, easing:Elastic.easeOut});
</pre>
<p>メソッド、プロパティの説明は<a href="http://studio-benkei.com/flash-as/2009/03/19/my-actionscript30-dictionary/">こちら&#187&#187&#187</a></p>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=407</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AS3　外部イメージファイルの読み込み</title>
		<link>http://studio-benkei.com/flash-as/?p=388</link>
		<comments>http://studio-benkei.com/flash-as/?p=388#comments</comments>
		<pubDate>Tue, 12 May 2009 06:31:10 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 My辞典]]></category>
		<category><![CDATA[ActionScript3.0 サンプルコード]]></category>
		<category><![CDATA[ActionScript3.0 基礎編]]></category>
		<category><![CDATA[ActionScript3.0メモ]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[AS3基礎編]]></category>
		<category><![CDATA[サンプルコード]]></category>
		<category><![CDATA[メモ]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=388</guid>
		<description><![CDATA[外部イメージファイルの読み込み方法を紹介します。
外部ファイルのswf、jpg、png、gifを読み込んで再生表示することができます。
これらの外部ファイルの読み込みにはLoaderクラスを使用します。]]></description>
			<content:encoded><![CDATA[<div id="fla">
<p class="textFla">このFlashの表示には<a href="http://get.adobe.com/jp/flashplayer/">Flash Player</a> 9以降が必要です。</p>
<p>				<script type="text/javascript">
           var so = new SWFObject("http://studio-benkei.com/flash-as/wp-content/swf/ImgLoader.swf", "hogemovie", "440", "340", "7", "#000");
           so.write("fla");
        </script>
      </div>
<p>外部イメージファイルの読み込み方法を紹介します。</p>
<p>外部ファイルのswf、jpg、png、gifを読み込んで再生表示することができます。<br />
これらの外部ファイルの読み込みにはLoaderクラスを使用します。</p>
<p class="mb0">ImageLoader.as▼</p>
<pre name="code" class="js">

package {
	import flash.display.DisplayObjectContainer;
	import flash.display.Loader;
	import flash.net.URLRequest;

	public class ImageLoader {
		//コンストラクタ
		function ImageLoader(container:DisplayObjectContainer,url:String,x:Number,y:Number) {
			//loader作成
			var imgLoader:Loader = new Loader();
			imgLoader.x = x;
			imgLoader.y = y;
			container.addChild(imgLoader);
			//URL
			var urlReq:URLRequest=new URLRequest(url);
			//読み込み開始
			imgLoader.load(urlReq);
		}
	}
}
</pre>
<p class="mb0">メインのタイムラインのフレームアクション▼</p>
<pre name="code" class="js">

import ImageLoader;
var url:String = "a.jpg";
var posX:Number = 20;
var posY:Number = 20;
var imgLoaderObj:ImageLoader = new ImageLoader(this, url, posX, posY);
</pre>
<p>読み込み完了イベントの設定方法<br />
Event.COMPLETEイベント発生を知るためのリスナー登録を行います。<br />
このとき、Loaderのインスタンスにリスナー登録するのではなく、<br />
LoaderのインスタンスのcontentLoaderInfoオブジェクトにリスナー登録するという点に注意が必要です。</p>
<p class="mb0">ImageLoader2.as▼</p>
<pre name="code" class="js">

package {
	import flash.display.DisplayObjectContainer;
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.net.URLRequest;
	import flash.events.Event;

	public class ImageLoader2 {
		//コンストラクタ
		function ImageLoader2(container:DisplayObjectContainer,url:String,x:Number,y:Number) {
			//loader作成
			var imgLoader:Loader = new Loader();
			imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded);
			imgLoader.x = x;
			imgLoader.y = y;
			container.addChild(imgLoader);
			//URL
			var urlReq:URLRequest=new URLRequest(url);
			//読み込み開始
			imgLoader.load(urlReq);
		}
		//読み込み完了
		function onLoaded(event:Event):void {
			trace("読み込み完了");
		}
	}
}
</pre>
<p class="mb0">メインのタイムラインのフレームアクション▼</p>
<pre name="code" class="js">

import ImageLoader2;
var url:String = "a.jpg";
var posX:Number = 20;
var posY:Number = 20;
var imgLoaderObj:ImageLoader2 = new ImageLoader2(this, url, posX, posY);
</pre>
<p>メソッド、プロパティの説明は<a href="http://studio-benkei.com/flash-as/2009/03/19/my-actionscript30-dictionary/">こちら&#187&#187&#187</a></p>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=388</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 外部サウンドの再生</title>
		<link>http://studio-benkei.com/flash-as/?p=357</link>
		<comments>http://studio-benkei.com/flash-as/?p=357#comments</comments>
		<pubDate>Mon, 11 May 2009 05:54:24 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 サンプルコード]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=357</guid>
		<description><![CDATA[外部のサウンドファイルを再生する基本的な流れを紹介します。]]></description>
			<content:encoded><![CDATA[<div id="fla">
<p class="textFla">このFlashの表示には<a href="http://get.adobe.com/jp/flashplayer/">Flash Player</a> 9以降が必要です。</p>
<p>				<script type="text/javascript">
           var so = new SWFObject("http://studio-benkei.com//flash-as/wp-content/swf/sound.swf", "hogemovie", "65", "40", "7", "#000");
           so.write("fla");
        </script>
      </div>
<p>外部のサウンドファイルの再生の仕方を紹介します。</p>
<ol class="list">
<li>まずサウンドファイルのURLを管理するURLRequestオブジェクトの生成と、<br />
URLRequestを引数にSoundコンストラクタを実行し、Soundオブジェクトを生成します。</li>
<li>Soundオブジェクトのplay()メソッドを実行すると、SoundChannelオブジェクトが生成され再生が開始されます。</li>
<li>再生を停止するにはSoundChannelオブジェクトのstop()メソッドを実行します。</li>
<li>再生時のボリュームはSoundTransformオブジェクトを使用します。</li>
<li>今回はループ再生をしてますが、再生を一度だけとかにする場合などに、<br />
再生完了時のイベントハンドラを登録しておくと便利です。</li>
</ol>
<p>メソッド、プロパティの説明は<a href="http://studio-benkei.com/flash-as/2009/03/19/my-actionscript30-dictionary/">こちら&#187&#187&#187</a></p>
<p class="mb0">メインのタイムラインのフレームアクション▼</p>
<pre name="code" class="js">

//サウンドファイルのURL
var url:String = "a.mp3";
//再生中かどうかを示す変数
var isPlaying:Boolean = false;
//SoundChannelオブジェクト
var sChannel:SoundChannel;
//音量変更用にSoundTransformを生成
var trans:SoundTransform = new SoundTransform(0.3,0);

play_mc.buttonMode = true;
stop_mc.buttonMode = true;
play_mc.visible = true;
stop_mc.visible = false;
bar_mc.stop();

var mySound:Sound = new Sound(new URLRequest(url))

//「再生」ボタンのイベントハンドラを登録
play_mc.addEventListener(MouseEvent.CLICK, onSound);
//「停止」ボタンのイベントハンドラを登録
stop_mc.addEventListener(MouseEvent.CLICK, offSound);

//「再生」ボタンのリスナー関数
function onSound(event:MouseEvent):void {
	if (!isPlaying) {
		sChannel = mySound.play(0,999);
		//SoundChannelに音量を指定したSoundTransformを設定
		sChannel.soundTransform = trans;
		//再生完了時のイベントハンドラを登録
		sChannel.addEventListener(Event.SOUND_COMPLETE, onComplete);
		isPlaying = true;
		play_mc.visible = false;
		stop_mc.visible = true;
		bar_mc.play();
	}
}
//「停止」ボタンのリスナー関数
function offSound(event:MouseEvent):void {
	if (isPlaying) {
		sChannel.stop();
		isPlaying = false;
		play_mc.visible = true;
		stop_mc.visible = false;
		bar_mc.stop();
	}
}
//再生が完了したときのイベントハンドラ
function onComplete(event:Event) {
	isPlaying = false;
	play_mc.visible = true;
	stop_mc.visible = false;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=357</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 アナログ時計</title>
		<link>http://studio-benkei.com/flash-as/?p=348</link>
		<comments>http://studio-benkei.com/flash-as/?p=348#comments</comments>
		<pubDate>Thu, 07 May 2009 06:40:36 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 Dateクラス]]></category>
		<category><![CDATA[ActionScript3.0 サンプルコード]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[Dateクラス]]></category>
		<category><![CDATA[サンプルコード]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=348</guid>
		<description><![CDATA[AS3 アナログ時計の作り方を紹介しています。]]></description>
			<content:encoded><![CDATA[<div id="fla">
<p class="textFla">このFlashの表示には<a href="http://get.adobe.com/jp/flashplayer/">Flash Player</a> 9以降が必要です。</p>
<p>				<script type="text/javascript">
           var so = new SWFObject("http://studio-benkei.com//flash-as/wp-content/swf/analogClock.swf", "hogemovie", "260", "260", "7", "#000");
           so.addParam("wmode", "transparent");
           so.write("fla");
        </script>
      </div>
<p>アナログ時計の作り方を紹介します。</p>
<p>針のムービークリップを作る場合には、針が回転する位置が中心点になるようにし、<br />
針のイメージを垂直に描かなければなりません。</p>
<p>短針 → hour、長身 → minute、秒針 → second<br />
とインスタンス名を付けます。<br />
それらを盤面と一緒にムービクリップac_mcにまとめます。<br />
針はどれも垂直に作ってあるので、3本の針は12時を指した状態で重なって見えます。<br />
DigitalClock.as</p>
<pre name="code" class="js">

package {
	import flash.events.Event;
	import flash.display.MovieClip;

	public class AnalogClock {
		var clock_mc:MovieClip;
		//コンストラクタ
		function AnalogClock(mc:MovieClip) {
			clock_mc = mc;
			clock_mc.addEventListener(Event.ENTER_FRAME, on_EnterFrame);
		}
		//時計を更新する
		function on_EnterFrame(event:Event):void {
			var timeDegreeObj:Object = getTimeDegree();
			//針の回転角度を設定する
			clock_mc.hour.rotation = timeDegreeObj.hh;
			clock_mc.minute.rotation = timeDegreeObj.mm;
			clock_mc.second.rotation = timeDegreeObj.ss;
		}
		//現在時刻の角度を調べる
		function getTimeDegree():Object {
			//現在時刻の時分秒を調べる
			var now:Date = new Date();
			var hh:Number = now.getHours();
			var mm:Number = now.getMinutes();
			var ss:Number = now.getSeconds();
			//時分秒の針の角度を計算する
			var timeDegreeObj:Object = new Object();
			timeDegreeObj.hh = hh * 30 + mm * 0.5;
			timeDegreeObj.mm = mm*360/60;
			timeDegreeObj.ss = ss * 6;
			return timeDegreeObj;
		}
	}
}
      </pre>
<p>メインのタイムラインのフレームアクション</p>
<pre name="code" class="js">

import AnalogClock;
var ac:AnalogClock = new AnalogClock(ac_mc);
</pre>
<p>メソッド、プロパティの説明は<a href="http://studio-benkei.com/flash-as/2009/03/19/my-actionscript30-dictionary/">こちら&#187&#187&#187</a></p>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=348</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AS3 画像を使ったデジタル時計</title>
		<link>http://studio-benkei.com/flash-as/?p=333</link>
		<comments>http://studio-benkei.com/flash-as/?p=333#comments</comments>
		<pubDate>Wed, 06 May 2009 14:41:44 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 Dateクラス]]></category>
		<category><![CDATA[ActionScript3.0 サンプルコード]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[Dateクラス]]></category>
		<category><![CDATA[サンプルコード]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=333</guid>
		<description><![CDATA[画像を使ったデジタル時計作り方を紹介します。
まず0～9の画像を各フレームに配置したムービクリップを作ります。
次にそもインスタンスを2個並べたムービークリップを作り、num10、num01とインスタンス名を付けます。
これが時分秒のそれぞれ2桁の数字になります。]]></description>
			<content:encoded><![CDATA[<div id="fla">
<p class="textFla">このFlashの表示には<a href="http://get.adobe.com/jp/flashplayer/">Flash Player</a> 9以降が必要です。</p>
<p>				<script type="text/javascript">
           var so = new SWFObject("http://studio-benkei.com//flash-as/wp-content/swf/digitalClock.swf", "hogemovie", "350", "100", "7", "#000");
           //so.addParam("wmode", "transparent");
           so.write("fla");
        </script>
      </div>
<p>画像を使ったデジタル時計の作り方を紹介します。<br />
まず0～9の画像を各フレームに配置したムービクリップを作ります。<br />
次にそもインスタンスを2個並べたムービークリップを作り、<br />
num10、num01とインスタンス名を付けます。<br />
これが時分秒のそれぞれ2桁の数字になります。</p>
<p>さらに時分秒と表示するために｢00：00：00｣のように上記のムービクリップのインスタンスを並べたムービクリップdc_mcを作りそれぞれのインスタンスに、hh,mm,ssとインスタンス名を付けます。</p>
<p><img src="http://studio-benkei.com/flash-as/wp-content/img/digitalclock.gif" /></p>
<p>DigitalClock.as</p>
<pre name="code" class="js">

package {
	import flash.events.Event;
	import flash.display.MovieClip;

	public class DigitalClock {
		var clock_mc:MovieClip;
		//コンストラクタ
		function DigitalClock(mc:MovieClip) {
			clock_mc = mc;
			clock_mc.addEventListener(Event.ENTER_FRAME, on_EnterFrame);
		}
		//時計を更新する
		function on_EnterFrame(event:Event):void {
			var dateObj:Object = getDateDigit();
			//0〜9の数字を各桁で表示する
			clock_mc.hh.num10.gotoAndStop(dateObj.h10+1);
			clock_mc.hh.num01.gotoAndStop(dateObj.h01+1);
			clock_mc.mm.num10.gotoAndStop(dateObj.m10+1);
			clock_mc.mm.num01.gotoAndStop(dateObj.m01+1);
			clock_mc.ss.num10.gotoAndStop(dateObj.s10+1);
			clock_mc.ss.num01.gotoAndStop(dateObj.s01+1);
		}
		//現在時刻を調べる
		function getDateDigit():Object {
			//現在時刻の時分秒を調べる
			var now:Date = new Date();
			var hh:Number = now.getHours();
			var mm:Number = now.getMinutes();
			var ss:Number = now.getSeconds();
			//2桁を1桁ずつに分ける
			var dateObj:Object = new Object();
			dateObj.h10 = Math.floor(hh/10);
			dateObj.h01 = hh%10;
			dateObj.m10 = Math.floor(mm/10);
			dateObj.m01 = mm%10;
			dateObj.s10 = Math.floor(ss/10);
			dateObj.s01 = ss%10;
			return dateObj;
		}
	}
}
      </pre>
<p>メインのタイムラインのフレームアクション</p>
<pre name="code" class="js">

import DigitalClock;
var dc:DigitalClock = new DigitalClock(dc_mc);
</pre>
<p>メソッド、プロパティの説明は<a href="http://studio-benkei.com/flash-as/2009/03/19/my-actionscript30-dictionary/">こちら&#187&#187&#187</a></p>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=333</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>無数の円をランダムに描く</title>
		<link>http://studio-benkei.com/flash-as/?p=320</link>
		<comments>http://studio-benkei.com/flash-as/?p=320#comments</comments>
		<pubDate>Sun, 26 Apr 2009 17:31:43 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 サンプルコード]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[サンプルコード]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=320</guid>
		<description><![CDATA[無数の円をランダムに描き、拡大しながら消えていく波紋のようなイメージを作りました。]]></description>
			<content:encoded><![CDATA[<div id="fla">
<p class="textFla">このFlashの表示には<a href="http://get.adobe.com/jp/flashplayer/">Flash Player</a> 9以降が必要です。</p>
<p>				<script type="text/javascript">
           var so = new SWFObject("http://studio-benkei.com/flash-as/wp-content/themes/benkeiBlog/swf/circle.swf", "hogemovie", "450", "300", "7", "#fff");
           //so.addParam("wmode", "transparent");
           so.write("fla");
        </script>
      </div>
<p>スプライトにdrawCircle()で円を描いて作ります。<br />
円の広がりはスプライトの拡大で行います。<br />
このときスプライトの基準点が円の中心になるように描かないと、<br />
スプライトを拡大したときに円の中心から拡大せずに座標がずれてしまうので注意して下さい。</p>
<p>このサンプルのポイントとしてスプライトの消去があります。<br />
無限にスプライトを作っていくと、メモリを圧迫してしまいます。<br />
表示オブジェクトは表示オブジェクトコンテナから取り除いただけではメモリから取り除かれません。<br />
不要になったスプライトをメモリから取り除くには、スプライトの参照をnullに設定します。<br />
また、スプライトを消去する前に、登録しておいたイベントリスナーからも忘れずにリムーブして下さい。</p>
<p>as演算子はオブジェクトが指定のデータ型のメンバーかどうか評価します。<br />
メンバーであった場合はそのデータに変換したオブジェクトを返し、そうでない場合はnullを返します。<br />
そのため、値のチェックと同時に型変換（キャスト）の目的も兼ねる場合があります。<br />
Circle.as</p>
<pre name="code" class="js">

package {
	import flash.display.DisplayObjectContainer;
	import flash.display.Sprite;
	import flash.display.Graphics;
	import flash.events.Event;

	public class Circle {
		var container:DisplayObjectContainer;
		//コンストラクタ
		function Circle(theContainer:DisplayObjectContainer) {
			container = theContainer;
			container.stage.addEventListener
				(Event.ENTER_FRAME,on_EnterFrame);
		}

		function on_EnterFrame(event:Event):void {
			//スプライトを作る
			var circleSprite:Sprite = makeSprite();
			//サークルを描く
			drawRing(circleSprite);
		}

		//スプライトを作る
		function makeSprite():Sprite {
			//表示オブジェクトの作成とコンテナへの登録
			var sp:Sprite = new Sprite();
			container.addChild(sp);
			sp.x = Math.random()*container.stage.stageWidth;
			sp.y = Math.random()*container.stage.stageHeight;
			//イベント設定
			sp.addEventListener
				(Event.ENTER_FRAME,onEnterFrame);
			return sp;
		}
		//リングを描く
		function drawRing(sp:Sprite):void {
			var cr:Number=1 + Math.random()*2;
			sp.graphics.beginFill(0x00cc99);
			sp.graphics.drawCircle(0,0,cr);
			sp.graphics.endFill();
		}
		//スプライトのアニメーションを行う
		function onEnterFrame(event:Event):void {
			var sp:Sprite=event.target as Sprite;
			if (sp.alpha > 0) {
				sp.scaleX += 1;
				sp.scaleY += 1;
				sp.alpha -= 0.05;
			} else {
				//alphaが0になったので消去
				sp.graphics.clear();
				sp.removeEventListener
					(Event.ENTER_FRAME,onEnterFrame);
				container.removeChild(sp);
				sp = null;
			}
		}
	}
}
      </pre>
<p>メインのタイムラインのフレームアクション</p>
<pre name="code" class="js">

var rippleObj:Circle = new Circle(this);
</pre>
<p>メソッド、プロパティの説明は<a href="http://studio-benkei.com/flash-as/2009/03/19/my-actionscript30-dictionary/">こちら&#187&#187&#187</a></p>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=320</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AS3　ラベルを移動する写真のスライドを作成</title>
		<link>http://studio-benkei.com/flash-as/?p=286</link>
		<comments>http://studio-benkei.com/flash-as/?p=286#comments</comments>
		<pubDate>Tue, 31 Mar 2009 13:50:31 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 サンプルコード]]></category>
		<category><![CDATA[ActionScript3.0 写真]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[サンプルコード]]></category>
		<category><![CDATA[写真]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=286</guid>
		<description><![CDATA[MovieClipcurrentLabelを使ってラベル情報を取得し、
次のラベルに移動するメソッドnextLabel()と手前のラベルに移動するメソッドprevLabel()を定義し、
ボタンを押すと写真がスライドするムービークリップを作りました。]]></description>
			<content:encoded><![CDATA[<div id="fla">
<p class="textFla">このFlashの表示には<a href="http://get.adobe.com/jp/flashplayer/">Flash Player</a> 9以降が必要です。</p>
<p>				<script type="text/javascript">
           var so = new SWFObject("http://studio-benkei.com/flash-as/wp-content/themes/benkeiBlog/swf/photo.swf", "hogemovie", "450", "300", "7", "#fff");
           so.addParam("wmode", "transparent");
           so.write("fla");
        </script>
      </div>
<p>MovieClipcurrentLabelを使ってラベル情報を取得し、<br />
次のラベルに移動するメソッドnextLabel()と手前のラベルに移動するメソッドprevLabel()を定義し、<br />
ボタンを押すと写真がスライドするムービークリップを作りました。<br />
MovieClipcurrentLabelの値であるFrameLabelオブジェクトのリストからラベル名(nameプロパティ)だけのリストを作るためにArray.map()を使ってます。</p>
<p>photoムービークリップ<br />
キーフレーム区間の終りで再生が止まるようにthis.stop()のフレームアクションが設定されています。<br />
<img src="http://studio-benkei.com/flash-as/wp-content/themes/benkeiBlog/img/material/photo.gif" alt="flowers" title="flowers" width="450" height="280" class="alignnone size-full wp-image-254" /></p>
<p>PhotoMovie.as</p>
<pre name="code" class="js">

package {
	import flash.display.MovieClip;

	public class PhotoMovie {
		var my_mc:MovieClip;
		var my_pmc:MovieClip;
		var my_nmc:MovieClip;

		var my_labelNameList:Array;
		//コンストラクタ
		function PhotoMovie(mc:MovieClip ,
 						pmc:MovieClip , nmc:MovieClip) {
			my_mc = mc;
			my_pmc = pmc;
			my_nmc = nmc;
			my_pmc.visible = false;
			//ラベルオブジェクトリストからラベル名リストを作る
			var labelObjs:Array = my_mc.currentLabels;
			my_labelNameList = labelObjs.map(getLabelName);
		}
		//次のラベルへ進む
		public function nextLabel():void {
			var index:int = getLabelIndex();
			if (index<(my_labelNameList.length-1)) {
				my_mc.gotoAndPlay(my_labelNameList[index+1]);
				my_pmc.visible = true;
			}
			if(index == my_labelNameList.length-2) {
				my_nmc.visible = false;
			}
		}
		//手前のラベルへ戻る
		public function prevLabel():void {
			var index:int = getLabelIndex();
			if (index>0) {
				my_mc.gotoAndPlay(my_labelNameList[index-1]);
				my_nmc.visible = true;
			}
			if(index == 1) {
				my_pmc.visible = false;
			}
		}
		//ラベル名を返す
		function getLabelName(element:*,
						 index:int, arr:Array):String{
			return element.name;
		}
		//ラベルの位置番号を返す
		function getLabelIndex():int {
			var labelName:String = my_mc.currentLabel;
			var index:int = my_labelNameList.indexOf(labelName);
			return index;
		}
	}
}
</pre>
<p>メインのタイムラインのフレームアクション</p>
<pre name="code" class="js">

var naviObj:PhotoMovie = new PhotoMovie(photo_mc ,
								prev_mc , next_mc);
next_mc.addEventListener(MouseEvent.CLICK, onNext);
prev_mc.addEventListener(MouseEvent.CLICK, onPrev);
//
function onNext(event:MouseEvent):void{
	naviObj.nextLabel();
}
function onPrev(event:MouseEvent):void{
	naviObj.prevLabel();
}
</pre>
<p>メソッド、プロパティの説明は<a href="http://studio-benkei.com/flash-as/2009/03/19/my-actionscript30-dictionary/">こちら&#187&#187&#187</a></p>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=286</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 複数のインスタンスを作ってランダムに散りばめる</title>
		<link>http://studio-benkei.com/flash-as/?p=252</link>
		<comments>http://studio-benkei.com/flash-as/?p=252#comments</comments>
		<pubDate>Mon, 30 Mar 2009 16:22:46 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 サンプルコード]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[サンプルコード]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=252</guid>
		<description><![CDATA[リンケージで設定したFlowersクラスのインスタンスをManyクラスで50個作り、ステージにランダムに散りばめています。]]></description>
			<content:encoded><![CDATA[<div id="fla">
<p class="textFla">このFlashの表示には<a href="http://get.adobe.com/jp/flashplayer/">Flash Player</a> 9以降が必要です。</p>
<p>				<script type="text/javascript">
           var so = new SWFObject("http://studio-benkei.com/flash-as/wp-content/themes/benkeiBlog/swf/Flowers.swf", "hogemovie", "450", "300", "7", "#fff");
           so.addParam("wmode", "transparent");
           so.write("fla");
        </script>
      </div>
<p>リンケージで設定したFlowersクラスのインスタンスをManyクラスで50個作り、<br />
ステージにランダムに散りばめています。<br />
配置する際に、インスタンのスケールが0.3～0.8の乱数になるようにし、<br />
いろいろな絵柄が出るようにFlowersムービーの任意のフレームを表示するようにしています。</p>
<p>任意の絵柄を出す方法は、Flowersムービーの総フレーム数をmc.totalFramesで調べることができるので、1～総フレームの乱数を求め、そのフレームに移動して止めています。</p>
<p>また、シンボルのクラス名を引数で指定するため<br />
flash.utilsパッケージにあるgetDefinitionByName() を使って<br />
クラス名からクラス定義を作成しています。<br />
getDefinitionByName()を利用するには、flash.utils.getDefinitionByNameを<br />
インポートする必要があります。</p>
<p>次の式でクラス名からクラス定義を作っています。</p>
<pre name="code" class="js">

ClassReference = getDefinitionByName(className) as Class;
</pre>
<p>Flowersムービークリップ<br />
<img src="http://studio-benkei.com/flash-as/wp-content/themes/benkeiBlog/swf/flowers.gif" alt="flowers" title="flowers" width="450" height="280" class="alignnone size-full wp-image-254" /></p>
<p>Many.as</p>
<pre name="code" class="js">

package {
	import flash.display.DisplayObjectContainer;
	import flash.display.MovieClip;
	import flash.utils.getDefinitionByName;

	public class Many {
		var my_container:DisplayObjectContainer;
		var ClassReference:Class;
		//コンストラクタ
		function Many(container:DisplayObjectContainer,
					className:String) {
			my_container=container;
			//クラス名からクラス定義を作る
			ClassReference =
						getDefinitionByName(className) as Class;
			makeMC();
		}

		//インスタンスを50個作る
		function makeMC():void {
			var mc:MovieClip;
			var stageW:uint=my_container.stage.stageWidth;
			var stageH:uint=my_container.stage.stageHeight;
			var i:uint;
			for (i=1; i <= 50; i++) {
				//ClassReferenceで参照しているクラスからインスタンスを作る
				mc=new ClassReference();
				//ステージに散りばめる
				mc.x=getRandom(stageW);
				mc.y=getRandom(stageH);
				//スケールを0.3〜0.8倍
				mc.scaleX = mc.scaleY = 0.3+getRandom(5)*0.1;
				//任意のフレームを表示する
				mc.gotoAndStop(getRandom(mc.totalFrames));
				//表示
				my_container.addChild(mc);
			}
		}
		//乱数を返す（1〜v）
		function getRandom(v:uint):uint {
			return Math.ceil(Math.random() * v);
		}
	}
}
</pre>
<p>メインのタイムラインのフレームアクション</p>
<pre name="code" class="js">

var somethingObj:Many = new Many(this, "Flowers");
</pre>
<p>メソッド、プロパティの説明は<a href="http://studio-benkei.com/flash-as/2009/03/19/my-actionscript30-dictionary/">こちら&#187&#187&#187</a></p>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=252</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3素材　iTunesのカバーフロー風ギャラリー</title>
		<link>http://studio-benkei.com/flash-as/?p=272</link>
		<comments>http://studio-benkei.com/flash-as/?p=272#comments</comments>
		<pubDate>Mon, 30 Mar 2009 10:37:33 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 素材]]></category>
		<category><![CDATA[AS3素材]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=272</guid>
		<description><![CDATA[AS3素材　iTunesのカバーフロー風ギャラリー。Flashの知識は特に必要なく、配置する画像やテキスト、カバーフローのサイズなどは、xmlファイルに記述します。]]></description>
			<content:encoded><![CDATA[<p><img src="http://studio-benkei.com/flash-as/wp-content/themes/benkeiBlog/img/material/material001.jpg" alt="01" title="01" width="400" height="344" class="alignnone size-full wp-image-58" /><br />
<a href="http://www.yofla.com/flash/cover-flow/">Cover Flow &#8211; the Open Source Flash Script</a><br />
<a href="http://www.yofla.com/flash/cover-flow/examples/example_linking/">demo</a></p>
<p>Flashの知識は特に必要なく、配置する画像やテキスト、カバーフローのサイズなどは、<br />
xmlファイルに記述します。<br />
サンプルはアクションスクリプトのコードも入っているので、勉強になるかもしれません。<br />
私には難しすぎました・・・。</p>
<p>ライセンスは、<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">CC 3.0</a>とのことです。</p>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=272</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 簡単なキーボード操作のイベント</title>
		<link>http://studio-benkei.com/flash-as/?p=235</link>
		<comments>http://studio-benkei.com/flash-as/?p=235#comments</comments>
		<pubDate>Sun, 29 Mar 2009 13:21:34 +0000</pubDate>
		<dc:creator>benkei</dc:creator>
				<category><![CDATA[ActionScript3.0 サンプルコード]]></category>
		<category><![CDATA[ActionScript3.0 基礎編]]></category>
		<category><![CDATA[ActionScript3.0参考サイトのブックマーク]]></category>
		<category><![CDATA[ActionScript3.0]]></category>
		<category><![CDATA[AS3基礎編]]></category>
		<category><![CDATA[サンプルコード]]></category>

		<guid isPermaLink="false">http://studio-benkei.com/flash-as/?p=235</guid>
		<description><![CDATA[ステージに作ったインスタンスを左右上下の矢印キーで動かします。
stageにKeyboardEvent.KEY_DOWNのリスナー登録を行い、キーイベントでon_keyDown()メソッドを実行します。]]></description>
			<content:encoded><![CDATA[<p>一度枠内をクリックして下さい。<br />
キーボードの矢印、上下左右でインスタンスが動きます。Shiftキーを同時に押すと大きく移動します。</p>
<div id="fla">
<p class="textFla">このFlashの表示には<a href="http://get.adobe.com/jp/flashplayer/">Flash Player</a> 9以降が必要です。</p>
<p>				<script type="text/javascript">
           var so = new SWFObject("http://studio-benkei.com/flash-as/wp-content/themes/benkeiBlog/swf/keyBoardEvent.swf", "hogemovie", "450", "300", "7", "#fff");
           so.addParam("wmode", "transparent");
           so.write("fla");
        </script>
      </div>
<p>ステージに作ったインスタンスを左右上下の矢印キーで動かします。<br />
stageにKeyboardEvent.KEY_DOWNのリスナー登録を行い、キーイベントで on_keyDown()メソッドを実行します。<br />
キーイベントで通知されるKeyboardEventオブジェクトのkeyCodeプロパティを調べると押されたキーのキーコードがかわります。<br />
矢印キーのコードは、Keyboard.RIGHT、Keyboard.LEFT、Keyboard.UP、Keyboard.DOWNの定数で定義されているのでこれと比較します。<br />
また、KeyboardEventオブジェクトのshiftKeyプロパティを調べるとShiftキーが押されているかどうか調べることができます。</p>
<p>KeyBoardEvent.as</p>
<pre name="code" class="js">

package {
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;
	import flash.display.MovieClip;

	public class KeyBoardEvent {
		var my_mc:MovieClip;
		//コンストラクタ
		function KeyBoardEvent(mc:MovieClip) {
			my_mc=mc;
			//KEY_DOWNイベントのリスナーに登録
			mc.stage.addEventListener(KeyboardEvent.KEY_DOWN, on_keyDown);
		}
		//イベントを受けて実行
		function  on_keyDown(event:KeyboardEvent):void {
			var d:uint=5;
			var dx:int=0;
			var dy:int=0;
			//押された矢印キーを調べる
			switch (event.keyCode) {
				case Keyboard.RIGHT :
					dx = d ;
					break;
				case Keyboard.LEFT :
					dx = -d;
					break;
				case Keyboard.UP :
					dy = -d;
					break;
				case Keyboard.DOWN :
					dy = d;
					break;
			}
			//Shiftキーが押されていたら移動距離を10倍にする
			if(event.shiftKey){
				dx *= 10;
				dy *= 10;
			}
			my_mc.x += dx;
			my_mc.y += dy;
		}
	}
}
</pre>
<p>メインのタイムラインのフレームアクション</p>
<pre name="code" class="js">

var ballObj:KeyBoardEvent = new KeyBoardEvent(ball_mc);
</pre>
<p>メソッド、プロパティの説明は<a href="http://studio-benkei.com/flash-as/2009/03/19/my-actionscript30-dictionary/">こちら&#187&#187&#187</a></p>
]]></content:encoded>
			<wfw:commentRss>http://studio-benkei.com/flash-as/?feed=rss2&#038;p=235</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

