<?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>memo.393 &#187; AS2</title>
	<atom:link href="http://memo.393.bz/archives/tag/as2/feed" rel="self" type="application/rss+xml" />
	<link>http://memo.393.bz</link>
	<description>個人的メモです。間違いなどありましたらご指摘ください。。。</description>
	<lastBuildDate>Sat, 31 Jul 2010 13:55:47 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[AS]最大値、最小値の上限を決めて返す公式</title>
		<link>http://memo.393.bz/archives/176</link>
		<comments>http://memo.393.bz/archives/176#comments</comments>
		<pubDate>Wed, 14 Jan 2009 05:40:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[FlashDevelp]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=176</guid>
		<description><![CDATA[変数 = Math.min(Math.max(値 , 最小値) , 最大値);
例えば、


var randomNum:Number = Math.random()*100;
var maxNum:Number = 5 [...]]]></description>
			<content:encoded><![CDATA[<p>変数 = Math.min(Math.max(値 , 最小値) , 最大値);</p>
<p>例えば、</p>
<pre name="code" class="as">

var randomNum:Number = Math.random()*100;
var maxNum:Number = 50;
var minNum:Number = 10;

var ans:Number = Math.min(Math.max(randomNum, minNum) , maxNum);
</pre>
<p>ただし、if文で作った方が処理的に速いらしい。<br />
(Mathは遅いそうな)</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/176/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS][?]最初のフレームに書き出し、について</title>
		<link>http://memo.393.bz/archives/104</link>
		<comments>http://memo.393.bz/archives/104#comments</comments>
		<pubDate>Tue, 23 Dec 2008 00:31:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[未解決]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=104</guid>
		<description><![CDATA[元記事
AS2で、attachMovieを使ってステージに配置するとき、リンケージプロパティの、最初のフレームに書き出しにチェックが入っているときの注意。
これは1フレーム目のフレームアクションよりも先に、attachM [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://level0.kayac.com/2008/04/swf_load_linkage.php">元記事</a></p>
<p>AS2で、attachMovieを使ってステージに配置するとき、リンケージプロパティの、最初のフレームに書き出しにチェックが入っているときの注意。<br />
これは1フレーム目のフレームアクションよりも先に、attachMovieされてしまうということだろうか？<br />
つまり1フレーム目のフレームアクションにローディング処理が書かれていても、先にattachされてしまっているために、attachした分の読み込み状況が確認できないという事態になるのだろう。</p>
<p>対処法は元記事に書かれているとおり。</p>
<p>ただ最初のフレームに書き出しにチェックを外した場合、ステージ上にattachするMCをあらかじめ配置しておかないといけない。</p>
<p>(<a href="http://www.trick7.com/blog/2006/09/06-001951.php">attachの仕方はこちらもかなり参考になる。</a>)</p>
<p>ということは改めてattachする意味ってあるのか？<br />
最初からステージに置いとけなくてattachがmustなケースってどんなケースだろ。</p>
<p>>追記<br />
クラスをリンケージしたMCを使うときは、このケースがmustっぽいかな。</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/104/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]if文の条件式の中には代入式も書ける</title>
		<link>http://memo.393.bz/archives/44</link>
		<comments>http://memo.393.bz/archives/44#comments</comments>
		<pubDate>Mon, 08 Dec 2008 14:16:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=44</guid>
		<description><![CDATA[例えば、


//フレームアクション
var n:Boolean = true;
stage.addEventListener(MouseEvent.CLICK, xClick);
function xClick(e:M [...]]]></description>
			<content:encoded><![CDATA[<p>例えば、</p>
<pre name="code" class="as">

//フレームアクション
var n:Boolean = true;
stage.addEventListener(MouseEvent.CLICK, xClick);
function xClick(e:MouseEvent):void {
n = !n;
	if (n) {
		trace(&quot;true:&quot;+n);
	} else {
		trace(&quot;false:&quot;+n);
	}
}
</pre>
<p>↑を↓のように書いても同じこと。</p>
<pre name="code" class="as">

var n:Boolean = true;
stage.addEventListener(MouseEvent.CLICK, xClick);
function xClick(e:MouseEvent):void {
	if (n = !n) {
		trace(&quot;true:&quot;+n);
	} else {
		trace(&quot;false:&quot;+n);
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/44/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS][?→ok]スコープがよくわからない・・・</title>
		<link>http://memo.393.bz/archives/33</link>
		<comments>http://memo.393.bz/archives/33#comments</comments>
		<pubDate>Tue, 02 Dec 2008 01:16:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=33</guid>
		<description><![CDATA[スコープがあってないと思うのだけど理屈がよくわからない・・・
例えば、こんなカスタムイベントはOK
(ステージに_mc1インスタンスを配置)
//////////
//フレームアクション


import mx.even [...]]]></description>
			<content:encoded><![CDATA[<p>スコープがあってないと思うのだけど理屈がよくわからない・・・</p>
<p>例えば、こんなカスタムイベントはOK<br />
(ステージに_mc1インスタンスを配置)</p>
<p>//////////<br />
//フレームアクション</p>
<pre name="code" class="as">

import mx.events.EventDispatcher;
import mx.utils.Delegate;

var frog1:Object = new Object();
EventDispatcher.initialize(frog1);
	function passPoint(eventObj:Object):Void {
		trace(eventObj.child);
	}
	frog1.addEventListener(&quot;passPoint&quot;,this);

_mc1.onRelease = function() {
	trace(&quot;on&quot;);
	trace(&quot;this;&quot;+this);
	var testObj:test2 = new test2(frog1);
};
</pre>
<p>//////////<br />
//カスタムクラス(test2.as)</p>
<pre name="code" class="as">

class test2 {
	var childID = 300;
	var frog1:Object;
	public function test2(frog1) {
		this.frog1 = frog1;
		tat();
	}
	function tat() {
		frog1.dispatchEvent({type:&quot;passPoint&quot;, child:childID});
	}
}
</pre>
<p>//////////<br />
でもこれを以下のようにフレームアクションを変えるとイベントが受信できない。</p>
<p>//////////</p>
<pre name="code" class="as">

import mx.events.EventDispatcher;
import mx.utils.Delegate;

var frog1:Object = new Object();
EventDispatcher.initialize(frog1);

_mc1.onRollOver = Delegate.create(this, testOver);
function testOver() {
	trace(&quot;this:&quot;+this);
	function passPoint(eventObj:Object):Void {
		trace(eventObj.child);
	}
	frog1.addEventListener(&quot;passPoint&quot;,this);
};

_mc1.onRelease = function() {
	trace(&quot;on&quot;);
	trace(&quot;this;&quot;+this);
	var testObj:test2 = new test2(frog1);
};
</pre>
<p>function testOverは委譲しているので、this参照は_lovel0になっているのに。<br />
・・・何か別の問題があるのだろうか？</p>
<p>/////////////////////////////////////<br />
12/5 追記<br />
理解しました。<br />
function内にfunctionが入っているとそれはローカル変数的なfunctionになるのだそう。<br />
(passPointがtestOverに含まれてしまっているということ)<br />
this参照が_lovel0でもグローバル的な関数にはなりえないってことらしい。</p>
<p>つまり・・・<br />
////////////////////////<br />
//これはtraceできないけど。。。</p>
<pre name="code" class="as">

var test:Function;
function main(){
	//test = test();
	function test(){
		trace(&quot;a&quot;);
	};
}
main();
test();
</pre>
<p>////////////////////////<br />
//これならできる、みたいな</p>
<pre name="code" class="as">

var test:Function;
function main(){
	test = test();
	function test(){
		trace(&quot;a&quot;);
	};
}
main();
test();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/33/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]委譲する際に引数を持たせる方法</title>
		<link>http://memo.393.bz/archives/28</link>
		<comments>http://memo.393.bz/archives/28#comments</comments>
		<pubDate>Mon, 01 Dec 2008 22:56:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=28</guid>
		<description><![CDATA[参考サイト
http://katapad.com/wp/2008/05/25/study_as2_delegate_create/
Delegate.asを以下のように書き換える。


static function c [...]]]></description>
			<content:encoded><![CDATA[<p>参考サイト<br />
<a href="http://katapad.com/wp/2008/05/25/study_as2_delegate_create/">http://katapad.com/wp/2008/05/25/study_as2_delegate_create/</a></p>
<p>Delegate.asを以下のように書き換える。</p>
<pre name="code" class="as">

static function createWithArgs(obj:Object, func:Function, args:Array):Function//args:Arrayを追加
{
	var f = function()
	{
		var target = arguments.callee.target;
		var func = arguments.callee.func;
		return func.apply(target, arguments.callee.args.concat()); //ここを追加
	};

	f.target = obj;
	f.func = func;
	f.args = args; //ここを追加
	return f;
}
</pre>
<p>配列で引数を渡せるみたい。<br />
ただし、配列として色んな値を格納して、それを取り出すなんてことはできないみたい。</p>
<p>例えば、ステージに_mcというインスタンスをおいた状態で、</p>
<pre name="code" class="as">

import mx.utils.Delegate;
var tstArray:Array = new Array();
tstArray.push(100);
tstArray.push(200);
_mc.onRollOver =  Delegate.create(this, onRollOverTest,tstArray);
function onRollOverTest(x){
trace(&quot;delegate+&quot;+x);//出力：100
}
</pre>
<p>これでは値はunderfinedになってしまった。</p>
<pre name="code" class="as">

import mx.utils.Delegate;
var tstArray:Array = new Array();
tstArray.push(100);
tstArray.push(200);
_mc.onRollOver =  Delegate.create(this, onRollOverTest,tstArray[0]);
function onRollOverTest(x){
trace(&quot;delegate+&quot;+x);//出力：100
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/28/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]EventDispatcherでイベント配信</title>
		<link>http://memo.393.bz/archives/26</link>
		<comments>http://memo.393.bz/archives/26#comments</comments>
		<pubDate>Mon, 24 Nov 2008 14:16:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=26</guid>
		<description><![CDATA[AsBroadcasterでのイベント配信との使い分けがよくわからんです。
イベントオブジェクトにプロパティがもてるのでより柔軟に使えるってことかしら。


//EventDispatcherにパスを通す
import  [...]]]></description>
			<content:encoded><![CDATA[<p>AsBroadcasterでのイベント配信との使い分けがよくわからんです。<br />
イベントオブジェクトにプロパティがもてるのでより柔軟に使えるってことかしら。</p>
<pre name="code" class="as">

//EventDispatcherにパスを通す
import mx.events.EventDispatcher;

//ブロードキャスターとなるオブジェクトを作成
var casterObj:Object = new Object();
//ブロードキャスター(イベントをdispatchする人)に登録する
EventDispatcher.initialize(casterObj);

//リスナーとなるオブジェクトを作成
var listenerObj:Object = new Object();

//リスナーオブジェクトにメソッド(リスナーメソッド)を定義
listenerObj.eventComp = function(e:Object){
	trace(&quot;end&quot;);
	//イベントオブジェクトのプロパティを参照できる
	trace(&quot;target:&quot;+e.type);//出力：target:eventComp
}

//リスナーオブジェクトとイベントをブロードキャスターのリスナーとして登録
casterObj.addEventListener(&quot;eventComp&quot;,listenerObj);

//ブロードキャスターがイベント”eventComp”イベントを配信する。
//dispatchEvent(eventObject)
//eventObjectはtypeプロパティにイベント名のStringを持たなければ駄目
casterObj.dispatchEvent({type:&quot;eventComp&quot;});
</pre>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/26/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]AsBroadcasterでイベント配信</title>
		<link>http://memo.393.bz/archives/22</link>
		<comments>http://memo.393.bz/archives/22#comments</comments>
		<pubDate>Mon, 24 Nov 2008 13:29:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=22</guid>
		<description><![CDATA[AsBroadcasterでイベントを配信できる。
EventDispatcherとの違いがよくわからないのだが・・・
下記のような順番で書いていくこと。


//ブロードキャスターとなるオブジェクトを作成
var ca [...]]]></description>
			<content:encoded><![CDATA[<p>AsBroadcasterでイベントを配信できる。<br />
EventDispatcherとの違いがよくわからないのだが・・・<br />
下記のような順番で書いていくこと。</p>
<pre name="code" class="as">

//ブロードキャスターとなるオブジェクトを作成
var casterObj:Object = new Object();
//ブロードキャスターに登録する
AsBroadcaster.initialize(casterObj);

//リスナーとなるオブジェクトを作成
var listenerObj:Object = new Object();

//リスナーオブジェクトにメソッド(リスナーメソッド)を定義
listenerObj.eventComp = function(){
	trace(&quot;end&quot;);
}
listenerObj.eventComp1 = function(){
	trace(&quot;end1&quot;);
}

//リスナーオブジェクトをブロードキャスターのリスナーとして登録
casterObj.addListener(listenerObj);

//ブロードキャスターがイベント”eventComp”を配信する。
casterObj.broadcastMessage(&quot;eventComp&quot;);

//ブロードキャスターがイベント”eventComp”を配信する。
casterObj.broadcastMessage(&quot;eventComp1&quot;);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/22/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]委譲について</title>
		<link>http://memo.393.bz/archives/17</link>
		<comments>http://memo.393.bz/archives/17#comments</comments>
		<pubDate>Fri, 21 Nov 2008 12:10:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=17</guid>
		<description><![CDATA[委譲という言葉自体よくわからんが、こんなことらしい。
as2での例
ステージに_mcというMCがあり、メインのタイムラインのフレームアクション


_mc.onEnterFrame = xEnterFrame;
func [...]]]></description>
			<content:encoded><![CDATA[<p>委譲という言葉自体よくわからんが、こんなことらしい。</p>
<p>as2での例<br />
ステージに_mcというMCがあり、メインのタイムラインのフレームアクション</p>
<pre name="code" class="as">

_mc.onEnterFrame = xEnterFrame;
function xEnterFrame(){
trace(this)
}
//出力_level0._mc
</pre>
<p>ここでthisを他のものに変えたい時には以下のように書く</p>
<pre name="code" class="as">

_mc.onEnterFrame = Delegate.create(this.xEnterFrame);
function xEnterFrame(){
trace(this)
}
//出力_level0
</pre>
<p>Delegate.create(第一引数.第二引数);<br />
第一引数でスコープオブジェクトを指定できる。</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/17/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]フレームアクションを使った時間の調整</title>
		<link>http://memo.393.bz/archives/6</link>
		<comments>http://memo.393.bz/archives/6#comments</comments>
		<pubDate>Sat, 08 Nov 2008 08:37:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[setInterval]]></category>
		<category><![CDATA[Timer]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=6</guid>
		<description><![CDATA[///////////////
//AS2の場合


stop();
var waitTime:Number = 500;
//待ち時間関数
function WaitTime() {
	clearInterval( W [...]]]></description>
			<content:encoded><![CDATA[<p>///////////////<br />
//AS2の場合</p>
<pre name="code" class="as">

stop();
var waitTime:Number = 500;
//待ち時間関数
function WaitTime() {
	clearInterval( WaitTimeId );
	play();
}
//waitTime秒間停止させる
WaitTimeId = setInterval(WaitTime, waitTime);
</pre>
<p>///////////////<br />
//AS3の場合</p>
<pre name="code" class="as">

stop();
var waitTime:Number = 1000;
var wt:Timer = new Timer(waitTime);
wt.addEventListener(TimerEvent.TIMER, WaitTime);
wt.start();
//待ち時間関数
function WaitTime(e:TimerEvent):void {
	play();
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/6/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[AS]ステージサイズの取得について</title>
		<link>http://memo.393.bz/archives/3</link>
		<comments>http://memo.393.bz/archives/3#comments</comments>
		<pubDate>Thu, 06 Nov 2008 19:57:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://memo.393.bz/?p=3</guid>
		<description><![CDATA[ステージサイズを小さくすると、stage.stageWidth(Height)で正しい値が返ってこないときがある。
例(FlashCS3 AS3)
Flash上でステージサイズを200×200に設定。
ステージ上にダイナ [...]]]></description>
			<content:encoded><![CDATA[<p>ステージサイズを小さくすると、stage.stageWidth(Height)で正しい値が返ってこないときがある。</p>
<p>例(FlashCS3 AS3)<br />
Flash上でステージサイズを200×200に設定。<br />
ステージ上にダイナミックテキストをtfという名前で配置。</p>
<pre name="code" class="as">

tf.text = String(stage.stageHeight);
</pre>
<p>上記スクリプトを書いてムービープレビューすると、181と表示される。<br />
ただしパブリッシュした状態ではちゃんと200と表示される。</p>
<p>つまりムービープレビューでの表示がバグっぽいので気にしなくてよし。</p>
]]></content:encoded>
			<wfw:commentRss>http://memo.393.bz/archives/3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
