2008年09月07日

E4XでXMLの全てのノードから検索

Flexのツリーコンポーネントで特定のノードを検索する必要があり調べたのでメモ。
var myXML:XML =
<root>
<child name="child1" />
<child name="child2">
<child name="child2-1" />
<child name="child2-2" />
<child name="child2-3" />
</child>
<child name="child3" />
<child name="child4" />
<child name="child5">
<child name="child5-1" />
<child name="child5-2" />
<child name="child5-3" />
<test name="name"/>
</child>
</root>
上記のXMLがあったとします。
<child name="child2-2" />
で、上記ノードを取得したいとすると、xmlの構造がわからない場合には
myXML.descendants().(@name=="child2-2")
もしくは
myXML..*.(@name=="child2-2");
で取得可能。
..とdescendants()は同じ意味で全ての子、孫などのノードを対象に検索してくれます。

2008年09月03日

FlvPlaybackの再生が途切れる

flashのflvプレイヤーをFlvPlaybackコンポーネントを使って作ったのだが、再生時に微妙に一瞬途切れてしまう現象が発生したので、ぼんやりFlvPlaybackクラスのヘルプを眺めているとFLVPlayback.bufferTimeのところでこんな記述が。
HTTP 経由でプログレッシブダウンロードされる FLV ファイルの場合は、この値を増やしても利点はほとんどありません。
今回はプログレッシブダウンロードなので、なーんだ利点なしかと思ったらさらにこんな記述が。
ただし、処理速度の遅い古いコンピュータでは、高品質ビデオの再生が改善されることがあります。
なに!なになに! デフォルト値が0.1(単位は秒)なのでこの値を5に設定すると、無事この現象は発生しなくなりました。 めでたしめでたし。

2008年08月29日

Flash Player 10でSWFUploadが動かない?

Flash Player 10では SWFUploadが動かなくなるかもしれません。 その理由は、Flash Player 10ベータでのセキュリティに関する変更が関係しています。
以下上記サイトから引用
Flash Player 10ベータでは、FileReference.browse操作とFileReference.download操作は、ユーザ操作によってトリガされたActionScriptを通じてのみ開始できます。これには、マウスのクリックやキーボード入力などの操作が含まれます。
SWFUploadは、JavaScriptからFilereference.browseを実行しているので、上記の条件から外れてしまいます。

SWFUploadを使っている人はご注意を。
なんか対処方法あるのかな?

2008年08月28日

screenが便利です。

僕の様ながさつな人間は、よく複数のターミナルを立ち上げそれぞれsshで違うホストに接続してどれがどれだか分からなくなり、テスト環境だと思っていたら実は本番環境で。。。みたいなヒヤリとする経験が何度かあります。 そんな僕にうってつけなのがscreenです。 screenは、一つのターミナルで複数の仮想端末を切り替えて操作ができ、しかも画面を分割してそれぞれに複数の接続を表示する事も可能です。

早速インストール。

sudo port install screen
これだけです。portって本当に便利。

後はここのサイトの方がまとめてくださっているので頑張って使ってみてください。
てか僕はこのサイトを参考にやっただけです。

.screenrcの詳しい解説はここのサイトが参考になります。

以下僕のためのメモ。

•ホームディレクトリに.screenrcファイルを作成して設定。
•screenでで起動。
•screen -t スクリーン名 で新規スクリーン作成
•ctrl+jでエスケープ後にlでスクリーン一覧を表示し選択
•ctrl+jでエスケープ後にSでスクリーンを分割
•ctrl+jでエスケープ後にtabでスクリーンを移動
•ctrl+jでエスケープ後にxでスクリーンを閉じる

2008年08月25日

stella

なぜか、またまた知り合いの方がまつげエクステのお店をやられているそうなので、ホームページのお手伝いをさせていただきました。 西川口駅側にあるので、お近くにお住まいでネイル、まつげエクステやネイルに興味のある方は是非チェックしてみてください。

stella

今回はノーギャラをいいことに、納期を無視して前々から使ってみたかった、Progression Frameworkを使ってみました。
Progressionかなりナイスです。最初はpageやsceneなどの概念が理解できずに苦労しましたが、理解ってしまえば確かにサイト制作の時間は大幅に短縮できると感じました。
今はサンプルのまんまの様なサイトですが、次回からは自分なりにボタンの挙動など、自分なりに拡張して使ってみようかなと。

