2007年12月03日

ColdFusionのisValid関数

ColdFusionに用意されているisValid関数は、メールアドレスや日付、URLの正しい記述になっているか調べてくれる便利な関数なんですが、メールアドレスであっても、失敗してしまう条件がありました。

aaa.@playon.jpです。@前に.で終わっているとダメなんです。なので、この関数は使えなくなってしまい、正規表現で処理するように変更しました。  
Posted by tomohip at 22:11Comments(0)TrackBack(0)

レイトン教授と悪魔の箱

「レイトン教授と悪魔の箱」は気になっていたけど、予約せず当日を迎えたんですが、やっぱり気になってきて、会社帰りに最寄り駅にあるトイザらスで購入。

13時間ぐらいやって、クリア。現在132問。バニッシュの残り2問が面倒で嫌い。

久々にゲームをやったんですが、こういうのを作るのは楽しそう。  
Posted by tomohip at 00:16Comments(1)TrackBack(0)ゲーム

Wii Fit

Wii Fitを購入。

脳トレと同じ感覚で体を鍛えられる。やっていて、つらいよりは面白いので続けられそう。

綱渡りが難しい。フラフープは面白い。
日曜日は、朝にWii Fitをやってそこから、ジムへと出かけた。  
Posted by tomohip at 00:12Comments(0)TrackBack(0)ゲーム

Flashムービーの圧縮(2)

Flashムービーの圧縮の続き。

その後、スクリプトのあまり入っていないアニメーションだとローディングはすんなりと始まったので、問題のFlashはクラスの定義が多すぎて、白い画面が続いているんだと思う。

  
Posted by tomohip at 00:08Comments(0)TrackBack(0)

2007年11月29日

ファイル管理

Flashの作業は、通常のHTMLと比べれば、プログラムとデザインの結合は高くて、ASは分離できても、インスタンスの配置やフレームアクションについては、flaファイルをさわらないとダメで、デザイナーとのキャッチボールは多い。

その中でよく起こるのが、デグレ。

よくやるのは、
****-20071128.fla
としてどんどんflaファイルを増やすのがよくある話なんだけど、いつの時点が最新なのか、双方で確認しないと、手元にあった古いファイルを更新して、新しい日付でファイル名をつけてしまえば、ファイル名の日付も目安にしかならない。flaファイル同士でマージなんてできないし。手作業で合わせるしかない。

svnで管理するのが一番なんだけど、今のところ、開発部でしか運用していないので、ほんとは全社でやりたい。ただ今までのフローから大きくかわるので、その辺を理解してもらわないとダメで、そこの説明を割く時間があるのかどうか。

明後日は、社内で勉強会ってことで、話すんですが、この辺を絡めて話したいなと思ってます。(自分で宿題を増やしている…)  
Posted by tomohip at 00:08Comments(1)TrackBack(0)Flash

2007年11月28日

ゲーム音

フリーの頃はちょっと軽いFlash案件が多くて、よくゲームを作っていたんですが、アンカーではサーバーがらみで重いFlashばかりで、ゲームってほとんど作ってなかったんですが、ここ最近立て続けに作りました。

ゲームを作るときの画面構成ですが、通常のゲームに習って、スタート、ゲーム、エンディングは基本で、これに読み込み画面がつきます。

あと、Webに載せるときに、いきなり音を出すのはまずいし、ボリュームボタン。これはいつでも消せるように、どの画面でも入れます。

ローディングのことを忘れることは最近はなくなりましたが、ボリュームボタンはよく忘れる。そもそも、仕事のPCでスピーカーをオンにしている人は少なく、また音はなくてもいいって人が多いんで、根本的に音を入れることを忘れる。

ゲームってやっぱり音がないと寂しい物なので、できるだけ入れた方がいい。

ここ最近、音の話は後から言われて、「はっ」と思ったところで、デザイン上入れるスペースはないし、あきらめるかって流れになっていたんで、ゲームを作る上では音は意識しないとなぁと思いました。  
Posted by tomohip at 23:34Comments(0)TrackBack(0)Flash

MovieClipLoaderクラスではまった

結論から書くと、MovieClipLoaderクラスのイベント内で、ターゲットのフレーム移動させると1フレーム目が読み込まれない。

今日、はまっていた話ですが、元のムービーから読み込まれるFlash内であるメソッドを呼び出しているんですが、全然呼んだ気配がしない。

単独で動かすともちろん呼び出される。なにそれ?って感じでいろいろと調べていたところ、メソッドが定義されていないことに気がつきました。

1フレーム目にあるんだから、読み込まれるに決まってるでしょって思っていたら、onLoadStartイベントでstopさせ、onLoadCompleteで別フレームに飛ばしたら、1フレーム目は見事にショートカット。


var content_mc:MovieClip = this.createEmptyMovieClip( "load_mc", this.getNextHighestDepth() );

var loadListener:Object = new Object();
loadListener.onLoadStart = function( target_mc:MovieClip ):Void
{
// target_mc.stop();
};
loadListener.onLoadComplete = function( target_mc:MovieClip, httpStatus:Number ):Void
{
target_mc.gotoAndPlay( "frame" );
};

var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener( loadListener );
mcLoader.loadClip( "test.swf", content_mc );


ついでに、onLoadComplete直後に移動させるのも軽いFlashだと、すっ飛ばしたので、onEnterFrameで、1フレーム待ちをつけた方がいいです。

普通だったら、勝手に再生させておけばいいんですが、2つのFlashムービーを同時に読み込んで、つなげて再生するってものだったため、監視が必要で、こんなことになっているんですが、はまりました。  
Posted by tomohip at 23:25Comments(0)TrackBack(0)Flash

2007年11月26日

loadMovieNum

loadMovieNumは、Flash4からある機能で、任意のレベルにFlashムービーを読み込める。

さっきの話にも関係するけど、重いFlashムービーがあって、Flashムービーが始まるより前に読み込む物が多くて、ローディング自体がなかなか始まらない事態で、これを解決するには、_level1にローディング処理を行うFlashを読み込んで、_level0に再度読み込み直すFlashを作って、監視しようと思っていた。

ここに大きな罠があった。_level0に何かを読み込むと、それまで各レベルに読み込んだFlashムービーもすべてリセットされてしまい、何の意味も持たなくなるのだ。

_level1から_level0.unloadMovie()を実行すると、見事に空っぽ。

ヘルプを見るとリセットをばっちり書いていて、我ながらうまく考えたと思ったのに、見事に撃沈。  
Posted by tomohip at 22:43Comments(0)TrackBack(0)Flash