2009年 4月 の記事

Progression CastButtonのcurrent設定

CastButton を extends した MyCastButton があったとする。
ロールオーバー、ロールアウト設定はテンプレートに組み込まれているので分かりやすいのですが、current設定で少し躓いたので備忘録。

■現在のシーンかどうかの判定はisCurrent(Boolean)で取得できる。
■シーンが変わったときは CastEvent.STATUS_CHANGE が送出される。

上記二つを使ってごにょごにょすればok。
ロールオーバー時と current 状態で同じのにする場合、ロールアウトイベントとかその辺にも注意が必要かな。

以上!


【追記】
isParent で current の親かどうか、isChild でcurrent の子かどうか、isVisited で訪れたことがあるかどうかを判定できるみたいです。



こっちのエントリに簡単なサンプルソース書きました。

FizzBuzz問題

こんなのあったのでやってみる。

[ルール]
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

では開始!

■まずは1から100までプリント

for(var i:uint = 1; i<=100; i++){
	trace(i);
}

■次は優先順位の高い順に条件式を書いていく。
 今回の場合は、3と5、3、5の倍数の順で。(2番目と3番目はどっちでもいいかな)
% 演算子で余剰を取得して、余りが0ならばその倍数、という条件でやります。
for (var i:uint = 1; i <= 100; i++) {
	if(i % 3 == 0 && i % 5 == 0){    
		trace("FizzBuzz");
	}else if(i % 3 == 0){
		trace("Fizz");
	}else if(i % 5 == 0){
		race("Buzz");
	}else {
		trace(i);
	}
}

■もっと簡略化
for (var i:uint = 1; i <= 100; i++) {
	i % 3== 0 && i % 5 == 0 ? trace("FizzBuzz") :
	i % 3 == 0 ? trace("Fizz") :
	i % 5 == 0 ? trace("Buzz") :
	trace(i);
}

おしまい。wonderfl にも置いておきます。
だれかTextFieldに表示させるようにしてくれればいいじゃない。


【追記】
Fork ありがとうございます!

Progression flashvarsからデータを受け取る

Progressionは index.html に preloader.swf を貼り付け、 preloader.swf に index.swf を読み込んでいます。
この index.html の中には(正確にはprogression.js) flashvars というプロパティがあり、ここに値を入れてあげると swf でそれを受け取れます。
これはPHPでXMLのURLを渡すときなんかでよく使います。

■ index.html

<script type="text/javascript">
// <![CDATA[
	progression.embedSWF( {
		- 中略 -
		flashvars:{
			xmlUrl : "hogehoge.xml"
		},
		- 中略 -
	} );
// ]]>
</script>

■ index.as
var _param:Object;
_param = LoaderInfo(MovieClip(stage.getChildAt(0)).loaderInfo).parameters;

trace(_param.xmlUrl);
//出力 --- hogehoge.xml

てな感じでアクセス。
MovieClip(stage.getChildAt(0)) が preloader.swf のことです。
それの loaderInfo の parameters に入ってます。

注意事項としては、Flash Tracer でも入れてブラウザで確認しなければ出力されません。
Flashで書き出した段階ではたぶん null が返ってきます。

以上!

IE6はカエレ(・∀・) js

いまだにIE6を使い続ける不届き者にこういうのを。




IE6そろそろ切り捨ててもいいと思うんだけどなー。

Return top