Actionscript3.0の勉強でも始めようと思い Adobe LabsからFlash9 Public Alphaをダウンロード。

ところが、自分で作ったクラスがどうしようと参照できない。 あまりに基本的なことなのでメチャクチャ悩んだあげく、もう止めようと何度も思った。

結局原因は、作業しているディレクトリパスに2バイト文字が含まれているとアウトらしい。 多分英語版だからという事なんだろうけど、気付かないよそんなの。

C:\Documents and Settings\haga\デスクトップ\as3

こんな感じの場所で練習していたのだけれど「デスクトップ」がまずかったらしい。 Dドライブ直下にフォルダを移動したら問題なく動いたよ。

参考:Asファイルの読み込みについて

Posted in actionscript3.0, flash, programing at 12月 4th, 2006. 2 Comments.

http://p0t.jp/mt/archives/2006/11/1prompt.html

PHPSPOTでも取り上げられていたpprompt.jsの中身を見てみた。

ちょうど仕事で同じようなもんを作ったというのと、サクーシャのkomagataさんと先日飲む機会があったので。お、知ってる人的な感覚で。

さーっと流してみてprototype.jsの依存をはぶいたってのが偉いなぁと。

静的クラスだから、まだいいんだろうけど、僕の場合、他人が使いやすいようにI/Fは静的クラスにしておいて、中身はシングルトンのクラスインスタンスを持つやり方が多い。よってClass.create()バリバリなのだ・・。PositionとかElementクラス系は便利だけど、わりと簡単なので依存とるのは難しくなさそうだけど。

それとソースがとても綺麗だな。変数名とかシンプルかつ的確。

これってIE標準モードでもOKなのかな? position:absoluteのheight:100%が効かなくて仕方なく互換モードにした記憶があるんだが。

Posted in javascript, programing at 11月 29th, 2006. 2 Comments.

えっとTamarinについて調べていて ついでにMozillaのDeveloperCenterを見ていたら 興味深いものを発見

XFormsっていう、次世代のフォーム http://developer.mozilla.org/ja/docs/XForms 「XForms がもたらす強みは、プレゼンテーションからのデータの分離と強力なデータタイプ、名前/値の組の代わりにサーバに XML データを提出する能力、さまざまなデバイスにそれらを表示できるようにフォームを作成する説明的な方法です」

かなり魅力的な文言。

で、中をちらちら見ていたら、やっぱりあった! ラジオボタンおかしくね?と思っていた僕のストレスをすっきりさせるサンプルが。

http://xformsinstitute.com/essentials/browse/ch06.php#ch06-2-fm2xml

もうね。ラジオがセレクト要素になってますよ、はい。 当然だよね。そりゃXHTMLがばかばかしくもなりますよ。

世の中の人がんばってるなぁ。 もう28だけど、もっとコアな開発者になりたいですよ、はい。

あ、だんだん自分の勉強したいものが移行してきた。 まずJavaScript で、ActionScript3 この辺はECMA系なので、TamarinやApoloを考えても 全然将来食える言語だ。外せまい。

で、勉強というか CVSが使えるようになりたい。効率的に開発したいので。 XUL勉強したい。FireFoxのアドオン作りたいので。 XSLT勉強したい。HTML書きたくないので。 wiki勉強したい。オントロジーまってられないので。

wikiは結城氏のサイトにyukiwiki miniっていう200行くらいの勉強用ソースコードがあったので見てみるよ。perlわかんないけど。

Posted in programing, XHTML/CSS2 at 11月 22nd, 2006. No Comments.

コーディングしてて、ちょっと疑問

一般にINPUT要素にはLABEL要素をつける

<label for="myText" >お名前</label>
<input type="text" />

みたいな。

でも、ラジオボタンとチェックボックスだと

○男 ○女

<p>
  <input type="radio" name="sex" id="mail" />
  <label for="mail" >男</label>
</p>
<p>
  <input type="radio" name="sex" id="femail" />
  <label for="femail" >女</label>
</p>

見たいにするのが当然だけど

性別 ○男 ○女

みたいな表記にする場合の「性別」は何にすればいいの? 感覚的には「お名前」と同列であるのでLABELとしたいのだけど、そうするとRADIOにはLABELが二つになっちゃうし・・。

http://www.kanzaki.com/docs/html/htminfo33.html

ここ見ても、ラジオのタイトルには特に明示的なあれはない。

FIELDSET LEGENDはもうちょっと上のレベルの表現だし。 だいたいLEGENDはIE6で全然制御できないから、使ってない。

本来はこうあるべきなんじゃまいか?

<form>
  <label for="myRadio">性別</label>
  <select type="radio" id="myRadio">
    <option>男</option>
    <option>女</option>
  </select>
</form>
Posted in programing, XHTML/CSS2 at 11月 21st, 2006. No Comments.

CSSで角丸ボックスを作るという もうやりつくされた事をゼロから作ってみた。

僕は基本的にデザインだけのためのソースコードは 嫌いなんだけど、まぁクライアントにやれといわれればやります。 クライアントが白といえば、黒だって絹のような純白です。

CSSによる透過PNG角丸ボックス サンプル

CSSによる透過PNG角丸ボックス ZIPファイル

ポイントは透過PNGを使えるので、どんな背景が来ても気にしない気にしない、ということと IE6にも対応可という事。

Radius というクラスパッケージはradius.cssに記述されているので それを継承すれば、いろんな色の角丸ボックスが作れます。 サンプルはradius_blue.cssという継承クラスを用意してみました。

