• 締切済み

外部テキストをマウスオーバー時に下線表示

いま、Flash内に外部テキストを読み込ませて、クリックするとリンク先へ飛ぶようなものを作っています。リンク先に飛ばすところまではできたのですが、そのテキストをマウスオーバーした時に色付きの下線が表示されるようにしたいのですが、やり方が分からず困っています。 HTMLタグも何度か試してみたのですが、使えるタグは限られているようなので、うまくいきませんでした。 Flashの中で、下線表示させることもできるようですが、できれば外部ファイル内で表示させる方法を知りたいです。どなたかご存知の方がおられましたら、ご教授お願い致します。 よろしくお願いします。

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1です。 こちらこそ遅くなりました うまくいかないとは,どううまくいかないのでしょうか? ・私が書いたサンプル通りのことをしても何も表示されない。 ・私が書いたサンプル通りのことをしてもマウスオーバー時に下線が表示されない。 ・私が書いたサンプル通りのことをした場合は表示されるがデータを変えると表示されない。 ・私が書いたサンプル通りのことをした場合はマウスオーバー時に下線が表示されるがデータを変えると表示されない。  …などなど… 別コミュニティのものですが↓。 質問NGワード集 - テクニカルノート 【うまくいきません】 http://www.fumiononaka.com/TechNotes/NGWords.html#U あいにく,超能力を身に付ける修行などしたことがないので良くわかりません(笑)。 よくわかりませんが, 次のようにすればちゃんと表示されましたよ。 ◎ファイル構造  任意のフォルダ    ├ ○○.swf (Flash)    ├ link.txt (外部テキストファイル・Shift-JIS)    └ style.css (外部CSSファイル・単なるテキスト) ◎「style.css」 の内容 a:link {color: #0000FF;} a:hover{text-decoration: underline;} ◎「link.txt」 の内容(文字コード Shift-JIS) <font size="30">TOPICS</font><br><br><br><br> <a href="main_01.html">コメント.<br>コメント<br>コメント</a><br><br><br><br> <a href="main_02.html">コメント</a><br><br><br><br> <a href="main_03.html">コメント</a><br><br><br><br> <a href="main_04.html">コメント</a> ◎Flashムービー内の構成  _root   └ myTXT(ダイナミックテキスト)  ※ "インスタンス名" 「myTXT」 の    ダイナミックテキストフィールドは    複数行表示できるように    適当に大きなものを用意 ◎上記 myTXT が存在するフレームに書くスクリプト例 --------------------------------------- // 外部データの文字コードが Shift-JIS の場合 System.useCodepage = true; // myTXT を複数行表示にする myTXT.multiline = true; //myTXT の余分な空白を削除する myTXT.condenseWhite = true; // myTXT の HTMLレンダリング を true にする myTXT.html = true; // LoadVarsインスタンス myLV を作成 var myLV:LoadVars = new LoadVars(); // 外部リンクデータファイルロード完了時の動作を定義 myLV.onData = function(myData:String):Void { // テキストフィールド myTXT に 外部リンクデータ myData を表示 myTXT.htmlText = myData; }; // StyleSheetインスタンス mySS を作成 var mySS:TextField.StyleSheet = new TextField.StyleSheet(); // 外部スタイルシートロード完了時の動作を定義 mySS.onLoad = function(seikou:Boolean):Void { // 成功したら if (seikou) { // テキストフィールド myTXT に mySS を適用 myTXT.styleSheet = mySS; // 外部テキストデータファイル 「link.txt」 をロード myLV.load("link.txt"); } else { trace("CSSファイルがありません"); } }; // 外部外部スタイルシートファイル 「style.css」 をロード mySS.load("style.css"); --------------------------------------- ◎プログラムの流れ テキストフィールドの書式などを設定    ↓ 外部外部スタイルシートファイル 「style.css」 のロード    ↓ 外部スタイルシートロード完了後 テキストフィールド にスタイルシートを適用し 外部テキストデータファイルをロード    ↓ 外部テキストデータファイルのロード完了後 テキストフィールドに外部テキストデータの内容を表示 この,「プログラムの流れ」 を理解してその手順通りにすれば, スクリプトや外部テキストやスタイルシートは適当に変えることができます。 #1 も #2 も, この 「プログラムの流れ」 は全く変えていません。 変えたのは ごく一部のスクリプトと外部テキストファイルのデータだけです。 ◎ポイント ・スタイルシートを使う(外部ファイルでも内部定義でも可能) ・LoadVars.onData イベントハンドラメソッドでロード完了を拾う  (LoadVars.onData=function(○○) の ○○ に外部データが入るので呼びだしやすい) ・スタイルシートを適用したテキストフィールドの 「htmlText プロパティ」 にロードした外部テキストを代入する  