そういえば近々Progression 3 がリリースされるらしく、それを記念してイベントが行われるそうです。
残念ならが僕はいけませんが、興味のある方は参加してみてはいかがでしょうか。

GINZA TECH LOUNGEに行ってきました。

MTL(リクルートメディアテクノロジーラボ)で行われた GINZA TECH LOUNGE に会社の同僚と行ってきました。
本当はビール目当てでいったのですが、誤情報だったらしく、当日はビールではなく、おいしいお茶をいただきました。(笑)
しかし!会の終了後にはなんとワインをいただきました!ラッキー。

発表はみなとても興味深かったです。
個人的に興味のあった、iPhoneアプリの開発に関する舩見さんの発表はとても参考になりました。会の終了後に図々しく舩見さんと刺交換させていただいて、いろいろお話を聞かせていただきました。

そして、ラストバッターの寺井さん(a.k.a.trick7)の登場です。
寺井さんにはいつも貴重な情報と、同世代フラッシャーとしてパワーをいもらいっぱなしなのですが、今回も実際の作品を作るに至った経緯などから話していただき、案の定めちゃくちゃ刺激をもらいまくりました。
寺井さんがおっしゃっていた、”とにかく手を動かす”、”反射的に作る”。
これらの事は基本的な事かもしれないけど、最近ではプログラムをきれいに書く事ばかりを考えてしまって、フラッシュを始めた頃の、「思いついたらとにかく作る」っていう姿勢を忘れてるなーと。

基本だけど大事な事をちゃんと行っている寺井さんの姿勢をリスペクトしつつ、ダメダメな自分に少しへこみつつ。。。
今後は寺井さんの足下にも及ばないけど、情報を受けるだけでなく、少しは自分も発信する側にもなるべくちゃんとブログを更新する事を決意した30の夜でした。

2008年08月24日

Event メタデータタグの使いどころ

他人のソースを見てると、
[Event(name="eventName", type="package.eventType")]
↑こんな謎のメタタグを見かける事があり、気になって少し調べてみたのでメモ。

結論から言うと、AsDocのイベント記述用とmxmlファイルでコンポーネントのイベントパラメータとして認識せさる用です。

書式は共通していて、
[Event(name="eventName", type="package.eventType")]
"name"パラメータはイベントの名前を指定して、"type"パラメータはイベントを定義するクラスを指定します。

AsDocで使う場合には、メタタグをclass宣言より上に記述する必要があります。

詳しくは、ここここで。

2008年06月02日

IE5.5だとSWFObject2.0が動作しない

浦和にあるまつげエクステサロンmidoのサイトでSWFObject2.0を使ってみたのだが、IE5.5だと見られないとの報告を受けたので、JSerな方にちと調べてもらいました。 その結果、どうやらIE5.5だとDOMの扱いがおかしいらしく、上手く動かない事が判明。

SWFObject 2.1 beta1でな直っているらしいので早速試してみよう。

追記
SWFObject 2.1 beta1で無事動作する事を確認しました。


2008年05月30日

mido

知り合いの方のまつげエクステサロンのサイトのお手伝いをさせていただきました。
まつげエクステ専門サロンmido
武蔵浦和駅徒歩3分の場所にあるので、近くの方でまつげエクステに興味のある方は是非チェックしてみてください!

2008年04月04日

バブルソート

バブルソートを調べてみたのでメモ。
バブルソートってのは、常に最後の二つを比較して、左の方が大きかったら要素を交換する。
それを要素分ひたすら繰り返すってことなんだな。多分。
以下プログラム。

var arr:Array = [4,6,2,9,1,90,22,89,7,11,2];

for ( var i:Number = 0; i < arr.length; i++ ){
for (var ii:Number = arr.length; ii >=1; ii-- ){
if(arr[ii] < arr[ii-1]){
var tmp_num:Number = arr[ii-1];
arr[ii-1] = arr[ii];
arr[ii] = tmp_num;
}
}
}
trace(arr);
出力結果:1,2,2,4,6,7,9,11,22,89,90