アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。
長すぎると、読むのが面倒だと思い、簡潔に書かせていただきます。

僕は、このようなフラッシュを作ってみたいと思っていました。

1.熟語を表示する。(単に静止テキストで。)
2.テキスト入力欄に読み仮名をひらがなで入力する。
3.その正否を判定し、表示する。

熟語の読み仮名の変数が、「kana」で
テキスト入力欄の変数が、「kotae」となっています。

まず、タイムライン上に
var kana = "しろいすなはま"
と書き、判定する為のボタンには
on(press)
{
if(_root.kotae == kana)
{
gotoAndStop(3);//正解用フレームへ
}else{
gotoAndStop(4);//不正解用フレームへ
}
}

としました。

すると、見事に失敗してしまい、すべての変数をtraceで確認したところ、テキスト入力欄の変数、kotaeが
「<TEXTFORMAT LEADING="2"><P ALIGN="CENTER"><FONT FACE="MS ゴシック" SIZE="16" COLOR="#FFFFFF" LETTERSPACING="0" KERNING="0">しろいすなはま</FONT></P></TEXTFORMAT>」
となっていたんです。

googleで調べたり、フラッシュ講座を見てみたりしたのですが、なかなか見つかりません。
ちょっと急いでいるので、こちらでお聞きしたいと思いました。

質問内容は、
「テキストフォーマットとは何なのか」
「これを解決し、上記1~3の動作を行うにはどうしたらいいのか」
と言う事で、どうかよろしくお願いします。

A 回答 (1件)

テキストフィールドには変数名を付けずに,インスタンス名を付け,


そのテキストフィールド内の記入文字や表示された文字は,
 テキストフィールド.text
で取得や代入をしてください。

読み仮名の変数は「kana」で良いですが,
テキスト入力欄にの変数名「kotae」は削除して,
インスタンス名に「kotae」と付けます。
そして,
スクリプトを次のようにします。

on(press)
{
if(_root.kotae.text == kana)
{
gotoAndStop(3);//正解用フレームへ
}else{
gotoAndStop(4);//不正解用フレームへ
}
}

以前から,テキストフィールドには変数名を付けずにインスタンス名を付けることが推奨されていたのですが,古い慣習などによって,テキストフィールドには変数名を付けるというのが定着していて,
Flash MX や MX 2004 あたりまでは,なんとかそれでも無事動作したのですが,
Flash 8 以上くらいでは,うまく行かない場合が多くなりました。

Flashドキュメンテーション(つまりヘルプ)
「テキストフィールドのインスタンス名と変数名」
http://livedocs.adobe.com/flash/8_jp/main/000014 …
> 変数名をダイナミックテキストフィールドや
> テキスト入力フィールドに割り当てることができます。
> これによって、変数に値を割り当てることができます。
> これは、旧バージョンの Flash Player (Flash Player 4 など)
> 用のアプリケーションを作成するときに使用する可能性のある
> 非推奨の機能です。
> それよりも新しいプレーヤーを対象にするときは、
> インスタンス名と ActionScript を使用して、
> テキストフィールドのテキストをターゲットにする必要があります。
    • good
    • 0
この回答へのお礼

変数名をインスタンス名に、_root.ムービークリップ名.入力フィールド名.text、とする事でうまく動作してくれるようになりました。
主にインスタンス名を使用するんですね。
大変助かりました、ありがとうございます。

お礼日時:2007/06/30 14:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!