Flashのスクロールバー表示に関する問題

このQ&Aのポイント
  • 外部テキストを読み込んでいる際に、スクロールバーの表示や反応がうまくいかない問題が発生しています。
  • スクロールバーの部分が上下に長く表示されてしまったり、マウスでスクロールできず矢印を押さないと移動できない状態になったりしています。
  • さらに、外部テキストが全部表示されずにスクロールで表示しきれない問題も発生しています。
回答を見る
  • ベストアンサー

Flash スクロールバー表示

環境 Win OS XP   Macromedia Flash MX Professional 2004 外部テキストを読み込んでいるんですが ◆スクロールパーツがうまく表示されない …スクロールバーの部分が上下に長い ◆スクロールの反応が悪い …マウスでスクロールできず上下の矢印を押さないと移動できない ◆*.flaだと上下の矢印も表示されない白い棒のまま。 ◆外部テキスト(HTML)が全部スクロールで表示しきれない …もっと文章があるんですがスクロールできるのは数行止まりで それ以上、下へ行かないんです。 サイトや本など色々見たのですが確証あるものがなくご指導いただきたく思いますので よろしくお願いします。 アクション部分は onClipEvent (load) { this.loadVariables("txt.html"); } onClipEvent (data) { scrollbar.setScrollTarget(txt.html); } 初心者なモノで説明不足かもしれませんが どうぞよろしくおねがいします。

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

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

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

なんとなくですが, うまく行かない根本原因は, 変数名とインスタンス名の混同,そしてさらにファイル名までも混同してしまっている点にあるように思えますよ。 >> 初心者なモノで説明不足かもしれませんが ええ,十分説明不足ですねぇ。 書かれている内容からでは, 現状がどうなっているのかわからないので, すごい推測(妄想とも言う)を入れて, 想像&検証してみなければなりません。 字数制限もありますから,質問で詳しく説明するのも難しいのですけどね。 > onClipEvent (load) {… ここから推測するに, テキストフィールド を作成して, そのテキストフィールドをムービークリップの中にわざわざ入れてあるのですね。 ムービークリップ の内と外では階層が変わりますから, スクリプトを作成する上で,特にこの点は押さえておくべき重要ポイントなのです。 > this.loadVariables("txt.html"); 「txt.html」??? ここから推測するに, 外部テキストデータはHTMLタグ入りデータなのですね。 (この↑推測には自信がありません。) 純粋なHTMLは Flash では扱えませんから, 実際は HTML ではなく,HTMLタグ入りテキストだと思います。 というわけで,勝手にこちらで「txt.html」内のデータを作成し SWF と同じフォルダに保存しました。 ---「txt.html」-------------------------- myhtml=aaa<br>bbb<br>ccc<br>ddd<br>eee<br>fff<br>ggg<br>hhh<br>iii<br>jjj<br>kkk<br>lll<br>mmm<br>nnn ------------------------------------- >> 質問:Flash スクロールバー表示 そしてここから推測するに, テキストフィールド を作成して, そのテキストフィールドにコンポーネントの「UIScrollBar」を付けたいのですね。 (この↑推測にも自信がありません。) ===以上のような不確実な推測を元に回答します=== テキストフィールドに,「UIScrollBar」を付ける場合, 「UIScrollBar」をセットする対象物は, テキストフィールドというインスタンス (テキストフィールドという物体そのもの) です。 変数は単なる値の入れ物です。テキストフィールドそのものではありません。 書かれているスクリプトや説明からでは,テキストフィールドのインスタンス名がわかりません。 > scrollbar.setScrollTarget(txt.html); これは人間が見ても意味不明です。  「scrollbar」というインスタンス名の「UIScrollBar」を,  「txt.html」を対象にセットする。 という意味になります。 「txt.html」は,外部テキストのファイル名ではありませんか。 「UIScrollBar」をセットする対象物は,テキストフィールドです。 それに, > onClipEvent (data) {… で,データが読み込まれる度に何度もセットする必要はありません。 セットするのは1回で良いのです。 また, テキストフィールド にコンポーネントの「UIScrollBar」をドラッグ&ドロップしてやると, 自動的にテキストフィールドにはインスタンス名が付いて(すでに付けていればそのままで), 「UIScrollBar」の「パラメータ」には自動的に _targetInstanceName に,そのインスタンス名が付きますから,スクリプトでセットする必要も全くありません。 また, 「UIScrollBar」はインスタンスであるテキストフィールドにセットされるのですから, テキストデータもテキストフィールドというテキストインスタンスに代入しなければなりません。 ===というわけで========================== 書かれている内容から推測できる状態をなるべく変えずに, うまく行く方法例を書きます。 まず, テキストフィールド入りムービークリップ の編集に入ります。 ムービークリップ内のテキストフィールドに,インスタンス名を付けてください。 この説明では 「TextField」 というインスタンス名を付けたとしておきます。 次に, 「UIScrollBar」を選択して, 「パラメータ」の _targetInstanceName の欄に,「TextField」と書いて(コピペして)ください。 「UIScrollBar」自体のインスタンス名は,書かれている内容から推測すると, 「scrollbar」と付けられているようですからそれはそのままでかまいません。 そして, ムービーの編集に戻って, そのテキストフィールド入りムービークリップ に次のようなスクリプトを書きます(コピペ可能)。 ------------------------------------- onClipEvent (load) { this.loadVariables("txt.html"); // ↓必要???(おそらく不要) scrollbar.setScrollTarget(TextField); } onClipEvent (data) { this.TextField.htmlText = myhtml; } ------------------------------------- これで行けると思います。 外部テキスト(「txt.html」)は,上にも書いたとおり, ------------------------------ myhtml=aaa<br>bbb<br>ccc<br>ddd<br>eee<br>fff<br>ggg<br>hhh<br>iii<br>jjj<br>kkk<br>lll<br>mmm<br>nnn ------------------------------ のような形にしてあります。 この,頭の「myhtml」という変数名を取ってきて, 「TextField」にその値を入れています。 >> ◆*.flaだと上下の矢印も表示されない白い棒のまま。 そういうものです。そういう仕様です。 なお, その他テキストフィールドに関しての参考URLと,引用を書いておきます。 「テキストフィールドのインスタンス名と変数名について」 http://livedocs.macromedia.com/flash/8_jp/main/00001418.html > テキストフィールドのインスタンス名と変数名を混同 > しないでください。テキストフィールドの変数名は、 > テキストフィールドに含まれているテキストを参照する > 変数であり、オブジェクトへの参照ではありません。 「ScrollBarコンポーネントのスクロールバーがアクティブにならない」 http://www.fumiononaka.com/TechNotes/Flash/FN0303006.html > TextFieldにはインスタンス名に加えて変数名も使用でき > ますが、スクリプトに混乱を生じるおそれがありますので、 > 変数名は削除することをお勧めします。

naonyan
質問者

お礼

いろいろやってみたんですが、おっしゃるとおりメチャクチャでしたね; 本当にすみません。 結局 http://acchan.s55.xrea.com/flash.html#sampleから移植したような形で なんとか改善されました。 本当に丁寧に教えていただきましてありがとうございます。 まだまだわからないことだらけですが今後ともよろしくお願いします。 今回は本当にありがとうございました。

関連するQ&A

  • テキストフィールドにスクロールバーを設置

    テキストフィールドをダイナミックテキストに指定し、 複数行に設定した後にコンポーネントパネルから「ScrollBar」をフィールドの右側にドロップしてからパブリッシュをしたのですが、 swfファイルを見てみると全くスクロールバーが作動していませんでした。 テキスト内には外部ファイル(txt)を読み込んでいるのですが、、、 そのときに使用したASは this.loadVariables("xxx.txt") で、これを1フレーム目に記述しました。 一応txtファイルに記述した適当な日本語文はきちんと表示されていました。 一体どこが原因でスクロールバーが作動しないのでしょうか? よろしくお願いします。

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

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

    • ベストアンサー
    • Flash
  • 外部テキストを読み込んで外部swfを表示

    flashの中に外部テキストに指示されたswfを読めるようにしたいのです。 今、試しているのが、 外部のテキスト(pics.txt)の中は pict="51.swf"と書いて flaには onClipEvent (load) { this.loadVariables(”pics.txt”); } onClipEvent (data) { myPict=pict; myStage.loadMovie(myPict); } とやってみたのですが、ぜんぜんダメでした。 どうしたもんでしょう? よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FlashMXのスクロールバーに関して

    こんにちわ、 win2000でFlashMXを使用し作業をしています。 外部ファイルを読み込み、テキスト表示をする際、UIコンポーネントのスクロールバーを使用しました。 しかし、テキストボックスの大きさまでは表示されるのですが、全ての文書を見ることが出来ません。 文章をスクロールさせたいのですが、どうすれば出来るのでしょうか? ちなみにアクションスクリプトは System.useCodepage = true; this.loadVariables("test.txt");{ _root.newtxt.condenseWhite = true; } で外部ファイル"test.txt"を読み込んでます。 そのほかはスクリプトを組んでません。 UIコンポーネントのスクロールのプロパティでは、 ●Target TextField → newtext(テキストボックスのインスタンス名) ●Horizontal → false になってます。 レイヤーは ・テキストボックス ・スクロールバー 一つ一つ分かれています。 もしわかるかたがいらっしゃれば教えていただければと思います。 また説明として不十分であればおっしゃってください。 よろしくお願いします。

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

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

  • Flashでjpegファイルを表示させる方法

    Flashのアクションスクリプトを使って外部テキストファイルを読み込む方法を模索していました。 外部テキストの文字を表示する事が出来ました。 ※下記ソース参照 onClipEvent(load){ this.loadVariables("test.txt"); } しかし画像を表示することは出来ませんでした。 どうか画像を表示させる方法を教えて頂けないでしょうか?ちなみにFlashMXを使わないと出来ないという情報は入手しました。

  • 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
  • スクロールバーの設定

    外部テキストを読み込んで、autoSizeのテキストフィールドに表示させ、そのテキストフィールドにスクロールバーをつけたいと考えています。 外部テキストを読み込んで、autoSizeのテキストフィールドに表示させることはできました。 スクロールバーの方は、テキストフィールドに付いてはいるんですがautoSizeに対応しないため、機能せず。という状況です。 環境:Windows XP/Flash MX 色々調べても解決出来なかったので困っています。 よろしくお願いします。

  • XML→スクロールバーの表示

    XML→スクロールバーの表示 こんにちわ。また質問させていただきます。 http://drache.jp/smp.jpg 現在、画像のように、外部のxmlからphoto(画像)、txt1、txt2、txt3をを読み込み表示し、それを一塊として連続表示しようとしています。 そして、その固まりに対し、スクロールバーを使いたいと思っています。 そこで解らないのが、そもそも中身(photo(画像)、txt1、txt2、txt3)に対しての可変するMCというものは作成できるのでしょうか。 図のように、txtの部分は、文章量によって可変し、その連続であるため、MCとしては大きさを決められない。と思うのですが、どうでしょうか? (図でいうとall_mcの部分) そもそも図のようなやり方は方向性として間違えているのでしょうか。 現在スクロールバーの部分はUIコンポーネントのスクロールペインを使っています。 素人で勉強しながらやっているもので、的外れな質問かもしれませんが よろしくお願いします。 AS3/CS3

  • 横スクロールバーを表示したい

    スクロールバーの色を変更するために下記のタグを埋め込んだ所、 今まで表示されていた横スクロールバーが消えてしまいました。 横スクロールさせないと見えない部分があるので、ぜひ表示させたいです。 どうか教えてください! Win98se・IE6 HPビルダーでどこでも配置モードを利用しています。 <STYLE type="text/css"><!--body {scrollbar-face-color:#ffffff; scrollbar-track-color:#ffffff; scrollbar-arrow-color:#C0C0C0; scrollbar-highlight-color:#808080; scrollbar-shadow-color:#C0C0C0; scrollbar-3dlight-color:#ffffff; scrollbar-darkshadow-color:#ffffff; overflow-x : hidden ;} --> </STYLE>

    • ベストアンサー
    • HTML

専門家に質問してみよう