[AS]TextFieldで幅固定、高さ可変とする設定

手順としては、
1.TextField.autoSizeをnone以外
2.TextField.wordWrapをtrue
3.TextField.widthを設定
(設定の順番は変えてもいいみたい)
autoSizeをnone以外にして、wordWrapをtrueにするのがポイントらしい。

参考:trick7:TextField が思いのほか細長くなったら

[AS]progression4 preloaderの表示オブジェクトコンテナー foreground/background

preloader.fla(プリローダー)に表示オブジェクトを追加する際は、foregroundもしくはbackgroundにaddChild()する。
CastPreloader.foreground
CastPreloader.background

foregroundは、メインコンテンツ(index.swf)よりも上の階層。
backgroundは、メインコンテンツ(index.swf)よりも下の階層

つまりコンテンツの背景として表示したいものはbackgroundに、
常に表示させたいものは、foregroundに、addChild()

[AS]デザインパターンについていろいろ

あとで読む。

【デザパタ入門】GoFによる23パターンの概要・分類・使用頻度:独学ActionScript

参考意見
doke/Twitter
doke/Twitter
clockmaker_core/Twitter
coppieee/Twitter

[AS]ビット演算で計算

メモ(偉人のTweetより)

i = i % 4; の代わりに i = i & 0x03;
n = Math.max(n, 255); の代わりに n = (n | (((n & 0xffffff00) + 0x7fffffff) >> 31)) & 0xff;

参考:
beinteracticve:twitter
beinteracticve:twitter

[AS]IEのFLASHで日本語入力ができない時があることがある

かなり悩んだのでメモしておく。

現象:IE8で日本語入力ができない。
いろいろテストして原因をさぐってみると。。。
Filereference.browse()を実行した後が半角英数しか打てなくなるなってる様子。
IE8、日本語入力、FLASHとかでググってもヒットせず、途方にくれていたら、
どうやら、これはIE7からの問題だったようでした。
IE7、filereferenceでググれば一発でした。

解決策が以下に書かれています。
参考:IE7でのFileReference関数について(FLASH-Japan)

[AS]BitmapDataからRGB色情報を取得し表示する。(桁数を調整)

桁数の調整について質問され、上手い回答が答えられなかったのでメモ。

package  {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	
	/**
	 * ...
	 * @author 393
	 */
	public class GetPixel extends Sprite{
		private var bmd:BitmapData;
		private var bm:Bitmap;
		
		public function GetPixel() {
			
			bmd = new BitmapData(stage.stageWidth, stage.stageHeight, false, Math.floor(0x0000FF ));
			bm = new Bitmap(bmd);
			addChild(bm);
			stage.addEventListener(MouseEvent.CLICK , clickHandler);
		}
		private function clickHandler(e:MouseEvent):void {
			var posX:Number = mouseX;
			var posY:Number = mouseY;
			var rgb:uint = bmd.getPixel(posX, posY);
			//↓これだと桁数が必ず6桁にならない
			trace( "rgb : " + rgb.toString(16) );//出力:ff
			
			//桁数を7桁にする
			rgb = rgb + 0x1000000;
			//↓2桁目~7桁目を抽出
			trace( "rgb : " + rgb.toString(16).substr(1,6) );//出力:0000ff
		}
	}
}

[AS]配列で任意の位置に値を追加する方法

配列で指定した位置に値を追加する方法。
指定した位置を削除するときと同じArray.splice()を使う。

以下、削除、追加のソース

var array:Array = ["a","b","c"]
trace(array); //出力:a,b,c
var number = 1;
array.splice(number,1);
trace(array); //出力:a,c
array.splice(number,0,"d");
trace(array);//出力:a,d,c

[AS]TextField.defaultTextFormatを複数作って、TextFormatを追加していける

defaultTextFormatの挙動について、
名前の通り、TextFieldに設定されている、TextFormatを一度デフォルトに戻してから、新しいFormatを設定するものと思ったら、上塗りで追加していくことが可能でした。
(今まで検証せずに使ってた、恐ろしい・・・)

↓以下フレームアクション

var tf:TextField = new TextField();
var str:String = "ほげほげ";
tf.autoSize = "left";
addChild(tf);
//テキストフォーマット1個目
var tfm1:TextFormat = new TextFormat();
tfm1.size = 50;
//1個目を設定
tf.defaultTextFormat = tfm1
//テキストフォーマット2個目
var tfm2:TextFormat = new TextFormat();
tfm2.color = 0xFF0000;
//2個目を設定(1個目の設定を残して上塗り設定)
tf.defaultTextFormat = tfm2;
tf.text = str

一点だけ注意は、tf.text = strをTextFormat適用後に設定してること。
これは適用後にしないと、それ以後にdefaultTextFormatしても無意味。

[AS]フォーカスをステージに戻す方法(どこもクリックされていない状態)

以下、1行でOK。

stage.focus = stage;

[AS]定義と同時に実行する無名関数

こういう書き方もあるのね。

//フレームアクション
(function(){
trace("a");
trace("b");
trace("c");
})();

うまい使い道がうかばないけれども。、