Archived posts in ' "ActionScript"

if文の省略について

Posted by specterant on 2012.03.14

ActionScriptやJavaScriptなど組むとき、if文を使用することが多々あります。
そんなif文は省略して書くことができるのでメモです。

【条件が1つの場合、1行で記述できます。】

/********************************
//「if文省略(条件が1つ)」記述例
********************************/
var hogeNum = 3;

//省略無し ------------------------------------------- //
if (hogeNum == 3) {
	alert("【省略無し】hogeNumは「3」です!");
}

//省略あり ------------------------------------------- //
if (hogeNum == 3) alert("【省略あり】hogeNumは「3」です!");

// [結果] ------------------------------------------- //
//【省略無し】hogeNumは「3」です!
//【省略あり】hogeNumは「3」です!
【条件がtrueかfalseかの場合、論理和演算子を使用すれば1行で記述できます。】
/********************************
//「if文省略(論理和演算子)」記述例
********************************/
var hogeStr = "何らかの文字が入っとる。";
var traceStr;

//省略無し ------------------------------------------- //
if (hogeStr) {
	traceStr = hogeStr;
	alert("【省略無し】" + traceStr);
}
else {
	traceStr = "hogeStrは「文字が入力されておりまへん」";
	alert("【省略無し】" + traceStr);
}

//省略あり ------------------------------------------- //
traceStr = hogeStr || "hogeStrは「文字が入力されておりまへん」";
alert("【省略あり】" + traceStr);

// [結果] ------------------------------------------- //
//【省略無し】何らかの文字が入っとる。
//【省略あり】何らかの文字が入っとる。
【「条件 ? true時の処理 : false時の処理」という感じで、条件演算子を使用すれば1行で記述できます。】
var hogeNum = 30;
var traceStr;

//省略無し ------------------------------------------- //
if (hogeNum > 10) {
	alert("【省略無し】hogeNumは「10」より大きいぞ!");
}
else {
	alert("【省略無し】hogeNumは「10」より小さいです…");
}

//省略あり ------------------------------------------- //
traceStr = (hogeNum > 10) ? "hogeNumは「10」より大きいぞ!" : "hogeNumは「10」より小さいです…";
alert("【省略あり】" + traceStr);

// [結果] ------------------------------------------- //
//【省略無し】hogeNumは「10」より大きいぞ!
//【省略あり】hogeNumは「10」より大きいぞ!
そんな訳で、単純な条件であれば省略を利用して、複雑なものはswitch-case文も入れて検討すればいいのかなぁ。

No Comments

インクリメントとデクリメント

Posted by specterant on 2012.02.07

ActionScriptやJavaScriptなど組むとき、i++や++iのような演算子を使用することがあります。
++(インクリメント)は、1を足して、–(デクリメント)は、1を引きます。

しかし、++や–をオペランド(演算の対象値や変数)の前にするか後にするかで、処理の順番が変わってきます。

/********************************
//前にした場合
********************************/
var i = 10;
var a = ++i * 2;

alert(i); //【結果】11
alert(a); //【結果】22
 
 
/********************************
//後にした場合
********************************/
var i = 10;
var a = i++ * 2;

alert(i); //【結果】11
alert(a); //【結果】20
前にした場合、iに1を足した後に、2を掛けている。
後にした場合は、iに1を足す前に、2を掛けている。
ということになるのですよ!オレ!

ちなみに、–(デクリメント)は、足すのではなく引くに変わるだけで同じ処理をします。
そんな訳で、物覚えが悪いのでメモしたっちゃ。

No Comments

!演算子で表示・非表示を切り替える

Posted by specterant on 2012.01.31

This movie requires Flash Player 10.0.22

タイトル通り、グレーの円をクリックすると、水色の四角形が表示したり、非表示になったりします。
/*******************************************
//そんな訳で、表示・非表示を切り替える記述例
*******************************************/
box.visible = !box.visible;
ほんでもって、サンプル作っていたら、躓いたとこがあったのでメモ。
それは、TextFieldを入れたDisplayObjectをボタンにした時、
buttonModeをtrueにしてもTextFieldの部分だけカーソルが変わらないっちゅ〜とこ。
で、ぶち気になったので調べましたでよぉ。
/*******************************************
//そんな訳で、解決法
*******************************************/
button.buttonMode = true;
button.mouseChildren = false;
う〜ん…Mac版Safari5.1.2はカーソル変わらんねぇ〜。
なんででしょうかぁ〜。
わかりません…。後日調べてみます…。

参考サイト
TextFieldを含むSpriteをbuttonMode=trueにしてもカーソルが変わらない (Unknown Quality)
useHandCursor, buttonMode and mouseChildren : maohao:

Read the rest of this post »

No Comments

Webカメラを使ってみた

Posted by specterant on 2012.01.20

This movie requires Flash Player 10.0.22

とりあえず、Webカメラを使ってみました。
通常、左右反転した状態で表示?されるのですが、それが気になったので下記のように記述し、
鏡に映った状態と同じように表示させてみました。

/********************************
//そんな訳で、反転させる記述例
********************************/
var matrix:Matrix = new Matrix(-1, 0, 0, 1, BitmapData.width, 0);
BitmapData.draw(Video, matrix);

Webカメラを使ってみて、気になった点が…
それは、Webカメラのサイズを設定するCamera.setModeメソッドなんですが、
640×480以上にすると比率が合わなくなった。(4:3の比率の場合)

とりあえず、Webカメラのサイズ設定は、4:3の場合、
640×480以下でってことで覚えときます。

Read the rest of this post »

No Comments