monacoo
質問者

お礼

BlurFiltanさん 丁寧に説明して頂いて本当にありがとうございます!! ちゃんとできました! 私の初歩的なミスでした。。 ありがとうございました!

すると、全ての回答が全文表示されます。
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

> そのテキストをマウスオーバーした時に > 色付きの下線が表示されるようにしたい 「マウスオーバーした時に」なのですから, 仮に HTML のタグが全部使えても無理です。 HTML ファイルでも タグ ではなくて,普通は CSS を使うと思います。 書けるのは以上くらいです。 あとは  ・具体的にどうしたいのか  ・外部テキストのデータの形  ・Flash のバージョン  ・ActionScriptのバージョン   などなど… のような情報がないと回答できませんし, 情報があってもできないバージョンはありますし, できるバージョンであっても回答できない場合もあります。 以下は勝手に Flash MX 2004 以上をご使用の場合で, ActionScript2.0 を使う場合を想定した例です。 ◎ファイル構造  任意のフォルダ    ├ ○○.swf (Flash)    ├ link.txt (外部テキストファイル)    └ style.css (外部CSSファイル(単なるテキスト)) ◎「link.txt」 の内容(文字コード Shift-JIS と仮定) myData=→<a href="main.html">メイン</a>へ ◎「style.css」 の内容 a:link {color: #0000FF;} a:hover{text-decoration: underline;} ◎Flashムービー内の構成  _root   └ myTXT(ダイナミックテキスト) ◎上記 myTXT が存在するフレームに書くスクリプト例 ------------------------------------------ // 外部データの文字コードが Shift-JIS の場合 System.useCodepage = true; // myTXT の HTMLレンダリング を true にする myTXT.html = true; // LoadVarsインスタンス myLV を作成 var myLV:LoadVars = new LoadVars(); // 外部リンクデータファイルロード完了時の動作を定義 myLV.onLoad = function(seikou:Boolean):Void { // 成功したら if (seikou) { // テキストフィールド myTXT に 外部リンクデータ myData を表示 myTXT.htmlText = myLV.myData; } else { trace("リンクデータファイルがありません"); } }; // StyleSheetインスタンス mySS を作成 var mySS:TextField.StyleSheet = new TextField.StyleSheet(); // 外部スタイルシートロード完了時の動作を定義 mySS.onLoad = function(seikou:Boolean):Void { // 成功したら if (seikou) { // テキストフィールド myTXT に mySS を適用 myTXT.styleSheet = mySS; // 外部テキストデータファイル 「link.txt」 をロード myLV.load("link.txt"); } else { trace("CSSファイルがありません"); } }; // 外部外部スタイルシートファイル 「style.css」 をロード mySS.load("style.css"); ------------------------------------------

monacoo
質問者

補足

BlurFiltanさん ご返事が遅くなりまして、すみません。 BlurFiltanの書いてくださったスクリプトを参考にして、試行錯誤さてみたのですが、なぜかうまくいきません。 【具体的にやりたいことは】 Flashに読み込んだ外部テキストをマウスオーバー時に下線表示→クリックでリンク先に飛ばす。 【外部テキストのデータは以下のように書いています】 <font size="30">TOPICS</font><br><br><br><br> <a href="main_01.html">コメント.<br>コメント<br>コメント</a><br><br><br><br> <a href="main_02.html">コメント</a><br><br><br><br> <a href="main_03.html">コメント</a><br><br><br><br> <a href="main_04.html">コメント</a> 【Flashのバージョン】 Flash8 / ActionScript2.0 以上になります。 私なりに色々試してみたものの、なかなかうまく行かず 困っています。 是非、ご教授お願い致します。

すると、全ての回答が全文表示されます。

関連するQ&A