Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-04-2011, 22:02   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 19
Newsticker will nicht so wie ich will

Hallo Leutz,

mit folgendem Script realisire ich einen kleinen Newsticker:

Code:
TextField.prototype.init = function(int, ppi) {
this.htmlText = this.text+this.text;
setInterval(this, "ticker", int, ppi);
   };
TextField.prototype.ticker = function(ppi) {
if (this.hscroll>=this.maxhscroll-ppi) {
this.hscroll = (this.maxhscroll-this._width)/2;
}
this.hscroll += ppi;
updateAfterEvent();
};
TextField.prototype._loadArticle = function(flashID) {
tf = this;

// HTML-Mode aktivieren
tf.html = true;
tf.htmlText = "";

// LoadVars-Objekt instantiieren
lv = new LoadVars();
lv["flashID"] = flashID;
lv.sendAndLoad(URL + "flash.php", lv, "POST");

lv.onLoad = function(success) {
	if (success) {
		tf.htmlText = lv["content"];
	}
  }
}
//Beispiel 
lyricsformat = new TextFormat();
lyricsformat.color = 7930884;
lyricsformat.font = "Arial";
lyricsformat.html = true;
lyricsformat.size = 16;
this.createTextField("deinTextfeld", 1, 25, 25, 250, 20);
deinTextfeld.setNewTextFormat(lyricsformat);
deinTextfeld.selectable = false;
deinTextfeld.html = true;
deinTextfeld._loadArticle("swf1");
//deinTextfeld.text = "Hallo, ich bin der kleine, dumme Ticker. Es gibt immer wieder neue Ticker Scripts, gell... <a href='http://www.flashforum.de'>sogar mit link</a> und mit <u><i><b>formatierungen</b></i></u>.";
deinTextfeld.init(20, 1);
Nun habe ich das Problem das der Text (wird aus der DB geholt) wenn er durchgelaufen ist zurückspring und nicht angehängt wird so wie es ist wenn ich den auskommentierten Teil benutze. Wo liegt mein Fehler?

Besten Dank schonmal im Voraus
aajiha

P.S. Hier kann man sich das mal anschauen

Geändert von aajiha (15-04-2011 um 22:04 Uhr)
aajiha ist offline   Mit Zitat antworten
Alt 13-05-2011, 14:00   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
schau mal HIER.

hatte da mal vor einiger zeit einen newsticker gescriptet. der läuft soweit einwandfrei und kann über diverse parameter individualisiert werden. du müsstest nur fix den teil ändern mit dem text input. in meinem bsp kommen die inhalte halt aus einer txt datei.
cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 07-06-2011, 17:56   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2002
Beiträge: 19
Hallo salazar,

sorry das ich mich erst jetzt melde. So das habe ich jetzt aus deinem Script
gemacht. Der Rote Teil stammt von mir und soll die Daten aus der DB holen.

Code:
//---

stop();

//---

var w:Number = 460;
var h:Number = 20;

var x:Number = 10;
var y:Number = 10;

var speed:Number = 1;

var fileToLoad:String = "tickertext.txt";
var stringSeparation:String = "+++";

var textFormat:TextFormat = new TextFormat();
    textFormat.font = "FontVerdana";//"FontArial";// <--- wenn keine font in der bibliothek liegt diese zeile auskommentieren
    textFormat.size = 12;
    
var textFieldSharpness:Number = 0;
var textFieldThickness:Number = 0;

var buildBg:Boolean = true;
var bgColor:Number = 0xCCCCCC;
var bgAlpha:Number = 100;
    
var buildBorder:Boolean = true;
var borderThickness:Number = 1;
var borderColor:Number = 0x000000;
var bordeAlpha:Number = 100;

//---

var stringHolder:Array = new Array();
var textFieldHolder:Array = new Array();
var newstickerHolder:MovieClip = this.createEmptyMovieClip( "newstickerHolder", this.getNextHighestDepth() );
    newstickerHolder._x = x;
    newstickerHolder._y = y;
var animationRunning:Boolean = false;

//---

TextField.prototype._loadArticle = function(flashID) {
tf = this;

// HTML-Mode aktivieren
tf.html = true;
tf.htmlText = "";

// LoadVars-Objekt instantiieren
lv = new LoadVars();
lv["flashID"] = flashID;
lv.sendAndLoad(URL + "flash.php", lv, "POST");

lv.onLoad = function(success) {
	if (success) {
		tf.htmlText = lv["content"];
	}
  }
}
}

var mL:Object = new Object();
    mL.onMouseMove = function():Void {

       if ( newstickerHolder.bg.hitTest( _xmouse, _ymouse ) )
            animationStop();
       else
            animationStart();
       
    }
    
