![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Flash内で検索をしたいと思っています。具体的にはこんな感じです。
1,Bob
2,John
3,Joe
というファイル(データ)があり、検索窓に1を入力して検索ボタンを
押すと、Bobが表示されるといった仕組みです。
Flashはほとんど初心者なので、これが可能なのかどうかをまず
知りたいです。簡単にできるようであれば、ソースの例やサンプルが
あるサイトを教えていただけると助かります。
あと、この場合、データもFlashのファイルに含めることができますか?
ちなみに、なぜFlashかというと、auの携帯がjava未対応だからです。
(もうすぐ自作javaも対応になるらしいですが・・・)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_10.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
Flash Lite が作成できる環境をお持ちであれば可能です。
つまり,
Flash Professional 8 や Flash MX 2004 などをお持ちでしたら。
しかし,検索 ですか???
単なる条件分岐ではなくて…。
> 検索窓に1を入力して検索ボタンを
> 押すと、Bobが表示されるといった仕組みです。
これをプログラミングすれば,
『もし検索窓に 1 が代入されていたら "Bob" を表示』
つまりこのような感じ↓
----------------------
if (knsaku eq "1") {
hyouji = "Bob";
}
----------------------
に見えますけど。
よくわからないので,
◎ if文 の条件分岐を使う方法
◎ 複数の変数から指定番号の変数の値を取ってくる方法
◎ 本当に検索する方法
この3つの方法を回答します。
また,携帯用Flash には,
「Flash Lite 1.0」,「Flash Lite 1.1」,「Flash Lite 2.0」という3つの規格(バージョン)のSWFが存在しますが,
「Flash Lite 2.0」規格のFlashが動く携帯はまだまだ少ないと思われるため,
「Flash Lite 1.0」もしくは「Flash Lite 1.1」 対応ということで書きます。
///////////////////////////////////////////////////////
3つの方法ともに共通するものをまず作成します。
Flash で新規ドキュメントを作成し,
「パブリッシュ設定」で 「Flash」タブから「FlashLite1.1」
または,「FlashLite1.0」を選択して「OK」しておきます。
ステージのサイズを 250×250くらいにしてください。
そして,まずステージ上に,1 か 2 か 3 を代入するための,
テキスト入力のテキストフィールドを作成します。
文字の色は黒など,背景とは違う色を選択しておいてください。
そして,そのテキスト入力のテキストフィールドを選択した状態で,
下の プロパティインスペクタ でこのテキストフィールドに "変数名" を付けます。
"インスタンス名" ではありません。"変数名" です。
検索文字入力用ですから,
「kensaku」 という変数名を付けておくことにします。
その下あたりに四角い塗りでも描いて,
その塗りを選択して,「修正」→「シンボルに変換」で,
ボタンシンボルに変換します。
そして,そのボタンの下あたりに,
今度は出力表示用のダイナミックテキストのテキストフィールドを用意します。
そのテキストフィールドを選択した状態で,
下の プロパティインスペクタ でこのテキストフィールドにもまた "変数名" を付けます。
表示用ですから,
「kensaku」 という変数名を付けておくことにします。
ステージ上を図示すると次↓のような感じになります。
--------------------
┌─────┐
└─────┘ ←テキスト入力 変数 kensaku
■■■■■
■■■■■ ←検索ボタン(ボタンインスタンス)
┌─────┐
└─────┘ ←ダイナミックテキスト 変数 hyouji
--------------------
ここまで準備ができたら,
3つの場合について3通りの方法の説明に移ります。
===========================================
◎ if文 の条件分岐を使う方法
真ん中のボタンを選択して,
そのボタンを選択した状態で,下のアクションパネルに次のように書きます。
コピペでかまいません。
---------------------------------
on (release) {
if (kensaku eq "1") {
hyouji = "Bob";
} else if (kensaku eq "2") {
hyouji = "John";
} else if (kensaku eq "3") {
hyouji = "Joe";
}
}
---------------------------------
そして,
SWFをパブリッシュし,
kensaku という変数名を付けた テキストフィールド に,
1 か 2 か 3 のを記入し,
ボタンをクリックすると,
hyouji という変数名をを付けた テキストフィールド に,
Bob か John か Joe が表示されます。
みたまんま,簡単な if文 による分岐です。
===========================================
◎ 複数の変数から指定番号の変数の値を取ってくる方法
これは,Bob や John や Joe などのデータ分の変数を用意して,
その値である Bob や John や Joe などのデータを表示させる方法です。
まずデータ部分として,
_root のフレームに変数と値の用意をしておきます。
次はフレームに書くスクリプトです。
----------------------------------
a1 = "Bob";
a2 = "John";
a3 = "Joe";
----------------------------------
変数 a1 ~ a3 にそれぞれのデータを入れています。
そして,ボタンに書くスクリプトは次のようになります。
----------------------------------
on (release) {
hyouji = eval("a" add kensaku);
}
----------------------------------
if文の分岐などもないので,非常にシンプルです。
そして,なおかつデータ部分と動作部分が分かれているので,
データを修正するだけで,いろいろな表示ができます。
普通の Flash だと配列を使うところだと思いますが,
Flash Lite 1.1 まででは配列というものがないので,
eval 関数で変数の集合体を配列のように扱っています。
3つの方法の中では一番お薦めの方法です。
===========================================
◎ 本当に検索する方法
本当に,
-------------
1,Bob
2,John
3,Joe
-------------
という改行入り文字列から検索するのですか???
なぜそんなことをしなければならないのか意味がわかりませんが,
一応その方法を書きます。
しかし,"上のような規則の場合限定" です。
データの形式が変われば当然スクリプトも変わりますよ。
この形↓,
1,Bob
検索すべき 1 などの番号がまずあって,
その後に 「,」 が入って,
その後に 検索結果表示のデータがあって,
その後(次の番号との間に)に改行が入っている。
この形式限定のスクリプトです。
まず,
データ用のダイナミックテキストのテキストフィールドを,
ステージ外など見えない場所に作成します。
そのダイナミックテキストは,複数行表示に設定して,
「a」 という "変数名" を付けてください。
その「a」のテキストフィールドに,
1,Bob
2,John
3,Joe
を書いておきます。
そしてボタンには次のように書きます。
--------------------------------------
on (release) {
// 変数 hyouji の初期化
hyouji = "";
// 変数 i の初期値を 1 に設定
i = 1;
// 変数 mojisuu に 変数 a の文字数を取得
mojisuu = mblength(a);
// 変数 i が mojisuu 以下である条件でループ
while (i<=mojisuu) {
// 変数 a の i 文字目が kensaku の値と等しければ
if (mbsubstring(a, i, 1) == kensaku) {
// 次の改行コードがあるまでループ
while (mbsubstring(a, i+2, 1) ne "\r" and i<=mojisuu) {
// 変数 hyouji に i+2 番目の文字を足す
hyouji = hyouji add mbsubstring(a, i+2, 1);
// 変数 i に 1 を加算
i++;
}
}
// 変数 i に 1 を加算
i++;
}
}
--------------------------------------
while文の中にwhile文が入っているという,
結構ややこしめのスクリプトになっています。
>> データもFlashのファイルに含めることができますか?
上に書いたように,
変数名付きテキストフィールドを用意し,
その中にデータを書けばFlashのファイルに含めることができます。
そして,
例えば kensku テキストフィールドに,
仮に 1 が入った場合,
変数 a の文字列の先頭から,1文字ずつ見ていって,
もし 1 があればその2文字後から改行コード "\n" までを,
hyouji テキストフィールドに表示するというスクリプトです。
[ 注意 ]
ひょっとしたら
改行コードは "\r" ではなく "\n" になるかもしれません。
これはデータを入力するソフトやOSによって変わります。
もし, "\r" でうまく行かなければ,
while (mbsubstring(a, i+2, 1) ne "\r" and i<=mojisuu) {
の部分を
while (mbsubstring(a, i+2, 1) ne "\n" and i<=mojisuu) {
に変えてください。
Flash でスクリプトを用いで意図的に改行を入れる場合は,
"\n" が普通です。
しかし,テキストフィールドにWindows環境で入力した場合,
"\r" になってしまいます。
メモ帳からコピペした場合は,
"\n\r" となったりしますが, "\n\r" なら "\r" でできます。
"\r" が一番無難であると考えたため,
スクリプトでは "\r" を使用しています。
===========================================
携帯用Flash(Flash Lite)で参考になるサイトや書籍はほとんどありません。
上のスクリプトでも eq や add など,Flash Lite 特有の言葉が入っていたりしますが,
なんとかその辺は,ヘルプなどで調べながらやって行くしかないでしょう。
2番目のやり方でなんとかできました。
とりあえず動くので、後は自分で勉強して色々と改良してみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- マルウェア・コンピュータウイルス FlashPlayerの削除とマルウェア感染について 5 2023/02/23 20:52
- USBメモリー・SDカード・フラッシュメモリー プリンタのドライバーをUSB Flash Diskに保存したい。 4 2023/05/23 23:30
- デスクトップパソコン ホームページビルダー15 1 2023/05/30 12:30
- ホームページ作成・プログラミング Adobe FLASH に代わるソフトはありますか? 4 2022/09/27 19:35
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Flash 私のコンピューター上のファイルが開けられない。 1 2022/07/19 18:15
- Excel(エクセル) エクセル 多数のファイルから値を抜き出したい 4 2022/12/12 16:49
- 法人税 電子帳簿保存法について 1 2022/04/07 11:17
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
word
-
Illustratorテキストエリアへ塗...
-
capcutってアプリで質問です。 ...
-
PowerPoint SmartArtの箇条書...
-
イラレでダブルクリックで文字...
-
PDF→CSVへ変換
-
illustratorとExcelは連携出来...
-
バイナリファイルの編集
-
Accessテーブルの結合で別々の...
-
PDF文書で斜めテキスト
-
ウェブページを一括でtxtに保存...
-
exe bat
-
Adobe Acrobatについて
-
PDF → ワープロ文書
-
Chromebookでオフラインでテキ...
-
niveのエフェクトのテキストの...
-
サクラエディタで二つのテキス...
-
Microsoft Access で同じフィー...
-
Publisherをエクセルファイルに
-
PDFの透明化テキストを抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
word
-
PowerPoint SmartArtの箇条書...
-
PDF→CSVへ変換
-
illustratorとExcelは連携出来...
-
イラレでダブルクリックで文字...
-
バイナリファイルの編集
-
Illustratorテキストエリアへ塗...
-
Accessテーブルの結合で別々の...
-
capcutってアプリで質問です。 ...
-
Publisherをエクセルファイルに
-
Excel VBAで改行を含む文字列を...
-
サクラエディタで二つのテキス...
-
PDF-XChange Viewer のタイプラ...
-
exe bat
-
リッチテキストと標準テキスト...
-
PDFファイルで画像化された文書...
-
PDF文書で斜めテキスト
-
davinci resolveを使っているの...
-
フォトショップで複数テキスト...
-
パワーポイントでテキストボッ...
おすすめ情報