- ベストアンサー
外部テキストを読み込み、タイプライター風に一文字ずつ表示する方法
- 外部テキストを読み込み、タイプライター風に一文字ずつ表示する方法を知りたいです。
- 現在、読み込んだエントリが表示されるだけで、ボタンを押したら1文字ずつ表示されるようにしたいです。
- 使用しているソフトウェアはWindows XP FLASH MX Professional 2004です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1(回答No.1で回答した者)です。 > 最初は全文が表示されていて、ボタンをおしたら、 > 1文字づつ表示させるようにするにはどうしたらいいのか、 > 教えていただけないでしょうか? #1 のスクリプトをボタンに書けばそのまま行けるでしょう。 フレームのスクリプト -------------------------------- my_txt.text = _level0.entry; -------------------------------- _root に作成したボタンのスクリプト -------------------------------- on (release) { // 文字データの文字数を取得 mydata_len = _level0.entry.length; // 変数 i の初期値を0にする i = 0; // 一定時間間隔で function を実行 typeID = setInterval(function () { // 文字数になるまで1文字ずつ増やして表示 if (i<mydata_len) { i++; // entry の文字を1文字ずつ加算表示 my_txt.text = _level0.entry.substr(0, i); } else { // この setInterval を解除 clearInterval(typeID); } // 200ミリ秒ごとに(※可変) }, 200); } -------------------------------- on (release) { ココ } に入れただけです。 また, 最近は,ボタンにスクリプトは書かず, フレームに書くことが流行っているようですが, そういう場合は, _root に ボタンシンボルのインスタンスを作成して, そのボタンに「myButton」というインスタンス名を付けて, 次のように全てフレームに書いても良いですね。 -------------------------------- my_txt.text = _level0.entry; _root.myButton.onRelease = function() { // 文字データの文字数を取得 mydata_len = _level0.entry.length; // 変数 i の初期値を0にする i = 0; // 一定時間間隔で function を実行 typeID = setInterval(function () { // 文字数になるまで1文字ずつ増やして表示 if (i<mydata_len) { i++; // entry の文字を1文字ずつ加算表示 my_txt.text = _level0.entry.substr(0, i); } else { // この setInterval を解除 clearInterval(typeID); } // 200ミリ秒ごとに(※可変) }, 200); }; -------------------------------- 上記2例は,どちらも,_root(メインムービーのステージ上)にボタンを作成した場合です。 ムービークリップ に書く場合や,ムービークリップ 内に配置したボタンの場合は, ターゲットパスに注意してください。
その他の回答 (1)
タイプライター風というところに自信がありませんが, 一応回答させていただきます。 >> my_txt.text = _level0.entry; ここで,全部の文字を一気に my_txt.text に代入表示させているために, 1文字ずつ表示されないわけですから, ここを一定時間間隔で,1文字ずつ増やしながら表示させればいいのではないかと思います。 my_txt.text = _level0.entry; この1行だけの部分を,次のように変えれば, 一応,1文字ずつ表示はされると思います↓(コピペ可)。 ------------------------------------------- // 文字データの文字数を取得 mydata_len = _level0.entry.length; // 変数 i の初期値を0にする i = 0; // 一定時間間隔で function を実行 typeID = setInterval(function () { // 文字数になるまで1文字ずつ増やして表示 if (i<mydata_len) { i++; // entry の文字を1文字ずつ加算表示 my_txt.text = _level0.entry.substr(0, i); } else { // この setInterval を解除 clearInterval(typeID); } // 200ミリ秒ごとに(※可変) }, 200); --------------------------------------------- 参考URL 「外部SWFムービー内のfunctionをロード直後に呼出す」 http://www.fumiononaka.com/TechNotes/Flash/FN0304001.html 3. setIntervalアクションを使う
補足
sassakunさん。回答していただきありがとうございます。 文章を1文字づつ表示する事ができるようになりました。 図々しくて恐縮ですが、最初は全文が表示されていて、ボタンをおしたら、1文字づつ表示させるようにするにはどうしたらいいのか、教えていただけないでしょうか? すいません。よろしくお願いします。
お礼
sassakunさん。 できました。 本当にありがとうございます。 丁寧に説明してくださり、本当にありがとうございます。