var msg:String = 'この文字列をコードで見てみる'; for (var i:uint = 0; i < msg.length; i++ ) { trace('msg [' + msg.charCodeAt(i).toString(16) + ']'); }
2009年6月30日火曜日
文字コードチェック
2009年6月22日月曜日
MySQL プロシージャ実行時に文字化けとか Incorrect string value とか
ブラウザの文字コード UTF-8
mysql> status ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Server characterset: latin1 Db characterset: utf8 Client characterset: latin1 Conn. characterset: latin1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
エラーがなく通るも、画面上で文字化け
mysql> charset utf8 mysql> status ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Server characterset: latin1 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
プロシージャ実行中にエラー
ERROR 1366 (HY000): Incorrect string value: 'xxxxxxxxx' for column 'xxxxxxxx' at row xx
mysql> SET character_set_client = sjis; mysql> status ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Server characterset: latin1 Db characterset: utf8 Client characterset: sjis Conn. characterset: latin1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
エラーなく通るも、画面上で文字化け
mysql> SET character_set_client = sjis; mysql> SET character_set_connection = utf8; mysql> status ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Server characterset: latin1 Db characterset: utf8 Client characterset: sjis Conn. characterset: utf8 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
問題なく通る
2009年6月16日火曜日
クラス名を変数や文字列で指定してインスタンス化する
import flash.utils.getDefinitionByName; var foo:Class = getDefinitionByName('MyClass') as Class; var myClass:MovieClip = new foo();
2009年6月13日土曜日
XMLファイルの取り扱いについて
2009年6月12日金曜日
addedToStageについて
ADDED_TO_STAGEイベントは、DisplayObject(またはそれ自体を含むツリー)がステージに追加されると、 DisplayObjectに対して送信されます
つまり、ドキュメントクラスにこのリスナーを登録した場合、自分自身がステージに追加されると、ドキュメントクラスに対して送信されるので、ステージが参照できるということ。
ドキュメントクラスはステージの子であるようなので、ステージには直接配置せず、ドキュメントクラスないし、その子のDisplayObjectに追加してあげるのが理想か。
ドキュメントクラスがステージに配置されるのは最初だけ。 ドキュメントクラスはステージオブジェクトの参照を持っておくほうが無難。 addToStage イベントが発行されるのは、リスナーを登録したクラスのコンストラクタが終わってから。
Loader クラスで他の swf を読み込んでも、 stage は共通。 Loader クラスで他の swf を読み込んだとき、読み込み元の DisplayObject がstage の子なら、Loader クラスインスタンスを DisplayObject に addChild() した時に、addToStage イベントが発行される(はず)。
Stage にはドキュメントクラスが子として配置されている。Stage 以下の DisplayObject を全て削除するということは、ドキュメントクラスのインスタンスも、削除されてしまう。
DisplayObject は、直接 Stage の子として扱わないほうがいい、と思う。たぶん。 配置する DisplayObject はあくまでドキュメントクラスの子として、もしくはそれが持つ DisplayObject の子として定義するのが自然だと、今の段階の私は思った。
2009年6月8日月曜日
LocalConnection で Object型 を send するときの罠
そういうものなのかはよくわからないけど。
LocalConnection はカスタムクラスを swf 間でやり取りできなくはないけど、インスタンスそのものではなく、プロパティしか送ることができない。AMF形式というものに圧縮されて送られるそうだけど、その詳細はまだよくわかりません。なので、public 型および、明示的な getter, setter だけが渡せるという話だったんだけど、そこで躓いた。
クラスのプロパティを private として定義するときは、当然 public アクセスしてほしくない値だからで、その値に getter と setter を両方用意することはナンセンスだと思ってた。なので、private なプロパティを含むカスタムクラスを LocalConnection で send するときも、当然 getter しか用意しなかった。そこに落とし穴があった。
setter のないプロパティは、send 先で取得することができない。おそらく、AMF形式とやらから解凍するとき(unserialize?)に、値をセットするんだろうけど、それができないんじゃないだろうか(要調査)。じゃあ public でいいじゃない?
ずいぶん時間をとられたけど、ひらめいたとき、これが答えであってほしいような、ほしくないような気持ちがなんとも気持ち悪い感じでした。
2009年6月3日水曜日
Loderクラスで読み込んだ swf のstage が null
AS3.0 クエリストリングの値を取得
var id:String = loaderInfo.parameters['id']; var pw:String = loaderInfo.parameters['pw']; txtLog.text = 'id : ' + id + "\n" + 'pw : ' + pw;