<?
package 
{
    
import flash.display.MovieClip;
    
import flash.display.SimpleButton;
    
import flash.filters.*;
    
import flash.text.*;
    
import flash.events.*;
    
import flash.xml.*;
    
import flash.net.*;
    
import fl.transitions.Tween;
    
import fl.transitions.easing.*;
    
import net.stevensacks.utils.Web;
    
import StringUtils;// http://www.gskinner.com/blog/archives/2007/04/free_extension.html

    // free comic font used:
    // http://www.dafont.com/sf-slapstick-comic.font

    // Bauplan für das Pogramm
    
public class WPcomments extends MovieClip {

        
// Initialisieren Variablen des Objekts
        
public var indikator:String='er sagt';
        public var 
feedurl:String root.loaderInfo.parameters.feedurl;
        public var 
Messages:Array=new Array;
        public var 
curMsg:int=0;
        public var 
bubble:MovieClip = new MovieClip();

        
// "Main"-Methode 
        
public function WPcomments() {
            if (
root.loaderInfo.parameters.feedurl==null) {
                
this.feedurl='comments.xml';
            }
            
this.toptext.pictext.visible=false;
            
this.btn.visible=false;
            
this.btn_vor.visible=false;
            
// neuer URL-Loader
            
var xmlLoader:URLLoader=new URLLoader;
            
// ruft showXML() auf und setzt so alles in Gang
            
xmlLoader.addEventListener(Event.COMPLETE,showXML);
            
xmlLoader.load(new URLRequest(this.feedurl));
        }
        private function 
showXML(e:Event):void {
            
// Leider braucht mn die DC-Namespaces
            
namespace dc"http://purl.org/dc/elements/1.1/"
            
var comments:XML=new XML(e.target.data);
            
comments.ignoreWhitespace=true;
            var 
i:Number;
            
// Schleife durch alle eingelesenen XML-Daten
            
for (i=0comments.channel.item.length(); i++) {
                
// Die ersten 7 Buchstaben

                
if (comments.channel.item[i].description.text().substring(0,7).toLocaleLowerCase()==this.indikator) {
                    var 
comicmsg:ComicMessage=new ComicMessage;
                    
comicmsg.author=comments.channel.item[i].dc::creator.text();
                    
trace(comments.channel.item[i].dc::creator.text());
                    
comicmsg.msg=comments.channel.item[i].description.text().slice(9);
                    
comicmsg.link=comments.channel.item[i].link.text();
                    
this.Messages.push(comicmsg);
                } else {
                    
trace("Indikator nicht in XML-Item gefunden!");
                }
            }
            
btn.addEventListener(MouseEvent.MOUSE_DOWN,nextbuttonpress);
            
btn_vor.addEventListener(MouseEvent.MOUSE_DOWN,prevbuttonpress);
            
toptext.link_button.addEventListener(MouseEvent.MOUSE_DOWN,openlink);
            
this.loadingBubble.visible=false;
            
this.getNextMsg(-1);
            if (
this.Messages.length 1) {
                
this.btn.visible=true;
                
this.btn_vor.visible=true;
            }
        }

        public function 
getNextMsg(dir:int) {
            if (
dir==0) {
                if (
this.curMsg this.Messages.length-2) {
                    
this.curMsg=0;
                } else {
                    
this.curMsg++;
                }
            } else if (
dir==1) {
                if (
this.curMsg <= 0) {
                    
this.curMsg=this.Messages.length-1;
                } else {
                    
this.curMsg--;
                }
            }
            
this.num.text=this.Messages.length-this.curMsg+" / "+this.Messages.length+"   ";
            var 
myTween2:Tween = new Tween (this.textbox,"alpha"Elastic.easeOut.613true);
            var 
myTween:Tween = new Tween (this.textbox,"y"Elastic.easeOut53483true);
            
// Zur Sichheit mal lieber alle Tags raus. 
            
this.textbox.bubble.text=StringUtils.stripTags(this.Messages[this.curMsg].msg);
            
// Name des Fuchses zuweisen
            
var foxname=StringUtils.stripTags(this.Messages[this.curMsg].author);
            
this.textbox.bubble.text=StringUtils.removeExtraWhitespace(this.textbox.bubble.text);
            
this.toptext.pictext.border=false;
            
this.toptext.pictext.multiline=false;
            
this.toptext.pictext.autoSize=TextFieldAutoSize.LEFT;
            
this.toptext.pictext.visible=true;
            
this.toptext.pictext.text="Beim Rudern über den See denkt "+foxname+":  ";
            
this.drawBubble();

        }
        public function 
nextbuttonpress(e:MouseEvent):void {
            
this.getNextMsg(0);
        }
        public function 
prevbuttonpress(e:MouseEvent):void {
            
this.getNextMsg(1);
        }
        public function 
openlink(e:MouseEvent):void {
            var 
link=this.Messages[this.curMsg].link;
            
Web.getURL(link,'_self');
        }
        public function 
drawBubble() {
            
removeChildAt(3);
            
this.bubble.graphics.beginFill(0xFFFFFF,0.8);
            if (
this.textbox.bubble.numLines>9) {
                
this.bubble.graphics.drawRoundRect(10403602152020);
            } else {
                
this.bubble.graphics.drawRoundRect(1040360this.textbox.bubble.textHeight+152020);
            }
            
this.bubble.graphics.endFill();
            
addChildAt(this.bubble,3);
            
this.bubble=null;
            
this.bubble=new MovieClip();
        }
    }
}



// Bauplan für die Nachrichten
class ComicMessage {
    public var 
author;
    public var 
msg;
    public var 
link;
    public function 
ComicMessage() {
        
trace("Neue ComicMessage");
    }
}
?>