• ベストアンサー

【ノベル】テキスト表示

こちらのサイトのような メッセージが左から右、 段落などを意識した文字の流し方が いまひとつ判りません。 【http://novel2.hakoniwa.net/】 おそらく画面でテキスト部分に マウスカーソルをあてると ダイナミックテキストっぽいのですが コピー&ペーストできないように 作られていて、どうすればその機能も 設定できるのでしょうか? 参考になるサイトもしくは 解説宜しくお願いします。

  • Flash
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
noname#35109
noname#35109
回答No.3

#2です。 > 段落などを意識した文字の流し方 についてです。 #2の前半のモーショントゥイーンの回答はそのままで良いとして, 後半の2つ目のスクリプトが, 「段落などを意識した文字の流し方」を誤解したスクリプトかもしれないと思ったので, 追加補足させていただきます。 「段落などを意識した文字の流し方」の「段落」とは, 一通りの文章が表示されたあとの段落という意味でしょうか? もしそうだとすると, #2の後半の2つ目のスクリプトは間違っています。 つまり,  一通りの文章が表示される     ↓段落   ボタンクリック     ↓  次の文章が表示される     ↓段落   ボタンクリック     ↓  次の文章が表示される     ↓段落   ボタンクリック     ↓     … 繰り返し という意味でしたら次のようになります。 まず用意するものは, インスタンス名「myField」とした複数行設定のダイナミックテキストフィールドと, インスタンス名「myButton」としたボタンシンボルのインスタンスで, この両者とも _root のステージ上に配置したものとします。 オブジェクトの階層構造を図示すると, 次のようになります。  _root   ├ myField (ダイナミックテキスト(複数行))   └ myButton (ボタンシンボルのインスタンス) そして, _root のフレームに次のように書けば,  一通りの文章が表示される→段落→ボタンクリック→… ができます。 -------------------------------------------- // 表示させる文字列データ群 配列myData の作成 var myData = new Array(); // 表示させる文字列データ群要素 の準備(可変) myData[0] = "あいうえお\nかきくけこ\nさしすせそ"; myData[1] = "たちつてと\nなにぬねの"; myData[2] = "はひふへほ"; myData[3] = "まみむめも\nやゆよ\nらりるれろ"; myData[4] = "わ\nん"; // // 文字を出す速さの設定(ミリ秒 (可変)) var spd = 80; // // 配列の要素番号用変数 n の初期化 var n = 0; // カウンタ用変数 cnt の初期化 var cnt = 0; // ボタン myButton を非表示にする myButton._visible = false; // // 順次表示するユーザ定義関数 myFunc の定義 function myFunc() { // カウンタの値を 1 加算 cnt++; // myField に myData を指定文字数表示 myField.text = myData[n].substr(0, cnt); // 即更新 updateAfterEvent(); // もし カウンタの値が文字数以上になれば if (cnt>=myData[n].length) { // ボタン myButton を表示 myButton._visible = true; // setInterval を解除 clearInterval(myID); } } // // 指定時間(ミリ秒)ごとに myFunc を実行(初回) myID = setInterval(myFunc, spd); // // ボタン myButton の動作定義 myButton.onRelease = function() { if (n<myData.length-1) { n++; } else { n = 0; } cnt = 0; // 指定時間(ミリ秒)ごとに myFunc を実行 myID = setInterval(myFunc, spd); // このボタン myButton を非表示にする myButton._visible = false; }; --------------------------------------------- #2のままで良かったのかもしれませんが, 「段落とは何だろう???」 と考えていると,だんだん段落が何なのかわからなくなったので補足させていただきました。

dizzdive
質問者

お礼

文字のスクロールに関しては バッチリです。 #2も実際に動かしてみて 「おぉ!」ってなりました。 今日だした質問なので 締め切るのはまだ早いかな?って 思いまして、解決しちゃってるのですが お礼ポイントは後日振らせて貰います。

その他の回答 (2)

noname#35109
noname#35109
回答No.2

