外部テキストを読み込み、タイプライター風に一文字ずつ表示する方法

このQ&Aのポイント
  • 外部テキストを読み込み、タイプライター風に一文字ずつ表示する方法を知りたいです。
  • 現在、読み込んだエントリが表示されるだけで、ボタンを押したら1文字ずつ表示されるようにしたいです。
  • 使用しているソフトウェアはWindows XP FLASH MX Professional 2004です。
回答を見る
  • ベストアンサー

外部テキスト(MTのエントリ)を読み込んで、タイプライター風に一文字づつ表示する。

はじめまして。 いろいろ検索して試行錯誤したのですが、諦めてお伺いします。 this.createTextField("my_txt", 10, 0, 0, 200, 235); scb.setScrollTarget(my_txt); my_txt.text = _level0.entry; 1フレーム目にこう書いて、パブリッシュしたHTMLに <param name="FlashVars" value="entry=<$MTEntryBody remove_html="1"$> 上記のように書いて、Movable Typeのエントリを読み込んでいます。 色々なサイトを見て、そこまではなんとかたどりついたのですが、読み込んだエントリをタイプライター風に1文字ずつ表示する事ができません。 現状、読み込んだエントリが表示されているだけです。 希望は、ボタンを押したら、表示されている文章が消えて、新たに1文字づつ表示されるようにしたいと思っています。 アドバイスをいただきたいです。 私がつかっているのは、WINDOWS XP FLASH MX Professional 2004です。 よろしくお願いします。

  • Flash
  • 回答数2
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.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(メインムービーのステージ上)にボタンを作成した場合です。 ムービークリップ に書く場合や,ムービークリップ 内に配置したボタンの場合は, ターゲットパスに注意してください。

banrigreatwall
質問者

お礼

sassakunさん。 できました。 本当にありがとうございます。 丁寧に説明してくださり、本当にありがとうございます。

その他の回答 (1)

noname#35109
noname#35109
回答No.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アクションを使う

banrigreatwall
質問者

補足

sassakunさん。回答していただきありがとうございます。 文章を1文字づつ表示する事ができるようになりました。 図々しくて恐縮ですが、最初は全文が表示されていて、ボタンをおしたら、1文字づつ表示させるようにするにはどうしたらいいのか、教えていただけないでしょうか? すいません。よろしくお願いします。

