Posted by yamada on 2009/08/28 – 11:58
Filed under Flash
Tagged as Flash, JavaScript, JSFL
以前書いたJSFL「Flash CS4のプロジェクト代替JSFL」もそれなりに便利なのだが、もっと小さい単位でパブリッシュしたことが多いことに気づいた。
開いているものすべてをパブリッシュ
以前書いたものにチェックボックスをつけたり発展させる形で改良しようかとも思ったが、GUIの準備をしたりとちょっと時間がかかりそうなので、別の方法を考えてみました。
それで思いついたのが、「開いているflaファイルすべてをパブリッシュ」という選択肢。
JSFLコード
以下のようなコードを書き、JSFLファイル置き場(WindowsXPの場合→C:\Documents and Settings\<ユーザー>\Local Settings\Application Data\Adobe\Flash CS4\ja\Configuration\Commands)においておけば完了です。
[JavaScript]
/**
* 開いているFlaファイルをすべてパブリッシュするJSFL.
* @author torques.jp
* @since 2009-08-26
* @version 1.0
*/
fl.trace( “== TORQUES-PublishAll.jsfl – start ==” );
for (doc in fl.documents) {
var flaDoc = fl.documents[doc];
fl.trace(” publish – ["+flaDoc.name+"]“);
flaDoc.publish();
}
fl.trace( “== TORQUES-PublishAll.jsfl – finish ==” );
[/JavaScript]
実際使っていたらいろいろと使えるシーンが多いことに気づいた。
まさに “Less is more”!
Posted by yamada on 2009/08/26 – 08:00
Filed under AS3, Flash
Tagged as AS3, E4X, Flash, XML
XML処理の速度についていろいろな方法があるがどの方法がよいのか、を見極められないシーンが多い。
一度処理速度について調べておきたいと思っていて、とりあえず一つだけ調べたのでその結果をメモしておきます。
属性取得の速度
比較してみたのは属性取得の速度。
E4Xライブラリを使って属性にアクセスする場合、次のような3種類のコードになります。
1
2
3
4
| var xml:XML = <data><value id="10">20</value></data>;
// var id = xml.@id; .. 方法1
// var id = xml.@["id"]; .. 方法2
// var id = xml.attribute( "id" ); .. 方法3 |
後述するコードを使用して、これらの違いを比べてみました。
結論
比較するために使用したコードは後述しますが、私の環境では平均して方法1が最も高速で、続いて方法2、方法3、という結果になりました。方法1は方法3よりも20%速く、方法2よりも5%速い、という結果になりました。
たまーに結果が入れ替わることもありますが、それらはおそらくキャッシュや別プロセスなどの問題だと思われます。
文字列処理がワンクッション入ると遅くなる、ということなのではないだろうか、と推測します。
このエントリの結論「E4Xが使える環境では属性データは@でアクセスすべし」
テストコード
以下にテストに使用したコードを載せておきます。
Read More »
Posted by yamada on 2009/08/25 – 03:52
Filed under PHP
Tagged as PHP
なんだかんだで2ヶ月前のこのエントリ以来PHPのエントリを書いていない。
実際、今月頭にPC環境の移行をしてからついこないだまでPHPを入れてすらいませんでした。
と、まぁ、こんな感じで、ゆるーくPHPのメモを書いてみます。世の中にPHPドキュメントはごまんとあるので、あくまで自分向けのメモとなります。
GET/POSTメソッドの値を受け取る手順
PHPでGET/POSTメソッドで渡された値を受け取るのは簡単で、1行で説明できます。
- $_GET, $_POSTという連想配列に値が格納されている。
終わり。
超シンプルなサンプルは次のようになります。
1
2
| // hoge.php?foo=bar&foo2=barbar
echo $_GET["foo2"]; // →"barbar" |
GET or POST?
値の受け渡しがGETメソッドなのか、POSTメソッドなのかは、$_SERVER['REQUEST_METHOD']という変数に格納されているようです。
1
2
3
4
5
6
7
8
9
| $req_method = $_SERVER['REQUEST_METHOD'];
if( $req_method == "GET" ){
// GETメソッドへの対応.
echo "check for GET<br>\n";
}
else{
// POSTメソッドへの対応.
echo "check for POST<br>\n";
} |
連想配列をまわす-foreach
$_GET、$_POSTというのは連想配列な訳ですが、PHP初心者的には、この連想配列の中身を調べる手順の方が重要なメモとなります。
PHPにはいろいろと便利そうな関数が用意されているようですが、foreachで回すのがおそらくシンプルで覚えやすい方法なので、まずはforeachで回してみます。
1
2
3
4
5
6
7
8
| // 通常の配列.
foreach($normal_array as $value){
echo "$value<br>\n";
}
// 連想配列.
foreach($_GET as $key => $value){
echo "$key -- $value<br>\n";
} |
連想配列をまわす-while
whileで回す方法もあったのですが、これは一見して意味が分かりにくい。each関数で処理するようですが、メモ程度に押さえておくだけにしよう。
1
2
3
4
5
6
7
8
| // 通常の配列.
while($value = each($normal_array)){
echo "$value<br>\n";
}
// 連想配列.
while(list($key, $value) = each($_GET)){
echo "$key -- $value<br>\n";
} |
連想配列をまわす-その他
PHPには他にも配列操作用の関数があれこれ用意してありますが、まぁ、無理して使うこともなさそうな気がします。一応、便利な使い道もありそうなarray_walkだけはメモしておく。
1
2
3
4
| function print_values( $value, $key ){
echo "$key -- $value<br>\n";
}
array_walk( $_GET, 'print_values' ); |
今日はここまで。
Posted by yamada on 2009/08/22 – 01:35
各所で絶賛されているこのゲーム、私も買ってみました。