「箱庭ノベルズ」ですか。 面白い物を開発されている方がいらっしゃるのですね。 勉強になりました。 本題ですが, Flash では,文字を徐々に出すには, 普通はモーショントゥイーンを使うと思いますよ↓。 フェードインする文字 FLASHRAVE - FLASH 講座 - http://flashrave.org/anima/fade_in/index.html すごく単純技法というか, Flash を始めて3日目くらいの方がされる方法というか, ごく普通に考えれば,そうなると思います。 上記URLでは, 静止テキストにマスクをかけて, マスクをモーショントゥイーンさせています。 埋め込みフォントを使わないダイナミックテキストだと, 静止テキストとは違って,手動で設置したマスクはかからないので, 逆に,もっと単純にマスクなど使わず, 背景色と同じ塗りをムービークリップ(MC)に変換して, ダイナミックテキストの上に重ねて, 重ねたムービークリップをモーショントゥイーンで動かします。  ~例~   ↓背景色と同じ塗りの色のMC  □□□□□□□□   ↓ダイナミックテキスト  あいうえお   ↓重ねて  □□□□□□□□   ↓モーショントゥイーン  □□□□□□□□  あ□□□□□□□□ →  あい□□□□□□□□ →  あいう□□□□□□□□ →  あいうえ□□□□□□□□ →  あいうえお□□□□□□□□ → 右横にMCを動かすスペースが無い場合は, MCを縮めるモーショントゥイーンをしても良いです。   ↓モーショントゥイーン  □□□□□□□□  あ□□□□□□□  あい□□□□□□  あいう□□□□□  あいうえ□□□□  あいうえお□□□ もちろん, 段落を意識してモーショントゥイーンさせても良いでしょう。 たいていは, マスクを使うか,上記のようにマスクを使わずにもっと単純にモーショントゥイーンさせるかでしょうね。 単純&簡単です。 ====================== そうではなくて, ActionScript で文字を1文字ずつ出したい場合は, 普通に1文字ずつダイナミックテキストに表示させるようにスクリプトを組めば良いと思います。  ~簡単な例~ 新規ドキュメントを作成して, ステージ上に, 「myField」 というインスタンス名のダイナミックテキストフィールド(複数行設定)を用意しておいたとします。 そして, _root のフレーム1に次のように書きます。 ---------------------------------------------- // 表示させる文字列データ myData の用意(可変) var myData = "あいうえお\nかきくけこ\nさしすせそ"; // // カウンタ用変数 cnt の初期化 var cnt = 0; // 文字列データの文字数の取得 var dataLen = myData.length; // // 順次表示するユーザ定義関数 myFunc の定義 function myFunc() { // カウンタの値を 1 加算 cnt++; // myField に myData を指定文字数表示 myField.text = myData.substr(0, cnt); // 即更新 updateAfterEvent(); // もし カウンタの値が文字数以上になれば if (cnt>=dataLen) { // setInterval を解除 clearInterval(myID); } } // // 指定時間(ミリ秒)ごとに myFunc を実行 myID = setInterval(myFunc, 100); --------------------------------------------- これで,  あいうえお  かきくけこ  さしすせそ という文字列が, myField. というインスタンス名のダイナミックテキストに, 100ミリ秒(0.1秒)間隔で順次表示されます。 "あいうえお\nかきくけこ\nさしすせそ"の \n は改行コードです。 ただし, 上記の場合,文字の表示は一定間隔です。 > 段落などを意識した文字の流し方 これが最大の難関ですね。 コンピュータは人間ではありませんから, 文章も理解できませんし,段落も理解できません。 したがって,なんとか人間が考えて段落を待たせる処理をほどこさないとならないでしょう。 他にも方法はあると思いますが, 以下は私が勝手に考えた1つの方法例です。 例として,文章自体は上記のままで, 次のような段落を考えてみます。 ↓を段落とします。  あいう↓  えお\n↓  かきくけ↓  こ\nさしすせ 上記のような場合,  3文字出して段落,  5文字出して段落,  10文字出して段落。 となります。 \n は1文字としてカウントされます。 上記の状態を言いかえると,  4文字目を出すのを少し待つ,  6文字目を出すのを少し待つ,  11文字目を出すのを少し待つ。 となります。 これをプログラムすると次のようになります。 ------------------------------------------------ // 表示させる文字列データ myData の用意(可変) var myData = "あいうえお\nかきくけこ\nさしすせそ"; // // カウンタ用変数 cnt の初期化 var cnt = 0; // 待つ時間(間隔)の設定 var slpTime = 4; // 待つカウントの初期化 var slpCnt = 0; // 文字列データの文字数の取得 var dataLen = myData.length; // // 順次表示するユーザ定義関数 myFunc の定義 function myFunc() { // カウンタの値を 1 加算 cnt++; // cnt が 4 or 6 or 11 で 待つ時間以下のとき if ((cnt == 4 || cnt == 6 || cnt == 11) && slpCnt<=slpTime) { // カウンタを戻す cnt--; // 待つカウントを加算する slpCnt++; } else { // それ以外は 待つカウント を 0 に slpCnt = 0; } // myField に myData を指定文字数表示 myField.text = myData.substr(0, cnt); // 即更新 updateAfterEvent(); // もし カウンタの値が文字数以上になれば if (cnt>=dataLen) { // setInterval を解除 clearInterval(myID); } } // // 指定時間(ミリ秒)ごとに myFunc を実行 myID = setInterval(myFunc, 100); ------------------------------------------------ 1つの方法例ですが, 一応はこれでできますね。

