Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-02-2005, 13:50   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 64
Question Dynamisches TextField-Array scrollen (vermutlich nur für Pro`s)

Hi!

Ich entwickel gerade einen Liveticker auf Basis PHP/MySQL -> Interface XML/Flash MX.

Das ganze sieht im Moment so aus:
http://live.sportlive.at/ebene_2_ticker_ergebnisse.html

Soweit klappt nun alles recht gut (danke für die Unterstützung im Forum). Mein Problem ist nun, dass in einem SWF aus einem XML File eine Rangliste erstellt wird (Sieht man im Movie im linken Bereich). Und die würde ich natürlich recht gerne auch in den "Fensterbereich" reinstopfen und scrollen. Genauso wie in der rechten Bildhälfte der Textticker aussieht.

Nachdem es aber nicht einfach ein dynamisches Textfeld wie beim Ticker ist, sondern ein "TextField-Array", weiß ich ehrlich gesagt nicht, wie ich das ganze angehen soll (Maskieren? Irgendwo reinpacken??).

Erstellt wird der TextField-Array in etwa so:
Code:
var inhalt_text_ticker="";
var myFormat="";
var myBGColor="";
for (var i=0; i<element_anzahl; i++) {
	// TEXTOBJEKTE POSITION ERSTELLEN
	_global.ranking.createTextField("laueferaktposition"+i, i+50, 2, (i*19)+18, 60, 19);
	_global.ranking["laueferaktposition"+i].background = true;
	_global.ranking["laueferaktposition"+i].backgroundColor = myBGColor;
	_global.ranking["laueferaktposition"+i].textColor = "0x000000";
	_global.ranking["laueferaktposition"+i].autoSize = false;
	_global.ranking["laueferaktposition"+i].selectable = false;
	
	// TEXTOBJEKTE NAME DES LÄUFERS ERSTELLEN
	_global.ranking.createTextField("lauefername"+i, i+100, 55, (i*19)+18, 240, 19);
	_global.ranking["lauefername"+i].background = true;
	_global.ranking["lauefername"+i].backgroundColor = myBGColor;
	_global.ranking["lauefername"+i].textColor = "0x000000";
	_global.ranking["lauefername"+i].autoSize = false;
	_global.ranking["lauefername"+i].selectable = false;
	
	
	// DATEN ANZEIGEN
	_global.ranking["laueferaktposition"+i].text = XMLdaten_aktposition[i];
	_global.ranking["lauefername"+i].text = XMLdaten_lauefer[i]; 

}
Ist nur ein kleiner Auszug um nicht noch mehr Verwirrung zu stiften.
Ich vermute, dass ist eine Frage an die Profis unter Euch, wäre für jede Hilfe wirklich dankbar. Hab schon sehr viel versucht, komme aber nicht dahinter.

Im Anhang findet Ihr nochmal das ganze Projekt (FLA & XML Files).

Danke im Voraus & LG
Mike
Angehängte Dateien
Dateityp: zip ticker.zip (34,4 KB, 17x aufgerufen)
__________________
-------------------------------------------------
"Ein Blitzableiter auf einem Kirchturm ist das denkbar stärkste Mißtrauensvotum gegen den lieben Gott."
Mik3e2 ist offline   Mit Zitat antworten
Alt 04-02-2005, 15:05   #2 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 64
schade.. hat niemand zumindest ansatzweise eine Idee???
__________________
-------------------------------------------------
"Ein Blitzableiter auf einem Kirchturm ist das denkbar stärkste Mißtrauensvotum gegen den lieben Gott."
Mik3e2 ist offline   Mit Zitat antworten
Alt 04-02-2005, 15:35   #3 (permalink)
Phlasher
 
Benutzerbild von gerard
 
Registriert seit: Nov 2001
Ort: Unna-Königsborn (NRW)
Beiträge: 466
Hi Mike,
Habe mir deien fla's angeguckt.
Das Problem ist das du hier kein Textscrollen kannst .
Vorschlag:
createEmptyMovieClip() oder mach ein leere MC wo jetzt die Textfields kommen.
mit Zb Name Holder

Jetzt macht du dieses:

_global.ranking.createTextField() und dan

_global.ranking.Holder.createTextField() etc

Mache einen MC so gross wie der Inhalt die mann sehen solls und nenne die MASK

Bringe die auch auf der Bühne und ->this.Holder.setMask(this.MASK)

Dein scrollcode muss jetzt _global.ranking.Holder hoch und herunter scrollen
__________________
Keep on Flashing
gerard ist offline   Mit Zitat antworten
Alt 04-02-2005, 15:49   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 64
Hi!

Danke für den Tipp... genau in diese Richtung habe ich in der Zwischenzeit entwickelt.

Der Aufbau des Rankings ist nun in einem eigenen MC und dieser wird auf der Bühne geladen. Dann gibt es noch einen "Masken"-MC, der ebenfalls auf der Bühne geladen wird.

Das ganze sieht so aus (Codeausschnitt von der Bühne):
Code:
_global.ranking = this;
_global.ranking.attachMovie("rangliste","instanz_rangliste",900);
_global.ranking.attachMovie("maske","instanz_maske",910);
_global.ranking.instanz_rangliste.setMask(_global.ranking.instanz_maske);
Das Problem:
Er ignorierts und der Compiler bringt nicht mal eine Fehlermeldung...
Die Verknüpfung ist bei der Maske auch aktiviert, daran kann es also nicht liegen... bin im moment ein bissl ratlos.

Vielleicht hast Du ja noch eine Idee dazu,
danke im Voraus,
Mike
__________________
-------------------------------------------------
"Ein Blitzableiter auf einem Kirchturm ist das denkbar stärkste Mißtrauensvotum gegen den lieben Gott."
Mik3e2 ist offline   Mit Zitat antworten
Alt 04-02-2005, 16:12   #5 (permalink)
Phlasher
 
Benutzerbild von gerard
 
Registriert seit: Nov 2001
Ort: Unna-Königsborn (NRW)
Beiträge: 466
Steht das alles in einem Frame?
Versuche mal das
_global.ranking.instanz_rangliste.setMask(_global. ranking.instanz_maske);
einen Frame weiter
__________________
Keep on Flashing
gerard ist offline   Mit Zitat antworten
Alt 04-02-2005, 16:22   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 64
Nein, das dürfte es nicht sein..
Er hat das Problem, dass er den Movieclip "Rangliste" nach dem attachen nicht ansprechen kann.

Habe das mal mit einer einfachen Positionierung getestet:

_global.ranking.attachMovie("rangliste","rangliste MC",1000); -> WIRD ANGEZEIGT
_global.ranking.attachMovie("maske","maskeMC",1001 ); -> WIRD ANGEZEIGT
_global.ranking.maskeMC._x=150; -> WIRD VERSCHOBEN
_global.ranking.ranglisteMC._x=150; -> TRÖÖÖT, NIX PASSIERT

Ich vermute, dass er versucht den Ranking MC zu verschieben, noch bevor er den movieclip fertig attached hat. Offensichtlich wartet die Runtime nicht auf eine rückmeldung von dem Movieclip, sondern arbeitet die Befehle einfach parallel weiter ab.

Habe sowas in einem anderen zusammenhang im Forum gelesen. Angeblich kann man das Problem umgehen indem man prüft, ob der MC fertig geladen wurde und dann die Aktion ausführt.

In Pseudo-Code:

if (isLoaded(_global.ranking.ranglisteMC)) {
_global.ranking.ranglisteMC._x=150;
}

Nur leider weiß ich nicht, wie man prüft ob ein Movie gelden wurde (syntax). Hast Du vielleicht eine Ahnung?? Geht das über die SUCCESS Funktion??

LG
Mike
__________________
-------------------------------------------------
"Ein Blitzableiter auf einem Kirchturm ist das denkbar stärkste Mißtrauensvotum gegen den lieben Gott."
Mik3e2 ist offline   Mit Zitat antworten
Alt 04-02-2005, 16:50   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2005
Beiträge: 64
Hab die "theoretische" Syntax gefunden.
Allerdings ist ihm das ziemlich egal:

Code:
_global.ranking.attachMovie("rangliste","ranglisteMC",1000);
_global.ranking.ranglisteMC.onLoad = function() {trace ("Movieclip geladen");}
Er ignoriert den .onLoad Event einfach...
__________________
-------------------------------------------------
"Ein Blitzableiter auf einem Kirchturm ist das denkbar stärkste Mißtrauensvotum gegen den lieben Gott."
Mik3e2 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele