Lauftext mit dynamischen Textfeld

ok,

ein problem hab ich eben selbst noch gelöst. und zwar das mit dem ruckeln. muss ja einfach nur leere frames einfügen. bin jetzt bei 450 frames und es wird angenehmer :)
 
dafür ein neues problem:

im film werden die in der txt-datei vorhanden pluszeichen nicht angezeigt :( als schriftart hab ich arial genommen. wie bring ich flash dazu, die sonderzeichen anzuzeigen?
 
hmm, sorry, bin selber erst seit 2 wochen bei flash dabei, das einzige was mir dazu im moment einfiele, wäre halt, den newsticker in nem eigenen MC zu erstellen, in dem du ein grooooooßes Textfeld unter einer maske durchlaufen lässt, aber für so richtig lange texte eignet sich das auch nicht. Vielleicht könntest du auch mehrere Textfelder hintereinander laufen lassen und den text aufsplitten..
 
hi,
hab einige tage nicht mehr reingeschaut ...

ja - wie ich jetzt sehe - das mit den spuren bei eingebettetem text ist wirklich unangenehm. eine alternative wäre es, den tickertext nicht durchzutweenen sondern zu programmieren. dann geht's mit nicht eingebettetem font(eingebetter macht auch da häßliche flecken ;))

die vorgehensweise:
ein dynamisches textfeld mit namen "ticker" in der breite, wie der text angezeigt werden soll - also wie bisher die maske
dieser liegt in einem movieclip ...

AUF dem movieclip dieses script:
PHP:
onClipEvent(load){
//das ist der tickertext
ticker="tickertext via actionscript +++ jetzt auch ohne maske +++ ";
}
onClipEvent(enterFrame){
//den ersten buchstaben hinten dransetzen (erster buchstabe = 0!)
ticker += ticker.charAt(0);
//und dann nur den zweiten bis zum letzten (das ist dann 
//der angehängte erste) neu in das textfeld setzen
ticker = ticker.substring(1, string.length);
}

beispiel anbei - vielleicht hilft euch das weiter.
viel spaß damit und gruß
rena
 

Anhänge

  • ticker.zip
    2,3 KB · Aufrufe: 283
hi,

hab gestern noch etwa zwei stunden damit verbracht, den ticker dem langen text anzupassen. jetzt stimmt's. muss man halt drauf achten, dass der text immer ungefähr gleichlang ist.

mit einer maske hab ich's bisher noch nicht probiert, da ich weder weiß, wie das geht noch wie das aussehen wird. und weil es eh verschmiert, lass ich's lieber sein.

jetzt hab ich nur immer noch das problem mit den pluszeichen, die im film nicht angezeigt werden :(
 
hmm, irgendwie hab ich jetzt n problem dabei, den text aus ner Textdatei einzulesen:

PHP:
onClipEvent (load) {
	// das ist der tickertext
	loadVariablesNum ("song"+_level0.musikmenu.song+".txt", 0); //je nach ausgewähltem song soll ja anderer text geladen werden
	ticker = title  // hier ist wohl das problem 
}
onClipEvent (enterFrame) {
	// den ersten buchstaben hinten dransetzen (erster buchstabe = 0)
	ticker += ticker.charAt(0);
	// un dann nur den zweiten bis zum letzten (dem angehängten ersten) in das textfeld setzen
	ticker = ticker.substring(1, string.length);
}
onClipEvent (load) {
}
aus der Textdatei wird die variable title gelesen, allerdings klappt der schritt ticker = title irgendwie nicht - Blockade, warum will das nicht, hab schon tausend möglichkeiten probiert, beide variablen genauer anzugeben, aber will irgendwie nicht.. :-( aber ist ja auch schon spät ... ;-) (so, jetzt sieht man die roten augen nich mehr...)
 
nur mal n auszug aus meiner Variabeln-Liste:

Level #0:
Variable _level0.$version = "WIN 5,0,30,0"
Variable _level0.ticker.ticker = "dieser text soll eigentlich da lang laufen"
Movie Clip: Target="_level0.menu"
Movie Clip: Target="_level0.musikmenu"
Variable _level0.musikmenu.song = 1
Movie Clip: Target="_level0.ticker"
Variable _level0.ticker.ticker = undefined




wo ist zwischen den beiden roten jetzt der unterschied?
 
hi,
achte darauf, wohin der text geladen ist.
beim laden auf die _root mit loadVariablesNum müßte es ticker = _root.title; heißen
du kannst aber auch mit mit loadVariables anstatt mit
loadVariablesNum den text IN einen movieclip laden. im beispiel
unten ist das so und dann genügt ticker = title;

zum zweiten:
wenn text geladen wird, dauert das eine (kleine) weile, soll
gleichzeitig der text in eine andere variable geschrieben werden und
er ist noch nicht geladen steht dann in der anderen nichts.

eine möglichkeit wäre es, abzufragen ob title noch leer ist und erst
wenn das nicht zutrifft, dann den inhalt von title in ticker zu schreiben.

eine weitere möglichkeit bietet das clipevent data ... damit wird
geprüft, ob ein datentransfer bereits stattgefunden hat. das sollte dann so funktionieren
PHP:
onClipEvent(load){
//laden des tickertexts IN den movieclip
loadVariables("text.txt", this); 
}
onClipEvent(data){
//erst wenn die datei geladen ist, wird der Wert von 
//titel in die variable ticker geschrieben
ticker = title;
}
onClipEvent(enterFrame){
//den ersten buchstaben hinten dransetzen (erster buchstabe = 0)
ticker += ticker.charAt(0);
//und dann nur den zweiten bis zum letzten (dem angehängten ersten) 
//in das textfeld setzen
ticker = ticker.substring(1, string.length);
}
sollte funktionieren - tut's bei mir zumindest offline.

zum "+"-problem von Kaeschdin:
sonderzeichen bei geladenem text müssen url-encodet werden, ansonsten
erkennt flash z.b. das "+" als verknüpfungsoperator.
url-encoding bedeutet, dass zeichen durch einen speziellen code
ersetzt werden -> für "+" wäre das "%2B". alle zeichen findet ihr auf
http://www.macromedia.com/support/flash/ts/documents/url_encoding.htm

mein zu ladender text sieht zum beispiel so aus ...
PHP:
title=%2B tickertext via actionscript %2B%2B%2B jetzt auch ohne maske %2B%2B%

hoffe, das hilft euch weiter
schönes wochenende
und gruß
rena
 
Zuletzt bearbeitet:
Zurück