最近買った本

今回は最近買った本をエントリー。

Flash3Dコンテンツ制作のためのPapervision3D入門 (XK BOOKS for developers)
池田 泰延
エクスナレッジ
売り上げランキング: 16279

 

 

Papervision3D入門はずっとやりたかったものなので買ってみました。
・・・が、全然進みません。やっぱ3D難しい!

 

 

 

 

 

こっちはいろんなFlasherが「神の書」として扱っていたので即購入!

この1つ前のやつもこの前読み終わったし、頑張るかな~。

正直、3Dよりこっちの方が楽しい。

iPhone買っちゃいました!

やっちまいましたね。

昨日いきおいでiPhoneをゲット!

去年くらいからFlasherブログをいろいろ調べたりしていて、そんななかでよく目にするのがiPhoneでした。

んで、FlasherでiPhoneといえば、fladdictさんですよね。

ええ、もちろん今日はToyCameraやらQuadCamera、TiltShiftGenを購入させていただきました!

とりあえず、とってみたのはここにTwitterで初画像アップしてみました^^

楽しいなあ~iPhone。

難点はクレジットを持たないのでiTuneCardを買わなきゃいけないこと。

まあ、セブンイレブンにいけばいいんですけどねww

アプリやらメールやら設定がまだいろいろ済んでないけどau+iPhoneなのでぼちぼちやっていくかな。

ただ…寂しいかな、周りにiPhoneユーザがほぼいない・・・。2人くらいかな。

みんな買えばよいのに。

っと、いいつつAndroidもきになってるんですけどね。さすがに3台はいらない^^;

さあて、iPhoneアプリにがぜん興味が沸いてきた。勉強してみようかな・・・。

PHPでCSVを用いた場合のあいまい検索

もう一つPHPでつまづいたのでメモ。

1つ前のエントリーで書いた「2次元配列のソート」と同時につまったのが、「CSVデータの中身をあいまい検索」。

SQLならそもそもLikeコマンドがあるからいいんですけど、CSVデータだとただの配列なのでどーしたものかと。

これもすごく悩みました。

さっさと結論を書くと、配列を要素数分forかなんかで回して、similar_textでマッチする文字数を検索でした。

similar_textは比較対象と検索文字の類似性を求める関数です。

 

って、わかりづらいですね。コード書きます。

 

//$itemsは元の配列
//$cは合致した文字数
//$wordは検索文字
for($i=0;$j<count($items);$i++){
     $c=similar_text($word,$items[$i]);
     if($c==strlen($word)){
      //合致した場合の処理
     }
 }

ここでのポイントは元の検索文字のバイト数とsimilar_textを用いて得られた結果の文字数で整合性を取っている部分です。

ここを同じにしておかないと、検索元の文字の一部が含まれているだけで合致したことになってしまうので・・・。

けど、そこは「もしかしたら~」の検索に使えるかもですね。

PHPでの2次元配列のソート

今回はなんとなくPHPです。

なぜかというと、凄く追い込まれてしまったのでメモ的に載せます。

2次元配列のソートをしたい場合なのですが、方法としてはarray_multisortかusortを使う方法があると思います。ってか、自分が無知なだけかもしれませんがこれ以外知りません。

んで、CSVにあるデータを配列化して出力するってのをよくやってるのですが非常に困りました。

やった手順としては

 

1.CSVデータを配列として取得
2.その配列をusortを使ってソート

 

これだけでできるはずですよね?

しかし、なぜかできず・・・1時間以上悩みました。

んで、いろいろと考えているうちに気づきました。

 

「あ、CSVを2次元配列で取得してない・・・」

 

そう、ただの1次元?配列でしか取得してませんでした・・・。

ってことで、配列で取得したあとに2次元配列化してやっとこ完成。

あー、よかった。

event.currentTarget

 

最近仕事に追われてめっきりネタを考えてませんでした。。。

今日は少し余裕ができてネタもできたので久々に書きます。

今回はマウスのクリックの動作について

たとえば画面内に同じサイズのMCをグリッド上に9つ並べたとします。

そしてそれとは別にもう一つ枠型のMCを用意します。

やりたいことは単純で敷きつめられたMCのどれかをクリックしたら、枠型のMC(以後frame_mc)を移動させるというものです。

サンプル画像01

で、9つのMCは1つのMCでフレームに9種類並べて(9フレーム)配置する時にフレームを飛ばしてランダムに並べてるとします。←分かりづらい?

そうした時に単純に並べている画像に対してそれぞれaddEventListenerでCLICKイベントをつけます。

for(var i:uint=0; i<nums; i++){
    mc_ary[i].addEventListener(MouseEvent.CLICK,onChange);
}

function onChange(event:MouseEvent):void{
    frame_mc.x=event.target.x;
    frame_mc.y=event.target.y;
}

こうしてframe_mcをそれぞれの場所に移動させるものをonChange関数に書いたのですがさっぱりうまくいきませんでした・・・。
どううまくいかないかというと、xもyも0に行くのです。

しばらく「あーでもない、こーでもない」とやっていて、見つけたのが

「event.currentTarget」

こいつ。

まあ、見た目からして一つ上のターゲットってことでしょうけど、こんなものがあったとはつゆ知らず。

ためしてみたらバッチリ!

どうやら、内包されている場合は中のオブジェクトに対してtargetが働いているみたいです。なので、すべて(0,0)に向かっていったみたいです。