dizzdive
質問者

お礼

基礎から教えていただき ありがとうございます!!

  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.1

カテ違いではないでしょうか? URLにはswfはありませんし、「箱庭ノベル」自体はFLASHでは制作されていません。ぽいですけどね。^^;

dizzdive
質問者

お礼

質問修正して 回答が得ることができました。 どうもありがとうございます。

dizzdive
質問者

補足

私の質問に不足ありました。 大変申し訳ございません。 箱庭ノベルのような、「メッセージスクロール」を 「ActionScript」をつかって Flashで表現できる方法を知りたかったのです。 ダイナミックテキストの属性?について 自己解決しました。 プロパティのボタンで 文字をコピー&ペーストできるなど 選べました。

関連するQ&A

  • メッセンジャーでテキスト表示しかできない。

    「一部の参加者は手書きのメッセージを表示できないため、メッセージはテキストで送信されます」とでて、同じ人と前日まで、使用できていた機能で、マウスで自由に文字や線を描くことができません。 何か、設定をいじってしまったのでしょうか? 機能を回復させたいです。よろしくお願いします。

  • テキスト情報だけをコピーできるツール

    テキスト情報だけをとりだしてコピーできるツールはありますか? つまりIEの画面の文字をコピー&ペーストするとテキスト情報だけでなく、その装飾や文字の大きさまでもコピーされてしまいます。文字の情報だけをコピーする機能を持たせるソフトはありますか? OSはWin2000です。確かXPではこの機能があったと 思うのですが、これを2000でも取り入れたいと考えています。

  • オンマウスでの画像+テキスト表示

    いつも的確な回答をいただいて、非常に感謝しております。 違うカテで同じような質問をさせていただいたのですが少しやりたいことが変わったので 再度、質問いたしました。 今、HPを作成しているのですがテーブルを左右(左を大きく、右を6つくらい)に分けて 右にはいくつか写真を小さく載せてその右の写真にマウスを乗せると左に大きく表示されるようにしたいのです。 そして、その大きな写真の下にはテキストも載せたいのです (マウスを乗せた写真によって違うテキストを載せる)。 ~こんなかんじ~ │ ̄ ̄│□□□ │__│□□□ テキスト ~~~~~~~~ 検索ではビルダーを使った説明しかありません。 もし、フリーのHP作成ソフト(私が使っているのはalphaEDIT)でのやり方が乗っているサイト 無ければ、ご存知の方に教えていただきたいです。 よろしくお願いいたします。

  • パワーポイントのテキストボックス内での右寄せ・左寄せ

    パワーポイント2003を使用しています。 オートシェイプにテキストを追加した際の質問です。 例えば、文字を打ち込んで『左揃え』を指定すると オートシェイプ内の文字全てが左揃えになりますが、 一番下の行だけ右揃えにしたい場合は、どうすれば出来ますか? ▼こんな感じです テキストテキストテキストテキスト テキストテキストテキスト テキストテキストテキストテキ                     テキスト ワードでは出来るけれどパワーポイントでは無理なのかな?と 今まであきらめていましたが、何度か、他のワードやサイトテキストを コピペすると一行(一段落?)だけ右揃えができることがあったので、 本当はきちんとそのような機能があるのでしょうか? パワーポイントに強い方、ぜひ教えて下さい!

  • ユーザーフォーム上に表示されているテキストブックのテキストを右クリックでコピー&ペーストする方法

    エクセルに関する質問をさせて頂きます。 エクセルのユーザーフォーム上に表示されているテキストボックスのテキストを、マウスの右クリックでコピー、別のテキストボックスにペーストしたく考えています。 色々調べて見たんですが、方法が見つかりません。 どなたかご存知の方がおられましたらご教授頂きたくお願い致します。

  • テキストエディタで縦に文字を選択するのはないでしょうか?

    テキストエディタで編集するとき普通に文字をマウスで選択するのですが(Shift+カーソル矢印でもいいですが)その場合、左から右に選択されていくのが普通ですよね。これを縦(部分的に)に選択できるテキストエディタってゆうのはないんでしょうか?私はプログラムのことはさっぱり分からないので、それは不可能!でしたらごめんなさい。言葉で説明するの下手なので分かりにくかったらすみません。

  • エクセル2000のテキストボックス

    シート上でテキストボックスを広げて 文字を入力して、そのテキストボックスを 動かそうと思ったのですが、いつも通りに 動かせず、右に移動させようとしても壁が あるかのように上下にしかうごきません。 一生懸命右にぐーっとやっていると 微妙に右に動くんですが、動いた先で 文字を入力すると、また左端にぴょこっと 戻ってしまいます。 カーソルは普通に動いているのにテキストボックス だけが動きがおかしいです。 マウスを変えてもかわりませんでした。 なにか対処法をご存知の方いらっしゃいませんか?

  • テキストボックス内でのカーソルの動きが逆に・・・

    Excel2007でテキストボックスを使ってコメントを付けていますが、文字を訂正する時に訂正箇所にマウスを持ってきてクリックしてからカーソルを表示させますが、その時、そのカーソルを右へ移動させたい場合、矢印キー(→)を押すと何故だかカーソルが左へ移動します。左へ移動させたい場合も矢印キー(←)を押すと右へ動いてしまいます。どこかの設定を触ってしまったのかもしれませんが、その設定箇所が分かりません。 どなたかお分かりの方がおられましたらよろしくお願いいたします。 セル内でのカーソル移動は問題なく左右キーとカーソルは同じ方向に動きます。  また、ここで作成したファイルをExcel2003で開いて同じことをやっても逆にならず正常に動きます。 初歩的な質問だと思いますが困ってます。 よろしくお願いいたします。

  • 右クリックが使えなくなりました

    先日からマウスの右クリックが使えなくなってしまって コピー&ペーストができなくて不便な思いをしています。 スタート画面では右クリックは使えます。 左マウスで文字を反転させてDeleteもできません。 マウスの不具合なのでしょうか?

  • テキストの連結コピーができるソフト

     ウインドウズ98を使っています。 右クリックのコピー機能を拡張して、テキストをがんがん連結してコピーし、一括してペーストできる機能を加えるフリーソフトが以前あったと思うのですが、どなたかわかる方いましたら教えてください。  間に改行をはさむかどうかも選択できたと思います。 はっきりとおぼえていませんが、入れると右クリック内にコピー以外にAdd~という項目が追加されていました。  また、同様な機能があれば、これとおんなじソフトでなくてもかまいません。よろしくお願いします。