- ベストアンサー
テキストファイルからの読み込みにつきまして
はじめまして。Flash初心者です。 ただいま、「プロとして恥ずかしくないFlashの大原則」のP94ページの 外部テキストからの設定が可能な縦メニューを挑戦しているのですが、テキストファイルからの日本語の読み込みが表示できません。アルファベットでしたら表示ができるので、どこがおかしいのかわからなくなってしまいました。 以下、使用中のロジック // 外部テキストのエンコード設定 System.useCodepage = true; i = 0; // メッセージウィンドウに1文字ずつ表示する関数を作成 function msgWindow( winObj, mObj ){ if( i <= mObj.mMsg.length ){ winObj.msgStr.text = mObj.mMsg.substr( 0, i ); i++; } else{ i = 0; clearInterval( _root.tID ); } } // ロード時に外部テキストを読み込む onLoad = function(){ if( _root.textUrl != null ){ this.loadVariables( _root.textUrl ); } else{ this.loadVariables( "menu.txt" ); } } // データを読み込み後の処理 onData = function(){ // メニューボタンをステージに配置 for( cnt = 1; cnt < 2; cnt++ ){ if( eval( "menu" + cnt ) !== undefined ){ mObj = "mBtn" + cnt; _root.attachMovie( "menuBtn", mObj, cnt ); _root[mObj]._x = 5; _root[mObj]._y = 60 * cnt; _root[mObj].m_name.text = eval( "menu" + cnt ); _root[mObj].mUrl = eval( "url" + cnt ); _root[mObj].mTarget = eval( "target" + cnt ); _root[mObj].mMsg = eval( "msg" + cnt ); } // メニューボタン上でマウスボタンを離した時 _root[mObj].onRelease = function(){ getURL( this.mUrl, this.mTarget ); } // マウスオーバー時の処理 _root[mObj].onRollOver = function(){ eval(this._name).gotoAndStop( 2 ); with(_root) { objMsgWin = "newMsgWin"; attachMovie("msgWin", objMsgWin, 100 ); _root[objMsgWin]._x = this._x; _root[objMsgWin]._y = this._y + 25; tID = setInterval( msgWindow, 20, _root[objMsgWin], this ); } } // ポインタをメニューボタン外に移動した時 _root[mObj].onRollOut = function(){ eval(this._name).gotoAndStop( 1 ); _root[_root.objMsgWin].removeMovieClip(); clearInterval( _root.tID ); } // マウスボタンがメニューボタン外で離された時 _root[mObj].onReleaseOutside = function(){ eval(this._name).gotoAndStop( 1 ); _root[_root.objMsgWin].removeMovieClip(); clearInterval( _root.tID ); } } } stop(); 以下、テキストファイル &menu1=あいうえお& &menu2=123456& &menu3=MENU03& &menu4=MENU04& &menu5=MENU05& &menu6=MENU06& &menu7=MENU07& &menu8=MENU08& &url1=http://www.mdn.co.jp/& &url2=http://www.mdn.co.jp/& &url3=http://www.mdn.co.jp/& &url4=http://www.mdn.co.jp/& &url5=http://www.mdn.co.jp/& &url6=http://www.mdn.co.jp/& &url7=http://www.mdn.co.jp/& &url8=http://www.mdn.co.jp/& &target1=_blank& &target2=_blank& &target3=_blank& &target4=_blank& &target5=_blank& &target6=_blank& &target7=_blank& &target8=_blank& &msg1=現在のページです& &msg2=現在のページです& &msg3=現在のページです& &msg4=ここにメニュー04の説明が入ります。& &msg5=ここにメニュー05の説明が入ります。& &msg6=ここにメニュー06の説明が入ります。& &msg7=ここにメニュー07の説明が入ります。& &msg8=ここにメニュー08の説明が入ります。& 結果 『&menu1=あいうえお&』で出したい、「あいうえお」が表示できません。他の&menuと&msgの日本語は表示されるのですが、どこかおかしいでしょうか。 もしお時間ありましたら宜しくお願い致します。 ちなみにですが、今回のロジックのサンプルはhttp://www.mdn.co.jp/content/view/962からダウンロードしたものです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- suzuko
- ベストアンサー率38% (1112/2922)
関連するQ&A
- 「.txt」に記入した、テキストとリンクURLをFlashに読み込む時に・・・
こんにちは! Windows XP Flash MX 秀丸 「.txt」から Flash内のテキストフィールドにテキストを そのテキストの上に重なっているボタンインスタンスに URLを指定させたいと考えています。 マウスが乗ったときにアクションの起こるボタンに、 外部からテキストとURAを設定したいということです。 ボタン構成は ボタンインスタンス「A」 ダイナミックテキスト「vtext」 ムービークリップ「B」ActionScript記入 ムービークリップ「over」マウスが乗った時のムービー まとめて「aaa」とシンボル化してあります。 「.txt」には以下のように記入 *** Index Setup *** &index=YAHOO!JAPAN& &url=http://www.yahoo.co.jp& &target=_blank& シーン1タイムライン1フレーム目には _root.aaa.A.onRollOver = function () { if (_root.aaa.overFlag != 1) { with (_root.aaa.over) { play(); } // End of with } // end if _root.aaa.overFlag = 1; _root.aaa.vText._x = -200; }; _root.aaa.A.onRollOut = function () { _root.aaa.overFlag = 0; _root.aaa.vText._x = 0; }; _root.aaa.A.onPress = function () { getURL(_root.aaa.A.url, _root.aaa.A.target); }; 「data」には onClipEvent (load) { if (_root.inText == null) { this.loadVariables("SingleButton_01a.txt"); } else { this.loadVariables(_root.inText); } // end if } この状態でターゲットパスを正確に記入しどの階層でも動くのですが、 シーン1のタイムライン上(どこでも)にstop();とアクションを記入 するとテキストのみが表示され、ボタンのリンクやムービーは止まってしまいます。この解決方法はないのでしょうか? よろしくお願いします。
- 締切済み
- Flash
- 外部テキストからURLを読み込む方法
昨日、外部テキストの読み込みでお世話になったものです。 言われたとおりにやってみたところちゃんとテキストは読み込めました。 次はURLを読みこもうと思い、みなさんの質問の参考になりそうなものを手がかりにやってみたのですが、うまくいきませんでした。 テキストファイルは『flash.txt』 シンボルはMCで フレーム1のアクションスクリプトは ―――――――――――――――――― System.useCodepage = true; myLoadVars = new LoadVars(); myLoadVars.onLoad = function(Success) { if (Success) { _root.text1.text = this.menu1; _root.url1 =this.url1; } }; myLoadVars.load("flash.txt"); --------------------------------------- となっています。 これでシンボルMCに on (release) { getURL("_root.url1"); } とやっているのですが、飛びません。 また前回と同じようにこちらのミスが多いのかもしれませんが、 知っている方がいましたらよろしくお願いいたしますm(__)m
- ベストアンサー
- Flash
- Flashでテキストをランダム表示
現在ウェブページで、javascriptを使って、テキストメッセージをランダム表示しています。 FlashのActionScriptを使い、同等のことを行いたいのですが、どうすればよいでしょうか。 なお、出来たら表示するテキストは外部から読み込ませたいです。 よろしくお願いします。 現在使っているjavascriptは以下です。 --------------------------------- <script type="text/javascript"> var MsgCnt=5; var Msg=[]; Msg[1] = "これは1番目のメッセージです。"; Msg[2] = "これは2番目のメッセージです。"; Msg[3] = "これは3番目のメッセージです。"; Msg[4] = "これは4番目のメッセージです。"; Msg[5] = "これは5番目のメッセージです。"; var ary=[]; for(var i=0;i<MsgCnt;i++)ary[i]=i+1; function arySort(){ ary.sort(function(){return Math.random()-Math.random();}); } var cnt=0;arySort(); function RandomMsg(){ if(cnt>=MsgCnt)cnt=0,arySort(); document.write(Msg[ary[cnt++]]); } </script> <script type="text/javascript"> RandomMsg(); </script> --------------------------------- 環境: windows vista flash pro 8
- ベストアンサー
- Flash
- テキストスクロールの外部テキストファイルが表示されない
こちらの過去ログから下記サイトを参考に、外部テキストファイルを読み込んで表示するテキストスクロールを作成しました。 http://www.flashiroha.com/script/as5.html flashで保存したswfファイルでは正常に表示されるのですが、作成したHTMLファイルにswfファイルを挿入すると外部テキスト部分が表示されず、サイドのスクロールボタンのみしか見えていません。 swfファイルと同階層にtextファイルは置いています。 そして、そのswfファイルをダブルクリックすると外部テキストファイルは表示されているにもかかわらず、htmlファイルでは表示されないのです。 足りないところは、補足説明も致しますのでよろしくお願い致します。 --------------------------------------------- ■htmlファイル <div id="textbox"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="545" height="150" title="テキストスクロール"> <param name="movie" value="common/flash/text.swf" /> <param name="quality" value="high" /> <embed src="common/flash/text.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="545" height="150"></embed> </object> </div> ■css #textbox { width: 545px; height: 150px; margin: 10px 0; } ■flash //テキストフィールドに this.loadVariables("text.txt"); //上向きボタンに on(rollOver){ _root.onEnterFrame = function() { _root.textbox.scroll -= 1; } } on(rollOut, releaseOutside) { _root.onEnterFrame = function() { _root.textbox.scroll -= 0; } } //下向きボタンに on(rollOver){ _root.onEnterFrame = function() { _root.textbox.scroll += 1; } } on(rollOut, releaseOutside) { _root.onEnterFrame = function() { _root.textbox.scroll += 0; } }
- ベストアンサー
- Flash
- このソースで、仕組みについて教えてください。
現在、スクリプトを勉強しているんですが、XMLから画像URLを呼び込むソースで調べ方が分からない箇所がありますので、どなたか解説して頂けないでしょうか? ●下記はどういった式になるのでしょうか? _root.total = this.childNodes[0].childNodes.length; ※totalの時 = このチルドノード[0]の子ノードを調べる? (自分の解釈です。この[0]はなんなのでしょうか?) ●例えばトータルの最後尾から逆再生させるにはどんな式が必要でしょうか? ※mainasu = cnt-1; (間違ってるとはおもいますが、内容をまだ反映できないので確認ができません) ●初期値 // ストップ stop(); // カウント用変数 cnt の初期値を設定 cnt = -1; // XMLインスタンスの作成 myXML = new XML(); // 余分な空白などを削除 myXML.ignoreWhite = true; // XMLデータロード時の動作定義 myXML.onLoad = function() { // 変数 total にノードのトータル数を取得 _root.total = this.childNodes[0].childNodes.length; // フレーム2でストップ _root.gotoAndStop(2); }; // 外部 XML ファイルのロード myXML.load("my_data.xml"); ●2フレーム // カウント用変数がノード数-1より小さいとき if (cnt<total-1) { // カウントを 1 加算 cnt++; } else { // それ以外は 0 に戻す cnt = 0; } // テキストフィールド 「number_txt」に 番号を表示 _root.number_txt.text = myXML.childNodes[0].childNodes[cnt].firstChild.nodeValue; // MovieClipLoaderクラスのインスタンスを作成 myMCL = new MovieClipLoader(); // ロード監視用のインスタンスを作成 myObj = new Object(); // JPEG ロード完了時 myObj.onLoadInit = function(target_mc) { // load_mc にリンクを設定 target_mc.onRelease = function() { getURL(myXML.childNodes[0].childNodes[cnt].attributes.linkURL, "_blank"); }; // 再生開始 _root.play(); }; // myMCL のリスナーとして myObj を登録 myMCL.addListener(myObj); // JPEG をロード myMCL.loadClip(myXML.childNodes[0].childNodes[cnt].attributes.jpegURL, load_mc);
- ベストアンサー
- Flash
- 外部ファイルでテキスト、リンク先URLを指定したボタン
FLASH MX WindouwsXPを使用しています。 宜しくお願いします。 外部ファイルよりテキスト、URLを読み込んだマウスアクションの ついたリンクボタンを作成しているのですが、URLが上手く 読み込めません。 ボタンの構成(重なり)は上から ・ボタンインスタンス ・ムービークリップインスタンス ・ダイナミックテキスト の順です。 ダイナミックテキストは LoadDataName = "topmenu26.txt"; loadVariables(LoadDataName, ""); _root.mm1.text = menu1; と読み込み正常に表示されています。 ムービークリップもボタンにActionScriptを記入することで 正常に作動しています。 しかしボタンのリンクだけが正常に作動しません。 ボタンには外部よりリンク先URLを読み込む為、レイヤー最上段の 1フレーム目に loadVariablesNum("topmenu26.txt", 0); と記入し、ボタンには on (release) {getURL(url1, target);} で外部ファイルのに記入したURLを読み込んでいます。 「シーン1」にこのボタンを設置すると、実際この方法で正常に 動きます。 しかし、このボタンを「シーン1」からシンボル内に設置すると 1フレーム目に記入した loadVariablesNum("topmenu26.txt", 0); と、ボタンの on (release) {getURL(url1, target);} がファイルを読み込まずリンクだけ動かなくなってしまいます。 フレームに記入した loadVariablesNum("topmenu26.txt", 0); の記入場所をシンボル内に変更したり、いろいろ試してみた のですが、解決できませんでした。 どのように変更すればシンボル内でもこのようなボタンが 設置できるのでしょうか? また、ボタンに外部からURLを設定する場合、他にどのような方法が あるのでしょうか? 宜しくお願いします。
- ベストアンサー
- Flash
- javaスクリプトでリンク付のスクロールテキストを作成したいのですが、
javaスクリプトでリンク付のスクロールテキストを作成したいのですが、困っております。 参考サイトを探し、下記の状態まで作成しております。 <html> <head> <script language="JavaScript"> <!----- var msg = "テキスト"; msg = msg + " "; msg = msg + "テキス2"; msg = msg + " "; var speed = 200; function textDisp(){ msg = msg.substring(1,msg.length) + msg.substring(0,1); document.form1.text1.value = msg; setTimeout("textDisp()",speed); } var winTarget = "_self"; var url = "http://www.yahoo.co.jp/"; function textlink(){ open(url, winTarget); } //-----> </script> </head> <body bgcolor="white" onLoad="textDisp();"> <form name="form1"> <input type="text" name="text1" size="60" onclick="textlink();" style="cursor:hand;border:none;color:#ff3399;" onMouseover="this.style.color='#ffcc00'" onMouseout="this.style.color='#ff3399'"> </form> </body> </html> 表示時に”テキスト”と”テキスト2”を独立してそれぞれ、違うリンク先に飛ばすには どのようにすればよろしいでしょうか? また、空白をのぞき、リンク部分だけに下線をつけたいです。 CSSで指定をすると文字から空白まですべてに下線が付いてしまいます。 説明が悪いかもしれませんが、もしお分かりになる方おられましたら、参考サイトでも かまいませんのでお教えいただけますと幸いです。
- 締切済み
- JavaScript
- 外部複数テキスト読み込みのについて
外部複数テキスト読み込みのについて 写真のサムネイルボタンがあり、それをクリックすると外部の写真と、外部のテキストが読み込まれる物を作成しています。 サムネイルボタンが複数あるので、1つずつ表記するのではなくまとめたいと思って四苦八苦しています。 複数あるボタンは下記の様にまとまった記述にできました。 //ボタンクリックで写真読み込み for (var i_pic:int = 0; i_pic < 10; i_pic++) { this["btn"+i_pic].addEventListener(MouseEvent.CLICK, loadPic); } function loadPic(event:MouseEvent):void { var btn_name:String=event.target.name; this.menuPicture.source="menu/menu"+btn_name.charAt(3)+".jpg"; } しかし外部テキストが色々試しましたがうまくいきません。 for (var i_txt:int = 0; i_txt < 10; i_txt++) { this["btn"+i_txt].addEventListener(MouseEvent.CLICK, TextLoad); } function TextLoad(event:MouseEvent):void { var Ureq:URLRequest=new URLRequest("menu/menu_txt"+btn_name_txt.charAt(3)+".txt"); var loaderTxt:URLLoader = new URLLoader(); loaderTxt.load(Ureq); var btn_name_txt:String=event.target.name; setumei.text=loaderTxt.data; } 適当にやってここまでてきて、コンパイルエラーは出ないものの、いざボタンを押すと TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at _fla::Timeline_1/TextLoad() とでます。 どうやったら上手くいくのでしょうか? よろしくお願い致します。
- 締切済み
- Flash
- リンクでのエスケープシーケンスで、半角スペースを混ぜたい
変数が混じったURLとタイトルを、リンクタグにするのに、かなりエスケープで悩んで、ここまで記述できました。 _root.hoge = "<a href=" + _root.url + "target=\"_blank\">" + _root.title + "</a><br>"; でも最後に、_root.urlとtarget=の前に半角スペースを入れようと" "や、"\" \""などいろいろやりましたが、_root.hoge の中には、_root.url以降が切れて仕舞います。 どのようにエスケープすればよいのか教えてください。 宜しくお願いします。
- ベストアンサー
- Flash
お礼
とてもご親切な回答有り難うございました。「_ゴシック」 で対応しようと思います!日本語が出て来た時は、思わずニヤッと笑ってしまいました。 「プロとして恥ずかしくないFlashの大原則」はとても真似したい例がたくさんあるのは有難いのですが、少し初心者には、説明が少なく苦労するように感じました。 これからも負けじとスキルアップしていけたらと思います。 また機会がありましたら宜しくお願いします。