Mouse.addListener( mL );  

//---

function init():Void {
    
    if ( buildBg )
        newstickerHolder.bg = buildClip( newstickerHolder, "bg", bgColor, bgAlpha );
    else
        newstickerHolder.bg = buildClip( newstickerHolder, "bg", 0, 0 );
    
    var a:Number = -1;
    var b:Number = stringHolder.length - 1;
    
    var textClip:MovieClip = newstickerHolder.createEmptyMovieClip( "txtClip", newstickerHolder.getNextHighestDepth() );
        textClip.setMask( buildClip( newstickerHolder, "textFieldMask", 0, 100 ) );

    while ( a++ < b ) {
        
        var textField:TextField = buildTextField( textClip, a );
            textField.htmlText = stringHolder[ a ] + " " + stringSeparation + "";
            textField.setTextFormat( textFormat ); 

        if ( a > 0 )
            textField._x = Math.round( textFieldHolder[ a - 1 ]._x + textFieldHolder[ a - 1 ]._width );
            
        textFieldHolder.push( textField );
        
    }
    
    if ( buildBorder ) {
        
        var border:MovieClip = newstickerHolder.createEmptyMovieClip( "border", newstickerHolder.getNextHighestDepth() );
            border.lineStyle( borderThickness, borderColor, borderAlpha );
            border.moveTo( 0, 0 );
            border.lineTo( w, 0 );
            border.lineTo( w, h );
            border.lineTo( 0, h );
            border.lineTo( 0, 0 );

    }

}

//---

function buildTextField( holder:MovieClip, id:Number ):TextField {
    
    var textField:TextField = holder.createTextField( "TextField" + id, holder.getNextHighestDepth(), 0, 0, 10, h );
        textField.selectable = false;
        textField.autoSize = "left";
        textField.antiAliasType = "advanced";
        textField.sharpness = textFieldSharpness;
        textField.thickness = textFieldThickness;
        textField.embedFonts = true;// <--- wenn keine font in der bibliothek liegt diese zeile auskommentieren
        textField.html = true;

    return textField;
    
}

function buildClip( holder:MovieClip, name:String, color:Number, alpha:Number ):MovieClip {
    
    var clip:MovieClip = holder.createEmptyMovieClip( name, holder.getNextHighestDepth() );
        clip.beginFill( color, alpha );
        clip.moveTo( 0, 0 );
        clip.lineTo( w, 0 );
        clip.lineTo( w, h );
        clip.lineTo( 0, h );
        clip.lineTo( 0, 0 );
        
    return clip;
    
}

//---

function animationStart():Void {
    
    if ( !animationRunning ) {
        
        animationRunning = true;

        newstickerHolder.onEnterFrame = function():Void {
            
            var a:Number = -1;
            var b:Number = stringHolder.length - 1;
            
            while ( a++ < b ) {
                
                var textField:TextField = textFieldHolder[ a ];
                    textField._x -= speed;
                    
                if ( a == 0 ) {
                
                    if ( textField._x <= -textField._width ) {
        
                        var tF:TextField = TextField( textFieldHolder.shift() );
                            tF._x = Math.round( textFieldHolder[ textFieldHolder.length - 1 ]._x + textFieldHolder[ textFieldHolder.length - 1 ]._width );
                    
                        textFieldHolder.push( tF );
                        
                        animationRunning = false;
                        animationStart();
        
                    }
                    
                }

            }

        }

    }
    
}

function animationStop():Void {
    
    if ( animationRunning ) {
        
        animationRunning = false;
    
        delete newstickerHolder.onEnterFrame;
    
    }
    
}

//---
Wie Du ja in meinem Script siehst fülle ich mit
Code:
deinTextfeld:text = _loadArticle("swf1");
mein Textfeld. Wie stelle ich das in deinem Script an. Da dieses Scrift die
Daten aus der DB holt und diese mit einer eindeutigen Id (swf1) gekennzeichnet sind benötige ich diese Zeile.
ich find auch soetwas icn diser Art
Code:
TextField.prototype._loadArticle
nicht in deinem Script.

Besten Dank aajiha
aajiha ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Horitontaler Newsticker liest XML nicht richtig ein Dino21 ActionScript 1 3 21-04-2007 11:50
flüssiger newsticker nicht über die ganze bühne r74 Flash Einsteiger 4 27-09-2006 22:57
Newsticker mit XML will nicht so wie ich will! Psychoinca Flash MX 2004 6 23-08-2005 14:25
Newsticker läd externe .xml nicht bluefighter Flash MX 2004 4 09-02-2005 18:16
Newsticker klappt nicht mat grunert Flash 4 und Flash 5 1 23-09-2001 00:05


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele