ニュースティッカーを作る

このQ&Aのポイント
  • 外部xmlを読み込んでニュースティッカーを作りたい。タイトルが右から流れてある時点でストップ、そして左へ消えていく。タイトルにリンクを貼ることができない。WinXP,FlashMXで作業をしている。
  • 外部xmlファイルには4つのニュース記事があり、タイトル、内容、リンクが含まれる。ステージにダイナミックテキストを配置し、外部XMLをロードする。ニュースのエレメント数を取得してタイトルを表示し、一定の間隔で切り替える。
  • ニュースティッカーのタイトルを表示させることはできるが、タイトルの動きとリンクの貼り方がわからない。WinXPとFlashMXでの作業をしている。
回答を見る
  • ベストアンサー

ニュースティッカーを作る

初めて質問させていただきます。 外部xmlを読み込んでニュースティッカーを作りたいのです。 ・タイトルが右から流れてある時点でストップ、そして左へ消えていく。 ・タイトルにその記事へのリンクを貼る。 タイトルを表示させることは出来たのですが、動きとリンクを貼ることができません。 WinXP,FlashMX で作業をしております。 どなたか教えていただけないでしょうか? よろしくお願い致します。 ・外部xmlファイル test.xml <?xml version="1.0" encoding="Shift_JIS" ?> - <story> - <item> <title>NEWSその1</title> <description>記事の内容</description> <link>http://www.news01.com</link> </item> - <item> <title>NEWSその2</title> <description>記事の内容</description> <link>http://www.news02.com</link> </item> - <item> <title>NEWSその3</title> <description>記事の内容</description> <link>http://www.news03.com</link> </item> - <item> <title>NEWSその4</title> <description>記事の内容</description> <link>http://www.news04.com</link> </item> </story> ステージにダイナミックテキストを配置(インスタンス名:news_txt) ・rootの第一フレーム System.useCodepage = true; news_txt.html = true; my_xml = new XML(); my_xml.ignoreWhite = true; // 外部 XML ロード完了時の処理 my_xml.onLoad = function(success) { // ロードに成功すれば if (success) { // rootNode に my_xml.firstChild を設定 rootNode = my_xml.firstChild; // ニュースのエレメント数を取得 nodeLen = rootNode.childNodes.length; news_txt.htmlText = rootNode.childNodes[0].firstChild; myID = setInterval(changeTopic,5000); } else { trace("Error loading XML."); } }; // インスタンス my_xml に外部XML をロード my_xml.load("test.xml"); var cnt = 0; function changeTopic() { if(cnt<nodeLen-1){ cnt++; }else { cnt=0; } // news_txt.htmlText = rootNode.childNodes[cnt].firstChild; }

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

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

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

普通は,ご質問で書かれていらっしゃる部分が大変で(難しくて), 「動かす」とか「リンクをかける」というのが簡単な事だと思います。 普通にFlashを始める場合, 「動かす」とか「リンクをかける」とかいうことが,基本的な出発事項なのですから。 > ・タイトルが右から流れてある時点でストップ、そして左へ消えていく。 普通にその動きをモーショントゥイーンで作成すれば良いと思います。 例えばフレーム1で XML をロードさせるところまでしておいて, ロード完了次第, フレーム2以降にそういうアニメーションを作成すれば良いということです。 フレーム2では,テキストフィールドに XML の最初のノードのタイトルを代入します。 そして, そのタイトルが右から流れてある時点でストップ、そして左へ消えていくという1つの動きが終わった状態のフレームで, タイムラインを gotoAndPlay(2) で,フレーム2に戻します。 このフレーム2では次のノードのタイトルをテキストフィールドに代入するようにします。 > ・タイトルにその記事へのリンクを貼る。 テキストフィールドが動く上のレイヤーに,ボタンを作成して, フレーム2 に戻る度に, ボタン.onRerease = function(){   getURL(次のノードのURL); }; のように定義し直します。 まとめると,  XML をロードするのは フレーム1。  XML からデータを1つずつ取ってきて適用させるのがフレーム2。  それ以外は,タイトルが右から左へ消えていくアニメーション。 こんな感じが Flash 的にオーソドックスな作り方だと思います。

limena
質問者

お礼

回答、ありがとうございます。 なるほど。切り離して考えるとよかったんですね。 うまくいくか分かりませんが、頑張って作ってみます。 分からない時はまた質問しますので、よろしくお願いいたします。

関連するQ&A

  • 外部XMLのテキスト表示

    WinXP、FLASH MX2004Proで編集しています。 FLASHで外部XMLを読み込んで、テキストを表示させたいと思っています。 XMLファイルはnews.xmlで、 -------------------- <?xml version="1.0" encoding="Shift_JIS" ?> <news> <item> <title>NEWSその1</title> <link>http://www.news01.com</link> </item> <item> <title>NEWSその1</title> <link>http://www.news02.com</link> </item> </news> </xml> -------------------- です。DWで作成したので、Shift-Jisで間違いないと思います。 FLASHでは、ステージ上にダイナミックテキストを配し、インスタンス名・変数名ともに「title_text」にしています。 また、フレームには以下のASを書いています。 -------------------- System.useCodepage = true; newsXML = new XML(); newsXML.load("news.xml"); newsXML.ignoreWhite = true; newsXML.onLoad = function(success) { total = newsXML.firstChild.childNodes.length; title_text.text = newsXML.firstChild.childNodes.firstChild.nodeValue; }; --------------------- 「NEWSその1」が表示されて欲しいところですが、実際には、 「undefind」 です。 ちなみに、 newsXML.onLoad = function(success) { if(success){trace("OK");}else{tarace("NG");} ・・・ としてみたら、「OK」が出力されました。 trace(total); では、「2」が出力されます(あってます)。 しかし、 trace(title_text); は、「undefind」です。 ぜひお力お貸しください。 お願いします。

    • ベストアンサー
    • Flash
  • Flashにブログ更新情報を表示する

    Flash初心者です。 Flashにブログのatom(rss.xml)を読み込み ブログタイトルや、最新の記事タイトル3つを表示させようと思っています。 ちょうど良いサイトがあり、 http://allabout.co.jp/gs/flash/closeup/CU20090926E/ に従い、1フレーム目に ============================================================ System.useCodepage = true; newsData = new XML(); newsData.ignoreWhite = true; newsData.load("(自身のブログTOPへのフルパス)/atom.xml"); ↑(GoogleのBlogger)のrss.xmlをフルパスで指定しました。↑ ============================================================ と指定し、 10フレーム目に ============================================================ //サイトのタイトルを取得 siteTitle = newsData.firstChild.childNodes[0].childNodes[2].nodeValue; //サイトのURLを取得 siteUrl = newsData.firstChild.childNodes[0].childNodes[6].nodeValue; //記事タイトルを格納する変数 item1Title = newsData.firstChild.childNodes[0].childNodes[13].childNodes[4].nodeValue; item1Url = newsData.firstChild.childNodes[0].childNodes[13].childNodes[10].nodeValue; item1Title = newsData.firstChild.childNodes[0].childNodes[14].childNodes[4].nodeValue; item1Url = newsData.firstChild.childNodes[0].childNodes[14].childNodes[10].nodeValue; item1Title = newsData.firstChild.childNodes[0].childNodes[15].childNodes[4].nodeValue; item1Url = newsData.firstChild.childNodes[0].childNodes[15].childNodes[10].nodeValue; //整形してテキストボックスに表示 // site.htmlText = "<b><a href='" + siteUrl + "'>" + siteTitle + "</a></b>"; item.htmlText = "<b>新着情報</b>" if(item1Title != undefined){ item.htmlText += "<a href='" + item1Url + "'>" + item1Title + "</a>"; } if(item2Title != undefined){ item.htmlText += "<a href='" + item2Url + "'>" + item2Title + "</a>"; } if(item3Title != undefined){ item.htmlText += "<a href='" + item3Url + "'>" + item3Title + "</a>"; } ============================================================ と指定したxmlに合わせてxmlの内容の取り出し指定を変更しましたが、 「URL '(自身のブログTOPへのフルパス)/atom.xml' を開く処理のエラー」 という出力エラーが出てしまいます。 理解せずに作っているので、何が悪いのかまったくわかりません。 よろしくお願いいたします。

  • このソースで、仕組みについて教えてください。

    現在、スクリプトを勉強しているんですが、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
  • 外部XMLを使ってFLASHに値を送りたい

    下記のアクションスクリプトは外部XMLより色の値をFLASHに送るものです。 タイトル、コメント、フォントサイズや種類の指定を追加するにはどうすればよいのでしょうか? 宜しくお願いします。 System.useCodepage = true; my_xml = new XML(); my_xml.load("style.xml"); my_xml.ignoreWhite = true; my_xml.onLoad = function(success) { if (success == true) { rootNode = my_xml.firstChild; AValue = rootNode.firstChild.nodeValue; AValue = AValue.substr(1, 6); updatebgcolor(AValue); colorNode = rootNode.nextSibling; $BValue = colorNode.firstChild.nodeValue; $BValue = $BValue.substr(1, 6); updatebgcolor2($BValue); } }; updatebgcolor = function (AValue) { colorObj = new Color(bg_mc); colorObj.setRGB("0x"+AValue); }; updatebgcolor2 = function ($BValue) { colorBObj = new Color(bg2_mc); colorBObj.setRGB("0x"+$BValue); };

  • xmlから作ったサムネールを移動させる

    こんにちは。 flashを勉強中です。XMLからサムネールの一覧を作ろうとして、 なんとかステージに配置するのはできたのですが、サムネールの 数が多いので、マウスの位置によって垂直に移動させる様なことを したいのですが、どうして動かせばよいのかがわからずに困って おります。 アクションスクリプトは以下の様にしております。 このサムネールをMCに埋め込む方法だけでもお教え頂ければ 幸いです。よろしくお願いします。 ----------------------------------------------- myXML = new XML (); myXML.ignoreWhite = true; myXML.load ("data.xml"); myXML.onLoad = function (loaded) {    if (loaded) {      v_rootNode = myXML.firstChild;      v_num = v_rootNode.childNodes.length;      _root.total = v_num;      v_currentPhoto = v_rootNode.firstChild;      v_currentNumber = 0;       for (i=0; i < v_num; i++) {        duplicateMovieClip (icon , "mc_icon"+i, i+1);        path = v_currentPhoto.childNodes[1].firstChild;         _root["mc_icon"+i]._x = 30;         _root["mc_icon"+i]._y = 65 * i + 30;         _root["mc_icon"+i].picture.LoadMovie(path);         _root["mc_icon"+i].title = v_currentPhoto.childNodes[0].firstChild;        v_currentPhoto = v_currentPhoto.nextSibling;        }     } else {      trace ("error occured");   } };

    • ベストアンサー
    • Flash
  • xmlから取得したアドレスにリンクを貼りたい。

    xmlから取得したページアドレスをダイナミックテキストに表示、リンクを貼りたいのですがうまくいきません…。 htmlTextを使用してかなり強引に記述しましたがやっぱり不可能でした。(本来アドレスを指定するべきところにノードの参照を直接書いた) dataText.html=true; dataText.condenseWhite=false; dataText.htmlText = <a href='weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue'> weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue </a> やりたいことは 1・xmlから取得したアドレスをテキスト表示。 2・そのアドレスと同じアドレスのリンクをそのテキストに貼る。 です。 1だけであればtextで表示指定するだけなので出来たのですが 1と2を兼ね合おうとするとどうしてもうまくいきません。 htmlTextではできないのでしょうか? 変数などで解決できるのであればその方法を教えて頂きたいです。 flashのバージョンは8です。 初歩的な質問ですいません。よろしくお願いします。

    • ベストアンサー
    • Flash
  • RSS Feedの外部ファイル読み込み

    RSS Feedのソースの中に外部ファイルを読み込むことは出来ますでしょうか? 以下のような感じで、RSS Feedのrss.xmlにcontents.xmlをインクルードすることは、可能でしょうか。 可能であれば、どのように記述すれば良いでしょうか? 分かる方、よろしくお願い致します。 rss.xml----------------------------------------------------------- <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xml:lang="ja"> <channel> <title>RSSのタイトル</title> <link>http://~</link> <description>RSSの説明</description> <language>ja</language> <copyright>RSSのコピーライト</copyright> <lastBuildDate>日付</lastBuildDate> <item> <title>タイトル1</title> <link>http://~</link> <description>タイトル1の説明</description> <category>タイトル1のカテゴリ</category> <pubDate>タイトル2の日付</pubDate> </item> ここに「contents.xml」の内容を読み込みたい </channel> </rss> ------------------------------------------------------------------ contents.xml------------------------------------------------------ <?xml version="1.0" encoding="UTF-8" ?> <item> <title>タイトル2</title> <link>http://~</link> <description>タイトル2の説明</description> <category>タイトル2のカテゴリ</category> <pubDate>タイトル2の日付</pubDate> </item> ------------------------------------------------------------------

    • ベストアンサー
    • XML
  • PHP4でXML

    こんにちは。PHPでXMLファイルを書き換えたいのですが、サーバ環境がPHP5ではありません。以下のようにHTMLと同じ方法でphpファイルを読み込むことは不可能なのでしょうか?だとしたら他に良い方法はありますか?困っています。どなたか助けてください。よろしくお願いします。 <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>○○1</title> <link>http://○○</link> <description>ウェブサイトに掲載されている最新の情報を掲載しております。</description> <language>ja</language> <copyright>Copyright (c) 2007 ○○, Inc. All Rights Reserved.</copyright> <pubDate><?php include("../rss/date.php"); ?></pubDate> <item> <title>ニュースリリース</title> <link>http://○○</link> <description><?php include("../rss/news.php"); ?></description> <pubDate><?php include("../rss/date.php"); ?></pubDate> </item> <item> <title>商品一覧ページ</title> <link>http://○○</link> <description><?php include("../rss/prodact.php"); ?></description> <pubDate><?php include("../rss/date.php"); ?></pubDate> </item> <item> <title>沿革</title> <link>http://○○</link> <description><?php include("../rss/corporation.php"); ?></description> <pubDate><?php include("../rss/date.php"); ?></pubDate> </item> </channel> </rss>

    • 締切済み
    • XML
  • XMLのエラー

    XMLのエラー RSS作りの勉強のため、XMLを作成していったんローカルフォルダに保存したあと、IE8でテスト表示してみたるとこんなエラーが出ます。↓↓ XML ページを表示できません XSL スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。 -------------------------------------------------------------------------------- テキストの内容に無効な文字が見つかりました。リソース 'file:///(ファイルの保存場所)' の実行エラーです。 XMLの文は下です。 <?xml version="1.0" encoding="utf-8" ?> <rss version="2.0"> <channel>   <title>RSS2.0 Test</title>   <link>(適当なリンク先)</link>   <description>RSS2.0のテスト</description>   <language>ja</language>   <item>    <title>ページ1</title>    <link>(適当なリンク先)</link>    <description>1つ目のページ</description>    <pubDate>Mon, 20 Jul 2010 00:00:00 +0900</pubDate>   </item>   <item>    <title>ページ2</title>    <link>(適当なリンク先)</link>    <description>2つ目のページ</description>    <pubDate>Tue, 21 Jul 2010 03:04:05 +0900</pubDate>   </item> </channel> </rss> よろしくお願いします。

    • ベストアンサー
    • XML
  • XMLから読み込んだデータを数値に変換する方法

    こんにちは。 XMLからデータを読み取ってそのpositionの値を元に 画像を動かそうとしています。 ただ、読み込んだ数値が文字と判断されていて、 numberで変換しても、数値にならずに、動かすことが できません。 申し訳ありませんが、お教え頂ければ幸いです。 よろしくお願いします。 -----script------------------------------------------- myXML = new XML (); myXML.ignoreWhite = true; myXML.load ("data.xml"); v_positionxArray = new Array (); v_positionyArray = new Array (); myXML.onLoad = function (loaded) { if (loaded) { v_rootNode = myXML.firstChild; v_num = v_rootNode.childNodes.length; v_currentPhoto = v_rootNode.firstChild; v_currentNumber = 0; for (i=0; i < v_num; i++) { v_positionxArray.push (v_currentPhoto.childNodes[0].firstChild); v_positionyArray.push (v_currentPhoto.childNodes[1].firstChild); v_currentPhoto = v_currentPhoto.nextSibling; } } else { trace ("error occured"); } }; btn_test.onRelease = function () { if (v_currentNumber < v_num-1) { v_currentNumber+=1; picture_x = Number(v_positionxArray[v_currentNumber]); picture_y = Number(v_positionyArray[v_currentNumber]); } }; picture.onEnterFrame = function () { this._x += picture_x; this._y += picture_y; } -----xml data-------------------------------------- <data> <member> <positionx>-591</positionx> <positiony>-130.7</positiony> </member> </data>

    • ベストアンサー
    • Flash

専門家に質問してみよう