トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   とにかくFLASH【FLASHに関して全般】
     XMLで取得した文字列にリンクを追加
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yashi
Åê¹ÆNo.41649
投稿日時: 2009-3-5 14:20
新米
居住地: 神奈川
投稿: 8
使用環境:
MacOSX, FLASH CS4
Firefox/3.07
XMLで取得した文字列にリンクを追加
yashiと申します。
どうぞよろしくお願い致します。

環境は MAC OSX,FLASH CS4,as2.0記述 になります。

RSSフィードを取得、新着3件を表示させるFLAを作成中。
今のところXMLの読み込み、そのデータを表示させるところまでは出来ています。

フォーラム内で検索したところ、いくつかヒットしたのですが、解決には至らず…思い切って投稿致しました。


【やりたいこと】
外部XML(RSS)から取得された<item>記事内</item>の<title>文字列</title>に、
同じXML内から取得した<link>URL</link>をリンクさせたい。

【現在の記述例】

★XMLファイル---------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.4" -->

<rss version="2.0">
<channel>

<title>ページタイトル</title>
<link>http://www.google.co.jp/</link>

<item>
<title>記事タイトル01</title>
<link>http://www.yahoo.co.jp/</link>
<pubDate>Tue, 27 Jan 2009 17:42:20 +0000</pubDate>
</item>
<item>
<title>記事タイトル02</title>
<link>http://www.yahoo.co.jp/</link>
<pubDate>Tue, 27 Jan 2009 17:42:20 +0000</pubDate>
</item>
<item>
<title>記事タイトル03</title>
<link>http://www.yahoo.co.jp/</link>
<pubDate>Tue, 27 Jan 2009 17:42:20 +0000</pubDate>
</item>

</channel>
</rss>


★FLAファイル---------------------------------------
シーン1 第一フレームに以下を記述。
//XPathAPIを使用できるようにインポートする
import mx.xpath.XPathAPI

//XMLオブジェクトの生成と外部XMLの読み込み
System.useCodepage = false;//Shift-JISの読み込みを可能にする
var rss_xml:XML = new XML();//XMLオブジェクトの生成

rss_xml.onLoad = completeData;//ロードアクション(コールバックを定義)
rss_xml.ignoreWhite = true;//XMLファイルの空白、改行等を無視する
rss_xml.load("./feed.xml");//外部XMLファイルを読み込む


// ここから、読み込み成功後に行われる処理。
function completeData(success:Boolean):Void {
	if(success == true){
		trace("OK!")
		var TitleList:Array;
		var DateList:Array;
		var UrlList:Array;
		var TitlePath:String = "/rss/channel/item/title/*";
		TitleList = XPathAPI.selectNodeList(this.firstChild, TitlePath);
		var DatePath:String = "/rss/channel/item/pubDate/*";
		DateList = XPathAPI.selectNodeList(this.firstChild, DatePath);
		var UrlPath:String = "/rss/channel/item/link/*";
		UrlList = XPathAPI.selectNodeList(this.firstChild, UrlPath);
		// 以降の処理を3回繰り返します。(3件表示用)
		for (var i:Number= 0; i<3; i++) {
			var headline:TextField = _root.createTextField("head"+i,i, 10, 0, 300, 500);
			headline.background = true;
			headline.backgroundColor = 0xffffff;
			headline.text += DateList[i] + "\n" + TitleList[i].link(UrlList) + "\n";
			headline._y = 30*i;
			headline.i = i;
			}
		// 繰り返しおわり。
	} else {
		trace("読み込み失敗");
	}
}
// ここまで、読み込み成功後に行われる処理。

-----------------------------------------------------------

上記の青色のテキストのところで迷っています。

TitleList[i].link(UrlList)

記事タイトル文字列(title)にリンク(link)を追加したいだけなのですが…、どうも書き方が間違っているのか、.link(UrlList)を追加した途端にタイトルすら表示されず、"undefined"となってしまいます。
どのようにスクリプトを書けば、リンク追加されるのでしょうか。


とても冗長的な書き方となってしまいましたが、皆様のお力添えを頂戴したく思います。

何卒よろしくお願い申し上げます。


//以下、3/5(木)14:35更新
あと、補足です。
実際XMLはwordpressから自動生成されるので、作り手側では変更を加えられない仕様(今回に限っては)になっています。
なのでFLASH内で完結させたいと考えております。
961832p
Åê¹ÆNo.41655
投稿日時: 2009-3-5 16:17
常連
居住地: Akiruno-shi
投稿: 155
使用環境:
 
:AS3:
- Adobe Flex SDK, Eclipse, AIR GEAR
- LB.Log AS3, Alcon2

:AS2:
- AMES(ASDT, MTASC, Eclipse, swfmill)
- Natural Entry Point Method
- LB.Log, Zeroi

Pro, Firefox, Chromium(Iron), IE

----------------
Pro,
Re: XMLで取得した文字列にリンクを追加
 
HTML形式にすることで、ハイパーリンクを持たせられます。


headline.backgroundColor = 0xffffff;
headline.html = true;
var linktext:String = '<a href="' + UrlList[i] + '" target="_blank">' + TitleList[i] + '</a>';
headline.htmlText += DateList[i] + "<br>" + linktext + "<br><br>";
headline._y = 30*i;

実際に試していないのでスミマセンが(汗)、こんな感じになるのではないでしょうか。

参考リンク:
 ・htmlText (TextField.htmlText プロパティ) - ActionScript 2.0 リファレンスガイド


----------------
:961832p:
- だんだんAS3に慣れてきた“なんちゃって”AMES使いの日曜プログラマー

yashi
Åê¹ÆNo.41656
投稿日時: 2009-3-5 16:45
新米
居住地: 神奈川
投稿: 8
使用環境:
MacOSX, FLASH CS4
Firefox/3.07
Re: XMLで取得した文字列にリンクを追加
で、出来ました!!!
961832pさんありがとうございます!(>_<。
この2日間の調査期間が嘘のようです…。
こんなに早く回答を頂けるのなら、早く聞けば良かったです。


headline.backgroundColor = 0xffffff;
の下に、指定された通りに挿入しただけで反映されました。


headline.html = true;
var linktext:String = '<a href="' + UrlList[i] + '" target="_blank">' + TitleList[i] + '</a>';
headline.htmlText += DateList[i] + "<br>" + linktext + "<br><br>";



『HTML形式にする』ということに何故いままで気づけなかったのでしょう (=_=)本当に情けないです。


また一つ学ぶことが出来ました。
感謝してもしたりません!ありがとうございます。

また質問に参上すると思いますので、その時もまたどうかよろしくお願い致します!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops