Das TPNewsreader.as - Objekt

Das TPNewsreader.as-Objekt lädt die Liste der Newseinträge und managed das Loopen derselbigen. Außerdem managed er das Scrollen über das Mausrad, sowie die Aktualisierungsrate, welche im Moment bei einem 5-Minuten-Intervall liegt.

// TPNewsreader.as
// Philip Drobar
// Last Change: 09.06.10

package {
import flash.display.Sprite;
import flash.events.*;
import flash.utils.Timer;

public class TPNewsreader04 extends Sprite {

public var ImportedFeeds:FeedReader = new FeedReader(); // Importiert die Liste der Feed-Einträge die mit FeedReader.as erzeugt wurde.
public var FeedlistUpper:FeedReader = new FeedReader(); // Klon der Feedliste für den Loop
public var FeedlistLower:FeedReader = new FeedReader(); // Klon der Feedliste für den Loop

public var RefreshTimer:Timer = new Timer(10);

public function TPNewsreader04() {
init();
}

private function init() {

// Positionieren der Beitragsliste und hinzufügen zur Bühne
ImportedFeeds.x=0;
ImportedFeeds.y=0;
addChild(ImportedFeeds);

// Klonen der Feedliste für den Loop
FeedlistUpper.x=0;
FeedlistUpper.y=0 - ImportedFeeds.height; // FeedlistUpper ist der Klon ÜBER der Original-Liste
addChild(FeedlistUpper);

FeedlistLower.x=0;
FeedlistLower.y=0 + ImportedFeeds.height;
addChild(FeedlistLower); // FeedlistUpper ist der Klon UNTER der Original-Liste

RefreshTimer.start();
RefreshTimer.addEventListener(TimerEvent.TIMER, timerListener);
stage.addEventListener(MouseEvent.MOUSE_WHEEL,Scrolling);// Dieses Event löst das Scrollen aus - FUNKTIONIERT NUR UNTER WINDOWS!

}

private function timerListener(e:TimerEvent):void {
//trace(RefreshTimer.currentCount);
if(RefreshTimer.currentCount == 1870){
FeedRefresh();
RefreshTimer.stop();
RefreshTimer.reset();
RefreshTimer.start();
}
}

private function FeedRefresh():void {

removeChild(ImportedFeeds);
removeChild(FeedlistUpper);
removeChild(FeedlistLower);

// Positionieren der Beitragsliste und hinzufügen zur Bühne
ImportedFeeds.x=0;
ImportedFeeds.y=0;
addChild(ImportedFeeds);

// Klonen der Feedliste für den Loop
FeedlistUpper.x=0;
FeedlistUpper.y=0 - ImportedFeeds.height; // FeedlistUpper ist der Klon ÜBER der Original-Liste
addChild(FeedlistUpper);

FeedlistLower.x=0;
FeedlistLower.y=0 + ImportedFeeds.height;
addChild(FeedlistLower); // FeedlistUpper ist der Klon UNTER der Original-Liste

}

private function Scrolling(e:MouseEvent):void {
ImportedFeeds.y += (e.delta *2);// Das e.delta enthält die Zeilensprung-Information aus dem Mausrad. Somit ändert sich die Y-Position gemäß der Rotation des Rades.
FeedlistUpper.y = ImportedFeeds.y - ImportedFeeds.height - 15; // Die Klone werden entsprechend mitpositioniert.
FeedlistLower.y = ImportedFeeds.y + ImportedFeeds.height + 15; // Die Klone werden entsprechend mitpositioniert.

if(FeedlistUpper.y >= 0){ // User ist am oberen "Ende" angelangt
positionReset(); // Position wird zurückgesetzt um den "Loop" zu simulieren.
}
if(FeedlistLower.y <= 0){ // User ist am unterem "Ende" angelangt
positionReset(); // Position wird zurückgesetzt um den "Loop" zu simulieren.
}

}

// Diese Funktion sorgt für den "Loop". Es werden die Positionen der Klone und der Originalliste genau dann
// zurückgesetzt/vertauscht, wenn es für den User nicht bemerkbar ist.
private function positionReset():void {
ImportedFeeds.y=0;
FeedlistUpper.y=0 - ImportedFeeds.height - 15;
FeedlistLower.y=0 + ImportedFeeds.height + 15;

}

}

}