関連するQ&A

  • 読み込んだ外部テキストのHTMLを有効にする。

    this.createTextField("my_txt", 10, 5, 60, 205, 240); my_txt.textColor = 0x333333; my_txt.html = true; my_txt.htmltext = _level0.allentry; my_txt.htmlText = this.allentry; 質問させてください。 上記のスクリプトで外部テキストを読み込んでいます。 変数allentryにはhtmlから変数を渡して、外部テキスト(MTのエントリ)を読み込んでいます。 読み込んだ外部テキストのhtmlタグの部分が表示されなくなってしまいます。 イメージタグなら、<img= とだけ表示されてその後の文章が表示されません。 どうしたらいいでしょうか? アドバイスをいただきたいです。 よろしくお願いします。 私が使っているのは、 windows xp Flash MX 2004 です。

  • 文字を一文字づつ表示し、スクロールバーがしたまできたら、文字を表示する。

    質問させて下さい。 //トレーニングボタンを押したとき train.onRelease = function() { mydata_len = _level0.entry.length; i = 0; typeID = setInterval(function () { if (i<mydata_len) { i++; _root.my_txt.scroll++; my_txt.text = _level0.entry.substr(0, i); my_txt.setTextFormat( format ); } else { clearInterval(typeID); } }, 1); //テキストフィールドのscrollプロパティを監視 my_txt.onScroller = function() { if( this.scroll == this.maxscroll ) { _root.training._visible = false; _root.trainingend._visible =true; } else { _root.training._visible = true; _root.trainingend._visible =false; } } } テキストフィールドにタイプライター風に文字を一文字づつ表示させ、表示させている間は、表示中のダイナミックテキストをテキストフィールドの下に表示し、スクロールバーが一番したまできたら、表示終了のテキストに切り替わる、という事をしたいのですが、 文字を一文字づつ表示させている間も表示終了の文字が出てきてしまうのです。 文字を一文字づつ表示している間、スクロールバーが一番下にきたら、表示終了。それ以外は表示中、としたいのです。 文字を一文字づつ表示している間。という制約がなければできるのですが、文字の表示中だとうまくいきません。 もしよろしければ、お教えいただきたく思います。 私がつかっているのは、 WIN XP FLASH MX 2004 です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • Flash MXで外部テキストを読み込むと文字化けしてしまいます。

    以下のように、Flash MXで外部テキストを読み込むと文字化けしていまいます。 どうすれば文字化けせず、表示されるのでしょうか? onClipEvent (load) { this.loadVariables("myData.txt"); }

    • ベストアンサー
    • Flash
  • 外部テキストのランダム表示

    Flash初心者です。 ソフトは Flash MX 2004 をつかっています。 質問なんですが、 ボタンを作るとき、マウスがボタンの上にあるとき 一言コメントが出るようにしたいのですが、 そのコメントが何種類かあって、それをランダムで表示させたいです。 外部テキストで出来ると聞いたのですがやり方がまったくわかりません。 onClipEvent(load){ this.loadVariables("text.txt"); } で文字は読み込めたのですが、全部読み込んでしまってどうやってランダムにしたらいいかがわかりません。 どうかお答えお願いします!

  • 外部JPGを読み込んだ場合のローディング表示方法

    こんにちわ。 外部からJPGを読み込み中にローディングを表示させるにはどの様にしたらいいのでしょうか? いろいろ考え試行錯誤したのですが、良い結果が得られません。 MX2004でOSX環境です。 この様なローディングを作成したいのです。 http://fotologue.jp/ どなたか、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 【ActionScript】テキストフィールドを生成、文字サイズを変えたい

    FLASH8(Win-XP)使用者です。 テキストフィールドを生成、外部ファイルから文字を読み込んで、文字サイズを変えたいのですが思うようにいきません。 <例> moji = "初期の文字列"; //テキストフィールド生成 _root.createTextField( "my_TxFld", 0, 0, 0, 200, 50 ); my_TxFld.text = moji; my_TxFld.border = true; //テキストサイズ指定(1) myTxFmt = new TextFormat(); myTxFmt.size = 50; my_TxFld.setTextFormat(myTxFmt ); //テキストを流し込み my_lv = new LoadVars(); my_lv.onLoad = function(success){ _root.my_TxFld.text = my_lv.menu1; (2) }; my_lv.load("data.txt"); 上記ですと外部テキストは大きくならず、ダウンロード完了までの一瞬「初期の文字列」が大きな文字で表示されるだけです。 (1)を(2)に入れると正しく表示されるわけですが、何度もダウンロードする場合、その都度設定するのは非効率です。 一度の文字サイズ設定で何度ダウンロードしてもサイズが変わらないやり方はないものでしょうか。 お詳しい方、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • actionscript3.0でのテキスト表示

    お世話になります。 現在、actionscript3.0でテキストを一文字づつ表示させるように設定しています。 テキストの表示まではできたのですが、テキストを表示させたまま、止めることができず試行錯誤しております。 下記スクリプトをご覧いただき、お解りになりましたら、ご教授ください。 宜しくお願いします。 var asuStr2:String = "テキスト文字テキスト文字テキスト文字"; asu_txt2.autoSize = TextFieldAutoSize.LEFT; this.addEventListener(Event.ENTER_FRAME, setEnter2); function setEnter2(e:Event):void{ asuFunc2(); } function asuFunc2():void{ if(asuStr2.length > 0){ asu_txt2.appendText(asuStr2.substr(0, 1)); asuStr2 = asuStr2.slice(1, asuStr2.length); } else { this.removeEventListener(Event.ENTER_FRAME, setEnter2); } } 上記スクリプトはharayu様のサイトを参考にさせていただきました。 勝手ではございますが、ありがとうございました。

    • ベストアンサー
    • Flash
  • createTextFieldで作ったテキストフィールドにスクロールバーをとりつける。

    テキストツールでダイナミックテキストのフィールドをつくり、そこにコーンポーネントを適用させたら、スクロールバーがつく、とわかったのですが、スクリプトでテキストのフィールドをつくり、そのテキストフィールドにコンポーネントを適用させて、スクロールバーを取り付ける事はできないのでしょうか? this.createTextField("my_txt", 10, 5, 60, 205, 240); my_txt.htmltext = _level0.entry; このようにして、テキストフィールドに外部テキストをよみこんでいます。 アドバイスをいただきたいです。 http://livedocs.macromedia.com/flash/8_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00004232.html このページを見てもよく分からなく、スクロールバーの取り付けができません。 私が使っているのは、Windows XP Flash MX Professional 2004です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部読み込みテキスト内の変数について

    初めてPHPでフォームメールを作成しています。 送信メール内容のフォーマットを 外部テキストで読み込む形にしたいと考え 変数名を含む外部テキストファイルを作成しました。 ファイル名(bace.txt) ++++++++++++++++++++++++++++ お名前 :{$name} メールアドレス:{$from} タイトル :{$title} 内容 :{$body} ++++++++++++++++++++++++++++ これを以下のようにbace.txtを読み込んでmb_send_mailでメールを送っているのですが・・送られたメールを確認すると変数名がそのまま表示されてしまいます。多分文字列として扱われたままでおくられてしまっているのかな?どなたか解決方法分かる方教えて下さいませ~~>< function screen_submit($param) { global $smarty; extract($_SESSION["prm"]); $fp=fopen("bace.txt","r") or die("ファイルのオープンに失敗しました"); $temp=fread($fp, filesize("bace.txt")); $rc = mb_send_mail(MAIL_TO, $title, $temp, "From:$from"); $rc = mb_convert_encoding($rc,"EUC","AUTO"); fclose($fp); if ($rc) { $message = "メール送信が正常終了しました。"; } else { $message = "メール送信が失敗しました。"; } $smarty->assign("message", $message); return TRUE; }

    • ベストアンサー
    • PHP
  • テキストをDataGridに表示

    VB.NET勉強中の初心者です。 いろいろ検索して試行錯誤したのですが、 初心者の私にはいまいちわからなかったので、 ここで質問させていただきます。 A1 B1 C1 A2 B2 C2 のように1文字ずつ改行された内容のtxtファイルがあったとして、 それをDataGridに A列 B列 C列 ----------- A1|B1|C1 ----------- A2|B2|C2 のように「A列、B列、C列」という列項目もつけて、表形式で表示するにはどのようにすればよいでしょうか? また、DataGrid上で編集してtxtに上書き保存するにはどうすればよいでしょうか? あいまいな表現かもしれませんが、わかるかたいらっしゃいましたら教えてください。

専門家に質問してみよう