Guten Tag,
ich habe einen Ticker, welcher im allgemeinen gut funktioniert. Nur ein Problem macht mir zu schaffen. Ich bekomme es nicht hin, dass der Tickertext bis zur Koordinate X=0 läuft, also über die ganze Bühne. Es entsteht immer ein linker Rand, der das verhindert. Das Textfeld wurde mit TextFieldAutoSize.LEFT bereits links ausgerichtet und trotzdem gibts enen Zentrierungseffekt. Woher der kommt, kann ich mir nicht erklären. Hat jemand von Euch eine Idee, wo der Fehler begraben liegt bzw. kennt von Euch einer die Lösung des Problems ? Würde mich echt freuen.
Hier der AC-Code (komplett,lauffähig)
Code:
/////////////////////////////////DEC-TICKER//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///Einstellungen////
var tickerTextArr:Array = new Array("Text1: ich bin ein absolut durchgeknallter Typ", "Text2: but thats me!");
var tickerSize:Number = 1920; // Breite der Anzeige in dem der Text zusehen ist.
var tickerPosX:Number = 0; // x position des Tickers.
var tickerPosY:Number = 700; // y position des Tickers.
var tickerSpeed:int = 15; // Geschwindigkeit des Tickers.
var textFarbe = 0x990000; // Text Farbe aendern.
var textGroeße:int = 40; // Text Groeße einstellen.
var textUnterstrichen:Boolean = false; // Text Unterstrichen (Wahr/Falsch) true/false
var starten:Boolean = true; // Startet o. Startet nicht den Textablauf bei Laden
// Dynamisch waehrend zur Laufzeit wird über Funktion gesteuert
// onOffTicker(true oder false);
// Weitere Texte koennen auch Dynamisch zugeführt werden! Beispiel: tickerTextArr.push("hallo ich bin das vierte Element im Bunde");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///Nur mit bedacht veraendern!//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var ticker:Sprite = new Sprite;
addChild(ticker);
var timing:Timer = new Timer(tickerSpeed);
timing.addEventListener("timer", runTicker);
var maske:Sprite = new Sprite();
addChild(maske);
var textF1:TextField = new TextField();
var textF2:TextField = new TextField();
//Erstellt und Positioniert die Textfelder
function erstelleTextfeld(){
for(var i:int=1; i<3; i++){
this["textF"+i].autoSize = TextFieldAutoSize.LEFT;
textFormat(this["textF"+i], tickerTextArr[i-1]);
}
textF1.x = tickerSize;
textF2.x = textF1.x + textF1.width;
}
//Textformat
function textFormat(textF:TextField, textInhalt:String) {
var format:TextFormat = new TextFormat();
format.font = "Verdana";
format.color = textFarbe;
format.size = textGroeße;
format.underline = textUnterstrichen;
textF.defaultTextFormat = format;
textF.text = textInhalt;
ticker.addChild(textF);
}
var a:int = 2;
erstelleTextfeld();
ticker.mask = createMask(tickerPosX, tickerPosY, tickerSize);
//Startet oder Stoppt den Textablauf.
function onOffTicker(go:Boolean){
go ? timing.start() : timing.stop();
}
onOffTicker(starten);
//laesst die Textfelder laufen
function runTicker(evt:Event){
for(var i:int=0; i<ticker.numChildren;i++){
ticker.getChildAt(i).x += -1;
if((ticker.getChildAt(i).x+ticker.getChildAt(i).width)<=0){
ticker.getChildAt(i).x = ticker.getChildAt(Math.asin(i+1)).x+ticker.getChildAt(Math.asin(i+1)).width;
ticker.getChildAt(i) == textF1 ? textF1.text = tickerTextArr[a] : textF2.text = tickerTextArr[a];
a<tickerTextArr.length-1 ? a++ : a=0;
}
}
}
//Erstellt die Maske und Positioniert das ticker-Objekt danach aus!
function createMask(pObjX:int, pObjY:int, pObjWidth:int):Sprite{
maske.x = pObjX;
maske.y = pObjY;
maske.graphics.beginFill(0x000000);
maske.graphics.drawRect(0, 0, pObjWidth, ticker.height);
ticker.x = maske.x;
ticker.y = maske.y;
return maske;
}