创建ActionScript 3 RSS循环源

时间:2014-01-15 01:07:11

标签: actionscript-3 rss

到目前为止,我有以下AS3代码。我需要做的是让这段代码不断循环它正在消耗的Feed。任何解决方案?

    import flash.text.TextField;
import flash.text.TextFormat;
import flash.net.URLLoader;
import flash.events.IOErrorEvent;


//Read RSS feeds
var RSS_xmlData: XML = new XML();
var xmlLoader: URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);

xmlLoader.load(new URLRequest("http://www.oshawa.ca/news_rss.asp"));

function LoadXML(e:Event):void {
    dtext.text="Loading...";
    RSS_xmlData = new XML(e.target.data);
}

function pullFeed(rss: XML):void {      
    var str: String="";
    str = rss.channel.item.title;
    str = str.replace(/\s*\n/g," | ");
    str = str.replace(/'/g,"\"");
    //// shows specific entry  
    var items: Array = new Array();
    items = str.split("|");

    var tf: TextField = dtext;
    var i:Number=0;
    var myTimer:Timer = new Timer(4000,items.length);
    myTimer.addEventListener(TimerEvent.TIMER, timerListener);
    function timerListener (e:TimerEvent):void{
        tf.text = items[i].toString();
        scaleTextToFitInTextField(tf);
        i++;
    }
    myTimer.start();
}

function scaleTextToFitInTextField(txt: TextField):void {
    var f: TextFormat = txt.getTextFormat();
    f.size = (txt.width > txt.height) ? txt.width : txt.height;
    txt.setTextFormat(f);

    while (txt.textWidth > txt.width - 4 || txt.textHeight > txt.height - 6) {
        f.size = int(f.size) - 1;
        txt.setTextFormat(f);
    }
}


function onIOError(e:IOErrorEvent):void
{
    trace(e.toString());
    dtext.text="Finding Feed...";
}

我尝试了一个while循环,一个for循环和一个计时器重置并重新启动,但似乎没有一个能让我继续循环播放。

由于

1 个答案:

答案 0 :(得分:0)

在完成对array

的迭代后重置计数器
function timerListener (e:TimerEvent):void{
    tf.text = items[i].toString();
    scaleTextToFitInTextField(tf);
    // Reset counter to 0 when we've been all the way through the array
    i = i < items.length - 1 ? i + 1 : 0;
}