FOCUS_INイベントが発生しない
[おこったこと]
1.spriteクラスのオブジェクトを生成し、s.buttonMode = trueにして配置。
2.クリックするとFOCUS_INイベントが発生する。
3.さらに、ステージ上にコンポーネント(Button,Listなど)を追加する。
4.再びクリックするとFOCUS_INイベントが発生しない。
[わるいやつ]
UIComponentクラスでFocusManagerクラスを生成している。
FocusManagerクラスはFocusEvent.MOUSE_FOCUS_CHANGEのデフォルト動作(フォーカスの変更)をキャンセルしている。
[とりあえず]
FocusManager.deactivate()で黙らせる。
1.spriteクラスのオブジェクトを生成し、s.buttonMode = trueにして配置。
2.クリックするとFOCUS_INイベントが発生する。
3.さらに、ステージ上にコンポーネント(Button,Listなど)を追加する。
4.再びクリックするとFOCUS_INイベントが発生しない。
[わるいやつ]
UIComponentクラスでFocusManagerクラスを生成している。
FocusManagerクラスはFocusEvent.MOUSE_FOCUS_CHANGEのデフォルト動作(フォーカスの変更)をキャンセルしている。
[とりあえず]
FocusManager.deactivate()で黙らせる。
実例で学ぶゲームAIプログラミング メモ
バグっぽいのでメモ
・4章のサッカーのソース
Team.ControllingPlayerに値をいれると、相手側チームのControllingPlayerをnullにするため、
DetermineBestSupportingPlayer呼び出し時にnullになってしまうことがある
プレイヤーが同時にKickBallステートになるようiniファイルのkickRange=6.0を大きな値にすると再現できる
・5章のグラフのソース
WeightNavGraphNodeEdgeでエッジのコストを設定しているところ
2つのセルのうち、片方のセルだけをみてセル間のコストを決定しているので、
セル[Water]のとなりにセル[Normal]を書き込むと、実際のコストより低い値が設定されてしまう
・4章のサッカーのソース
Team.ControllingPlayerに値をいれると、相手側チームのControllingPlayerをnullにするため、
DetermineBestSupportingPlayer呼び出し時にnullになってしまうことがある
プレイヤーが同時にKickBallステートになるようiniファイルのkickRange=6.0を大きな値にすると再現できる
・5章のグラフのソース
WeightNavGraphNodeEdgeでエッジのコストを設定しているところ
2つのセルのうち、片方のセルだけをみてセル間のコストを決定しているので、
セル[Water]のとなりにセル[Normal]を書き込むと、実際のコストより低い値が設定されてしまう
IPヘッダのチェックサムを計算するメモ
IPヘッダのチェックサムを計算するメモ
・パケットキャプチャでIPヘッダを見る
45 00 01 70 14 42 40 00 04 11 b0 97 c0 a8 00 01 ef ff ff fa
b0 97がヘッダチェックサム
・ヘッダチェックサム以外の値を16ビット区切りで足す。
0x4500 + 0x170 + ... = 0x34F65
・16ビットを超えた値を取り去り、足す。
0x34F65 = 11 0100 1111 0110 0101
11 + 0100 1111 0110 0101 = 0100 1111 0110 1000
・1の補数にする
0100 1111 0110 1000のビット反転 = 1011 0000 1001 0111 = 0xB097
・パケットキャプチャでIPヘッダを見る
45 00 01 70 14 42 40 00 04 11 b0 97 c0 a8 00 01 ef ff ff fa
b0 97がヘッダチェックサム
・ヘッダチェックサム以外の値を16ビット区切りで足す。
0x4500 + 0x170 + ... = 0x34F65
・16ビットを超えた値を取り去り、足す。
0x34F65 = 11 0100 1111 0110 0101
11 + 0100 1111 0110 0101 = 0100 1111 0110 1000
・1の補数にする
0100 1111 0110 1000のビット反転 = 1011 0000 1001 0111 = 0xB097
ニコ生のコメントデータの形式をメモ
1."w"と入力し、コメント送信したとき
flashから送信されるデータ
<chat thread="1008012990" ticket="0x9b20f50" vpos="144654" postkey="zedKBQhvu1mKVySeQ3epyU0sqFw"mail=" 184" user_id="123456789" premium="0">w</chat>
サーバから返ってくるデータ
<chat_result no="48" status="0" thread="1008012990"/>
<chat anonymity="1" date="1257465246" mail="184" no="48" thread="1008012990"
user_id="XXXXXXXXXXXXXX" vpos="144654" yourpost="1">w</chat>
2.サーバが送信してくる他人のコメントデータ
<chat anonymity="1" date="1257465654" mail="184" no="57" thread="1008012990" user_id="XXXXXXXXXXXX" vpos="185456">hoge</chat>
user_idは数値の場合と英数字の文字列の場合があり、
184コメント(匿名コメント)は暗号化により、英数字の文字列となるらしい。
postkeyはhttp://live.nicovideo.jp/api/getpostkey?thread=1008012990&block_no=0で"zedKBQhvu1mKVySeQ3epyU0sqFw"を取得できた。ブロックナンバーはよくわからない。
flashから送信されるデータ
<chat thread="1008012990" ticket="0x9b20f50" vpos="144654" postkey="zedKBQhvu1mKVySeQ3epyU0sqFw"mail=" 184" user_id="123456789" premium="0">w</chat>
サーバから返ってくるデータ
<chat_result no="48" status="0" thread="1008012990"/>
<chat anonymity="1" date="1257465246" mail="184" no="48" thread="1008012990"
user_id="XXXXXXXXXXXXXX" vpos="144654" yourpost="1">w</chat>
2.サーバが送信してくる他人のコメントデータ
<chat anonymity="1" date="1257465654" mail="184" no="57" thread="1008012990" user_id="XXXXXXXXXXXX" vpos="185456">hoge</chat>
user_idは数値の場合と英数字の文字列の場合があり、
184コメント(匿名コメント)は暗号化により、英数字の文字列となるらしい。
postkeyはhttp://live.nicovideo.jp/api/getpostkey?thread=1008012990&block_no=0で"zedKBQhvu1mKVySeQ3epyU0sqFw"を取得できた。ブロックナンバーはよくわからない。
Dictionaryクラスを継承しようとしたらうまく動かない
Dictionaryクラスを継承しHashMapクラスを作った。
HashMapのコンストラクタで問題が起こった。
しかたないのでDictionaryのラッパークラスを作ることに。
HashMapのコンストラクタで問題が起こった。
コンストラクタ内で、オブジェクトキーを正しく使用できないらしい。// HashMapのコンストラクタ
public static const testObject:Object = new Object();
public function HashMap():void
{
this[ testObject ] = "ok!";
trace( this[ testObject ] ); // undefined
}
しかたないのでDictionaryのラッパークラスを作ることに。





