|
新作のリリースが無いと、こうも更新が少ないとは…という事で、久々に技術的な投稿でも。 #最近やった案件で、Flashのゲームを作りました(どこのどのゲームかは内緒w) ランキング登録などは仕様で含まれていましたが、システムは別途外注との事でシステム屋さんとは直接お話ができないもどかしい状態でのデバッグに戸惑いつつ…頑張ってみました。そこでハマった事項をご紹介。 1)入力テキストを用意したが、なぜか送信してみると改行コードが混じる 悩みました。ランキングに登録するために普通に入力テキスト用意しただけなのに…そこにHN(ハンドルネーム)でも入力してもらって送信(Submit)ボタン押してもらうだけなのに。最後に気がついたのが入力テキストのプロパティ。なんと…いつの間にか「複数行」設定になっていました。 え? 複数行設定にしただけで、勝手に改行コードが含まれるってどういう事ですか? 仕様なんですね? ここに気付かず、しょうがなく改行コードを削除するメソッドを作って、そこを通して送信する仕組みまで作っちゃいましたよ。。 2)Windowsで入力テキストにインライン入力できない はい、これ検索すると出てくるのは「wmode」「transparent」ですね。私も最初これだと思いました。しかし今回は違ったようです。どうやら入力できないのではなく、Flashの左上のへんなところに入力された文字が出るようです。 1でも書いたように、入力テキストは普通に置いているだけ…ん?普通に? そういえば仕様変更からアニメーションの途中に入力する枠を出して欲しいという事で、ステージに直接置かずMC内に入れ、更にそのMCにマスクをかけていたのだった。 まさか…、MCは基本なので違うと勝手に判断し、マスクを除去してみました。すると入力できるではありませんか。なんですか?マスク使ってごにょごにょするとインライン入力出来なくなるなんて。。これも仕様なんですね。わかります……いや、やっぱり1も2も分かりません…… 3)半角と全角の文字数制限? 例えば半角20文字、全角10文字の入力制限を入力テキストにかけたいとします。ただFlash内のテキスト入力に存在する「文字数制限」は、あくまでも長さなので半角全角(1バイト・2バイト文字)を問いません。よって半角のために20文字と設定すれば全角でも20文字打ててしまいます。 そこで入力テキストに文字が入力確定された時(onChanged)に、一文字ずつ取り出しcharCodeAtで半角範囲内かどうかをチェックさせ、希望のバイト数(上の例で言えば20バイト)を超えた時にそれ以降の文字を切り捨てる処理を作りました。これで無事にバイト数制限が出来たわけです。 ま、実装せずに終わっちゃったんですけどね…(笑) なんて感じです。不況で仕事の量や質が変わりつつあり近年ですが、忙しい折にはこんなハマりの神が降りてくる事も。最近珍しく忙しいので、また近いうちに降りてくるやも知れません。。(^ ^;
|

- >
- コンピュータとインターネット
- >
- インターネット
- >
- ネットサービス