「SPACE INVADERS INFINITY GENE」
INFINITY!
さすがタイトーが出しているだけあって、かなりやり込みがいのあるシューティングです。
まずはそのシンプルでかっこいいグラフィックと、ZUNTATAの音楽に目と耳を奪われ、しばらくやってみました。
昔はシューティング好きだったのですが、弾幕系とかそういうやつになってから手を出さなくなって来た自分でも楽しめるレベルデザイン。 とりあえずステージをクリアしてもエクストラステージやボーナスが多くあり、それをunlockしていく楽しさは洋ゲーのよう。地道に点を稼げば、次々とunlockされるので、それは普段ゲームをやらない人でもうれしく感じると思う。
特に、序盤の進化していく様子をステージで表現する演出がとても気持ちいい。
値段は、iPhoneアプリとしては安くはない600円ですが、内容を考えたら妥当。むしろ安くてまずいゲームを買うよりこちらを買うべき。
サントラも!!
iTunes Storeでサントラも販売開始されたようで、ちょっとこちらも気になりますね。
「スペースインベーダー インフィニティジーン iPhone/iPod Touch Edition サウンドトラック」
ゲームでもサウンドを集めることでいつでも再生できるようになるのですが、一つの曲をループさせることしかできないのです。これも順番をプログラムしたいとは言わないけど、ある程度次へ次へと流れていってくれたらいいのになぁ、と思います。
EXTREMEも!!!
DSで出ていたSPACE INVADERS EXTREME、こちらも買った当時遊んでいたのですが、こちらは新しいルールを加えてそのルールを理解していき、その上での面白さを楽しむ感じがありました。
画面の派手さや音楽との融合性はこちらの方が強く、例えばQ ENTERTAINMENTのゲームが好きならEXTREMEの方がいいかもしれない。
気づいたら2も出ていた。
その後
このエントリを書いてから約1週間後、コンプリートしました!
以下、若干ネタバレ気味の文章があるので、気になる人は読まないようにしてください。
Read More »