MCを内包してクリックイベントを取る場合はみなさん気をつけましょう・・・って俺だけかもしれない。。。

一応、以下が正しい表記です。

for(var i:uint=0; i<nums; i++){
    mc_ary[i].addEventListener(MouseEvent.CLICK,onChange);
}

function onChange(event:MouseEvent):void{
    frame_mc.x=event.currentTarget.x;
    frame_mc.y=event.currentTarget.y;
}

燃え尽き気味です

なんとか去年から持ち越してる

 

ActionScript 3.0 アニメーション
Keith Peters
ボーンデジタル
売り上げランキング: 28922

 

 

 

これをなんとか続けて、やっとインバーキネマティクスとか3Dの基本に辿りつきました!

 

が・・・

 

限界です・・・。なんだかさっぱり理解が追いつきません。

理解してなんとか有用な記事を書きたいな~と考えていたんですが、自分がまだまだでした・・・。

そんなこともあって、自分がよく考えることがあります。

 

「はたして自分がFlasherとしてどの辺の位置付けか?」

 

これって気になりません?

まあ、人と比べることに意味を感じないとかそういった意見は別にして、自分の技術とかがどの辺の位置にあるのか。

まわりにあんまり同じくらいの技術量のFlasherがいないものでホントわかんないんです。

んで、まあ購読してるRSS見てたらいいのがありました。

 

「Flasherのレベル10」を考えてみた。 | エントリー | _level0.KAYAC

 

KAYACさんのページにこんなのがありました。

これでいくと、自分はおそらくLevel5くらいです。

いろいろすっ飛ばしてる部分もあるのでそのくらいかなあと。

昔から思ってる目標地点としてはLevel8くらいですかね。ここを目指したいです!
いや、だってLevel9とかだと英語の語学力も必要になるしね…。

自分がどの位置にいるかちょっと見てみるといいかも?です。

年末・年始のご挨拶

明けましておめでとうございます。

書いてる途中で用事ができて結局、年を越してしまいました。

去年は、いろいろな出会いや出来事がありました。

出会いのおかげで自分の世界が広がりました。

出来事のおかげで以前より、思慮深くなれました。

いろんな出来事のおかげで成長できたと思います。

去年であった全ての人に感謝です。

 

今年は実際フリーランスが続けられるかどうか瀬戸際です。そして、このブログがちゃんと続けられるかも自分の課題です。

まあ、このブログを書き出したころからFlashの仕事がぼちぼち増えだしたのでなんとか続けていきます!

今年の目標は仕事の半分以上をFlash関連で固められることと貯金!

もしかしたら就職とかすることになるのかなあ~とも考えますが。。。

まあ、なんにせよ今年もみなさんよろしくお願いします。

MovieClipの複製

続いてはMovieClipの複製です。

AS3になってこれが無くなったのは知ってたけど、実際その場面に直面するとやっかいですね。

自分がやろうとしてたのは

 

「複数の画像を読み込んでおいて、プロパティを持たせて使いまわす」

 

ってことをやろうとしてたんですけど、これが画像の枚数が不特定多数なのもので1つ1つをクラス化できないわけです。

っていうか知らないんです。そんな方法。

とりあえず、CSVのリストがあってそれを読み込んで、配列にそれぞれぶっ込んでおくまではいったんですけど何回も使いたいわけですよ。

んで、結局考えたのは「Bitmapの複製」。

こっちの方が早いかなーと。んで、いろいろ調べてたらこちらのサイト

 

Flashの描画速度をBitmapDataクラスを使って上げる方法

 

を参考にさせてもらいました。drawよりもcopyPixelsの方が早いですと?!

けど、drawは拡大縮小・回転などが可能だけどcopyPixelsはそういったことはできない。

拡大縮小とかあとからすることなんで、全然OKです^^

これで簡単に解決しました!

配列型のカスタムクラス

「昨日の自分よりもレベルアップ」が今の自分の合言葉です。

…いや、「いつもこう考えとけよ!」とかは無しで^^;

とりあえず、最近AS3やってて覚えたことを書きまーす。

 

最近は、配列をいじることが多くて・・・っというかAS3使いだして配列を使いこなさないと頭の中で整理しきれない!って感じです。

んでまあ、そのために配列をシャッフルするやつとか複数ロードした外部画像を配列へ補完とかしてたんですけど、どうにも配列をカスタムクラスでつくるとちゃんと返ってこなかったんですよねー。

配列=new クラス名(配列)

とかで渡して返してほしいわけですよ。んで、配列[0]とかをみにいくと、「存在しません」っていっつも言われるわけですTT

ここでものすごーく詰まってて、だいぶサーフィンしました。

んで、まあ出た結論は

「クラスをDynamicに宣言する」

これでした。

正直、イマイチDynamicとかstaticとかを理解しきれてない部分もあってなんだかなーって感じですけど、とりあえず

「配列で戻したい時はDynamicで宣言する!」

これを呪文として覚えときます。属性の違いはまた後日勉強だなあ。

カスタムクラスやってみました。

どーも。

微妙にASに対する熱が冷めつつある僕です。

 

こんなこっちゃいかん!と思って、今回はカスタムクラスをやってみました。

(続きを読む…)

Get Adobe Flash playerPlugin by wpburn.com wordpress themes

Bad Behavior has blocked 7 access attempts in the last 7 days.