HTML上に複数のボタンやリンクを配置してそれぞれからPOST送信したい、
しかも送信したいパラメータのキーは全部同じで値だけがそれぞれ違うなんて場合に送信ボタンの数だけformタグを設置するのは気持ち悪いし、Ajax的なものまで持ち出すのは面倒だと言う時のTips。
HTMLからはJavaScriptの関数を呼び出すだけでOK
まぁ散々言われてることだとは思うけど、
Macでzip圧縮してWindowsの人にファイルを送ると.DS_Storeとかのドットで始まる余計なファイルが混入したり、日本語を使ったファイル名が文字化けしたりと色々問題がある訳です。
タイトルまんま。
FlashでCookieを使うっていうと普通はSharedObjectクラスを使うと思うんだけど、
SharedObjectだとJavaScriptやPHPとかのFlash以外の技術との連携がある場合にイマイチ不便だったりする。
で、作った。
こんな感じで使います。
メソッドは全部静的なメソッドなのでインスタンス化しないで使います。
//Cookieの取得 var value:String = Cookie.get( "key" );
//Cookieに保存
var cookie:Object = { name:"Foo" , pass:"Bar" };
Cookie.set( cookie );
//Cookieを削除 Cookie.clear( "key" );
コーデイング時の小技。
//*/ trace( "先頭のスラッシュが2つ並んでいる時に実行" ); //*/
↑みたいな感じでコメントアウトしておくと先頭のスラッシュを削除するだけで簡単にコメントアウトできる。
これは今までも結構、多用してて他の人のソースとかでもチョクチョク見かけるので割とメジャーなtipsなんだと思う。
そんで自分的に結構ヒットしたのが以下の書き方。
//*/ trace( "先頭のスラッシュが2つ並んでいる時に実行" ); /*/ trace( "先頭のスラッシュが1つの時に実行" ); //*/
この状態だと上段のブロックのコードだけが実行されて、
先頭のスラッシュを削除すると逆に下段のブロックのコードだけが実行されます。
開発中にデバッグ用のコードと切り替えて使ったりできて便利。
実験のメモ
配列をfor、whileなどで処理する際の実行速度の検証。(AS3.0のみ検証)
まずは配列への値の代入。
var array:Array = [];
var n:int = 100000;
var start:int = new Date().getTime();
for( var i:int = 0 ; i <n ; i ++ ){
//array.push( "a" );//実行結果:12ms
//array[ array.length ] = "a";//実行結果:11ms
array[ i ] = "a";//実行結果:5ms
}
var finish:int = new Date().getTime();
var total:int = finish - start;
trace( "total : " + total + "ms" );
結果は、
array[ 添字 ] が一番早くて他の2倍近い速度。
array[ array.length ] と array.push( “a” )では若干の差はあれど、ほぼ同等。
上の結果はwhileで書き直しても、速度、結果ともほとんど同じ。