[EV] FITC Tokyo 2009 2009/11/28

気になった点の覚え書きメモ

◆Sneak Peek of Max 2009 / Lee Brimelow
1)FLASH CS5
・コードエディタの改善:カスタムクラスのimport可能
・TLF:IDEでToolパネルができる
・DecoTool:JSでカスタムできる
・CompileErrorPanel:
・XFL:現状ライブラリ内のデータを外部化できる?
・Code Snipetts
・FBとの連携
・コンポーネントのプロパティ設定:デフォルトのToolパネルに含まれる
・FontEmbedPanel:フォントの管理
・FLVPlayBack:パブリッシュしなくても動画再生可能

・TFL
→はみ出したテキストはイラレっぽいテキストボックスの処理が可能。
→簡単にコラム化。
→文字とか縦

・iPHONE
→OpenGLとは違うエンジンでうごく。(簡単なものに向いてる)
→Winだけでも作れる

・FLASHPLAYER 10.1
→RAMの消費量半分以下に
→マルチタッチ(PCでもOK)
→向きとか加速度とか
→マイク、音声の取り込み
→uncaughtError:デバッグプレイヤでのポップアップエラー対策が可能?

・AIR2.0
→他のアプリが直接起動可能(.docとか.flaとか)
→dmg/exe形式でパブリッシュ:コマンドラインでOSにアクセス可能
→socket通信できる?
→USBKeyのイベントも取れる?
→WEBKitはHTML5、css3対応

◆Making Thing Move / Keith Peters
・書籍:Actionscript3.0アニメーションの内容
(速度、加速度、跳ね返り、バネの動きの説明)

・GoASAP:Tweenを作るツール

◆Connecting the Dots / Mario Klingemann
・素数の音楽:書籍
・MathGraphics:書籍
・wolfram alpha:数学のwiki
・オートマトン:ライフゲーム
・ボロノイ図
・ランダム値でテストするときはランダム値を保存できる仕組みを用意する

◆Quick as a Flash / Grant Skinner
http://gskinner.com/talks/quick/
最適化の話
・uint/int/Numberについて
→FP9:uintが一番遅い
→FP10:uintが一番早い
・デバッグツール
→PerformanceTest.as:framework
→FlexProfiler:おすすめ

・CodeOprimize
1)syntactical(文法的)
・前提
→リリースビルドでパブリッシュすること(デバッグビルドは遅い)
→TAAS:SWFを最適化してコンパイルしなおす
・計算はさせない:a = 10+5;よりa=15;
・割り算(/)より掛け算(*)を使う
・ビット演算を使う。Math.floor(num)の代わりにnum|0
・型指定を的確に
・ifを使う場合は処理の順番に注意
・インスタンスメソッドを使う
・myClass.hoge()とかは遅い

2)archtectual(設計的)
・インスタンス化を減らす
・ディープアクセスを減らす
・funtionは遅い
・dispatchEventよりもcallbackを使う
・collectionについて
→それぞれ向き不向きがある

・WEBCAM
→フレームレートを独立して変更可能

graphicsについて
・rendering関係
→マスクはさける
→ベクターデータは形の単純化
→色、アンチエイリアス
→ビットマップにする
→DisplayObject.z = 0でビットマップキャッシュの保持
→biltting:ビットマップ分割

・filter関係
→領域に注意(空白領域を削る)
→alpha:0< visible:false < removeChild() ・composite関係 →blendMode ・GC →newを減らしてGCさせないように →ObjectPoolを利用(使いまわし) ・Janitor.as:イベントを登録して、削除とかできる ◆BigSpaceship:Digital Creative Agency / Joshua Hirsch ・プロジェクトはチーム単位で ・チームにはリーダーは特になし(フラットな関係) ・全員がクリエイティブ ・クライアントワークと同じくらいプライベートワークにも力を入れる(作りこみ) ・プライベートワークでジッケンしたものをクライアントワークに反映 ・最終的にはデジタルでもアナログ的なアプローチで製作

[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");
})();

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

[PHP]PHPでBasic認証を突破する方法(IDとPASSWORDがわかっている状態で)

すぐ忘れるのでmemoする。

http://ユーザー名:パスワード@ドメイン名という感じ。
たとえば、http://www.hoge.comがBasic認証かかっていて、
ID:sakusan、PASSWORD:hogeo、というIDとPASSの場合は、

http://sakusan:hogeo@www.hoge.com

こんな感じでいいと思う。

参考:PHPでBASIC認証のかかったページに接続(ログイン)する方法:MiuxMiu