スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

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()で黙らせる。

実例で学ぶゲームAIプログラミング メモ

バグっぽいのでメモ

・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

ニコ生のコメントデータの形式をメモ

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"を取得できた。ブロックナンバーはよくわからない。

Dictionaryクラスを継承しようとしたらうまく動かない

Dictionaryクラスを継承しHashMapクラスを作った。
HashMapのコンストラクタで問題が起こった。

// HashMapのコンストラクタ
public static const testObject:Object = new Object();
public function HashMap():void
{
  this[ testObject ] = "ok!";
  trace( this[ testObject ] ); // undefined
}

コンストラクタ内で、オブジェクトキーを正しく使用できないらしい。


しかたないのでDictionaryのラッパークラスを作ることに。


プロフィール

Author:neet
FC2ブログへようこそ!

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
Amazon商品一覧【新着順】
気になる書籍メモ
ブログ内検索
RSSフィード
リンク
By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード