Flash内で検索をしたいと思っています。具体的にはこんな感じです。
1,Bob
2,John
3,Joe
というファイル(データ)があり、検索窓に1を入力して検索ボタンを
押すと、Bobが表示されるといった仕組みです。
Flashはほとんど初心者なので、これが可能なのかどうかをまず
知りたいです。簡単にできるようであれば、ソースの例やサンプルが
あるサイトを教えていただけると助かります。
あと、この場合、データもFlashのファイルに含めることができますか?
ちなみに、なぜFlashかというと、auの携帯がjava未対応だからです。
(もうすぐ自作javaも対応になるらしいですが・・・)
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で質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
word
-
Illustratorテキストエリアへ塗...
-
PowerPoint SmartArtの箇条書...
-
illustratorとExcelは連携出来...
-
Publisherをエクセルファイルに
-
Excel VBAで改行を含む文字列を...
-
バイナリファイルの編集
-
capcutってアプリで質問です。 ...
-
画像からテキストデータを正確...
-
韓国語字幕の作り方おしえてく...
-
見出し箇所に「@@」みたいなワ...
-
教えてください。 この字は、何...
-
Microsoft・Silverlightの使い方...
-
Accessのデータ型について
-
テキストエリア(55個)へのテ...
-
イラレでダブルクリックで文字...
-
フォトショップでテキストが、...
-
pdfファイルから抽出できるテキ...
-
Pages 09 でテキストボックスで...
-
iMovieでテキストと画像を同時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
word
-
Illustratorテキストエリアへ塗...
-
illustratorとExcelは連携出来...
-
PowerPoint SmartArtの箇条書...
-
イラレでダブルクリックで文字...
-
バイナリファイルの編集
-
davinci resolveを使っているの...
-
Excel VBAで改行を含む文字列を...
-
サクラエディタで二つのテキス...
-
Publisherをエクセルファイルに
-
PDF-XChange Viewer のタイプラ...
-
画像からテキストデータを正確...
-
exe bat
-
PDF→CSVへ変換
-
PDF文書で斜めテキスト
-
【PDF】Bullzip PDF Printer で...
-
Chromebookでオフラインでテキ...
-
Adobe photoshop CS2 テキスト...
-
フォトショップで複数テキスト...
-
PDFファイルで画像化された文書...
おすすめ情報