HTMLはこんな感じです。 角丸を表現するためにblockHeaderとblockFooterというクラスを持ったDIV要素を作ります。 Read More…

Posted in programing, XHTML/CSS2 at 11月 21st, 2006. No Comments.

ちょっとFlashではまったので、メモしておくよ。 文字列からクラスインスタンスをダイナミックに生成する際 Function.applyを使いたいと思ったんだけど うまく行かなかったので、いろいろ試してみた。

わかりやすいように、「String」クラスの例だが 実際には[mypackage.MyClass]などでやるのが普通だろう。

そういう場合は、最初に mypackage.MyClass; として、クラスを利用する事を宣言しとかないと、コンパイル時に無視されるので注意。

var className = "String";
var classFunc:Function = eval(className);

var test:String;

// OK
test = new classFunc("a");
trace(test.length); // a

// NG
test = new classFunc.call(null,"a");
trace(test.length); // undefined

// NG
test = new classFunc.apply(null,["a"]);
trace(test.length); // undefined

var returnClass:Function = function( classFunc:Function, args:Array ){
    return classFunc.apply(null,args);
}

// OK
test = new classFunc( returnClass(classFunc,["a"]) );
trace(test.length); // 1

どういう事かというと String.apply(null,args); をリターンする新しい関数をかましてやると、 new しながらFunction.applyも使えるよねって事だ。

Posted in actionscript2.0, flash, programing at 11月 10th, 2006. No Comments.

今週来週はキツそうだったが うまい具合に1こズレてくれた。

全然仕様決まってねーじゃんかと。 こっちでDBの設計までする雰囲気で I/Oの仕様を決めるだけかな、とりあえず。

あと二つもわりと順調。 2週間かけるところの1.5週間分くらいは休日中に作った。 うーん、ジーニアス。

Flashでアプリを作る手順がやっと固まってきた感じ。

マインドマップを使って、必要な情報の洗い出しと分類。 I/Oを決める。 アプリ全体のアクティビティ図を書く(日本語で)。 重要かつ詳細部のアクティビティ図を書く(日本語で)。 アプリに必要なフラグを洗い出す。 アプリに必要なクライアントモデルを洗い出す。 クラス図を作る。 実装。

具体的にはフラグマネージャとモデルマネージャをグローバルに使えるように用意しておく。

_global.$FLAG = new FlagManager();

程度でよい。

UIはMovieClipを継承したクラスをライブラリ内のMCに当てはめる。のがいい気がする。

複雑になればシーケンス管理のパッケージを使うでもいいし。

いやーかなり気が楽になったので JavaScriptとFlashの通信に使う暗号化クラスでも作ろうかなと。 暗号化かわいいよ暗号化

Posted in programing, 日記 at 11月 6th, 2006. No Comments.

複数のフラグをチェックする方法として

  • フラグを必要数だけ用意する方法
  • フラグを配列で管理する方法
  • フラグをビットで管理する方法

などがあると思われる。

フラグの数だけ変数を用意する


var flag0:Boolean = false;
var flag1:Boolean = false;
var flag2:Boolean = false;

// フラグを立てる処理
flag0 = true;
flag1 = true;
flag2 = true;

if( flag0 &amp;&amp; flag1 &amp;&amp; flag2 ) {
    // フラグが全て立った時の処理
}

と、これはなんかカッコ悪いし
フラグ変数をイチイチ用意するのがもったいない。

フラグを配列にする方法


// 3つ分のフラグ配列
var flags:Array = new Array(3);

// フラグを立てる処理
flags[0] = true;
flags[1] = true;
flags[2] = true;

for( var n0:Number=0; n0&lt;flags.length; n0++ ){

    if( !flags[n0] ) {
        //  フラグが立っていなかったらループを抜ける
        break;
    } else if( n0 == flags.length ) {
        //  フラグが全て立った時の処理
     }
}

フラグをビットで管理する


var flagNum:Number = 0x000;
var flagMax:Number = 0x111;
<br />
// フラグを立てる処理
flagNum += 0x001;
flagNum += 0x010;
flagNum += 0x100;

if( flagNum == flagMax ){
    //  フラグが全て立った時の処理
}
Posted in actionscript2.0, flash, programing at 12月 8th, 2005. No Comments.

ゲーム開発ってすごくプログラミングの勉強になる。 今日はタイルベースでの深度の管理についていろいろ考えていた。

一応その座標での深度は クォータービューについてだが

  • Y軸が大きいほど深度は高い
  • 同Y軸の中ではXが大きいほど深度は高い
  • 同一座標でもさらにZがある

という点から、その座標の深度をあらかじめ予約する場合


Depth = (Y * Y.length * Z.length ) + ( X * Z.length ) + Z

としておけば、被る事がないだろう。 Read More…

Posted in actionscript2.0, flash, programing at 12月 7th, 2005. No Comments.

http://iterative.org/swfmill/doc/using-swfmill.html http://flashant.org/index.php?p=373&more=1&c=1

Flashなしで、SWFファイルを生成しちゃう。

もうすごいとしか言いようがないなぁ…。

てか別にFlash持ってるわけだから ライブラリ的なSWFを作るのは、別にFlashでいいよなぁ。

てか、昨日から全然やることがそれている。 本当はクォータービューのモックを作ろうとしてたのに いつのまにかベクターのクラス作り始めて だんだんオリジナルパッケージの制作になって だんだん開発環境の追求に…。 Read More…

Posted in flash, programing at 12月 5th, 2005. No Comments.