Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-09-2005, 13:35   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Beiträge: 82
PHP query, wieder mal ein Pfadproblem?

Liebes Flashforum....

Ich versuche gerade in einer DB abgespeicherte News dynamisch einzulesen und zu verarbeiten.

Die news_query.php liefert im Browser das gewünschte Ergebnis, das reinladen in Flash funktioniert auch wunderbar, nur das bauen der Newsboxen (die, je ein eintrag, übereinander gestapelt werden sollen) und übergeben der variablen macht Probleme - ich kriege nur einen weissen Bildschirm zu sehen, keine Fehlermeldungen im Output und durch tracen komme ich nur bis zu dem Punkt dass ich weiss:
die Vars werden geladen und die for Schleife korrekt durchgezählt.

Wenn ich dann aber bei
PHP-Code:
with (_root.i_news_box) { (...) } 
nach this trace, gibt er mir unergründlicherweise den ganzen Wust an Variablen aus, statt den Namen des entsprechenden Clips. Mit einem übergeordneten leeren Movie Clip, statt des _roots hatte ich dasselbe Ergebnis.

Ich danke schonmal...


Die "news_box" in der Bibliothek besteht nur aus den Textfeldern news_txt, poster_Name und poster_Time.

Hier das AS: [EDIT: Jetzt funktionstüchtig!]
PHP-Code:
//auf datenbank zugreifen
_root.newsOutput = function() {
    
_root.read = new LoadVars();
    
    
_root.read.load("news_query.php?"+random(999999));
    
_root.read.onLoad = function(success) {
        if (
success) {
            
            
//newsboxen bauen und füllen
            
            
_root.read.posterIndex parseInt(_root.read.posterIndex);
            
            for(
i=1;i<= _root.read.posterIndex;i++) {
                
                
i_news_box _root.attachMovie("news_box","news_box"+i,i);
                
trace(news_box2);
                
                
                
                
with (_root.i_news_box) {
                    
                    
_x 0;
                    
_y 300*i;
                    
                    
//text formatieren
                    
                    
news_txt.styleSheet _root.myStyle;
                    
posterName.styleSheet _root.myStyle;
                    
posterDate.styleSheet _root.myStyle;
                    
                    
posterName.html true;
                    
posterTime.html true;

                    
news_txt.multiline true;
                    
news_txt.wordWrap true;
                    
news_txt.html true;
                    
                    
//mcnamen für pfade
                    
                    
i_news_txt _root.read["news_txt"+i];
                    
i_posterName =  _root.read["posterName"+i];
                    
i_posterEmail _root.read["posterEmail"+i];
                    
i_posterTime _root.read["posterTime"+i];
                    
trace(i_news_txt);
                    
//inhalt zuweisen
                    
                    
news_txt.htmlText i_news_txt.split('\r\n').join('\r');
                    
posterName.htmlText "<a href='" i_posterEmail "'>" i_posterName "</a>";
                    
                    
date_obj = new Date(i_posterTime*1000);
                    
date_obj.years date_obj.getFullYear();
                    
date_obj.months 1+date_obj.getMonth();
                    
date_obj.days date_obj.getDate();
                    
date_obj.hours date_obj.getHours();
                    
date_obj.minutes date_obj.getMinutes();
                    
date_obj.seconds date_obj.getSeconds();
                    
                    
posterTime.htmlText date_obj.days+"."+date_obj.months+"."+date_obj.years+" - "+date_obj.hours+":"+date_obj.minutes;
                }
            }
                    
            
delete _root.read;
        }
    }
}
                    
                    
                

_root.newsOutput();
stop(); 

Geändert von itsme564 (20-09-2005 um 15:40 Uhr)
itsme564 ist offline   Mit Zitat antworten
Alt 20-09-2005, 14:19   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!
Was ist denn "_root.read.posterIndex"? Ist das eine Zahl? Mal tracen lassen (z.B. trace(_root.read.posterIndex+1)) um zu checken, ob's vielleicht ein String ist. Oder halt trace(typeof (_root.read.posterIndex))...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 20-09-2005, 14:48   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Beiträge: 82
...

Arf, danke, ja, es war ein String - an den Variablentyp hatte ich garnicht gedacht, obwohl Flash so schlau war, die Variable trotzdem richtig zu verarbeiten... (hochgezählt hat er ja) -warum auch immer.

Aber ich ahne irgendwie, dass die Variablen/Objekttypen der Kern meines Problems hier sein könnten...

Das Script habe ich jetzt brav um
PHP-Code:
_root.read.posterIndex parseInt(_root.read.posterIndex); 
erweitert...

Edit: Und ein paar eval()s hinzugefügt... jetzt bin ich schon soweit, dass er nur EINE box erstellt und alle Textfelder undefined anzeigen... hmm.

Geändert von itsme564 (20-09-2005 um 14:58 Uhr)
itsme564 ist offline   Mit Zitat antworten
Alt 20-09-2005, 14:58   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Ah, ich sehe gerade, du wills mit einem String arbeiten:
ActionScript:
  1. i_news_box = "news_box"+i;
Das ist wohl dein Problem. Mach's mal so:
ActionScript:
  1. i_news_box = _root.attachMovie("news_box","news_box"+i,i);

edit: Aha, selber schon gesehen...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (20-09-2005 um 14:59 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 20-09-2005, 15:03   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Übrigens verstehe ich diese Zeilen überhaupt nicht:
ActionScript:
  1. i_news_txt = eval("news_txt"+i);
  2. i_posterName = eval("posterName"+i);
  3. i_posterEmail = eval("posterEmail"+i);
  4. i_read_posterTime = eval("posterTime"+i);

Was soll denn z.B. "news_txt"+i sein? Wo soll das herkommen? Und was ist z.B. "i_news_txt"?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 20-09-2005, 15:25   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Beiträge: 82
...

Erstmal danke Frager für die vielen Antworten...

Das sind die Variablen die Flash aus der DB bezieht:

posterIndex (die Anzahl der Datensätze)
news_txt1, news_txt2, news_txt3
poster_Name1, ...
poster_Time1, ...
poster_Email1, ...

Und dieses i_news_txt habe ich da eingeführt weil ich mit den Pfaden nicht klarkam und sie vereinfachen wollte...

mittlerweile habe ich herausgefunden dass es per
PHP-Code:
_root.read["news_txt"+i]; 
anscheinend funktioniert, aber so wie ich das eval oben verschachtelkorkst habe nicht...

Jetzt sieht es so aus und funktioniert (ein groß/kleinschreibe-Fehler - "Poster" statt "poster" - hatte auch noch für Verwirrung gesorgt):

PHP-Code:
                       
                    i_news_txt 
_root.read["news_txt"+i];
                    
i_posterName =  _root.read["posterName"+i];
                    
i_posterEmail _root.read["posterEmail"+i];
                    
i_posterTime _root.read["posterTime"+i];
                    
                    
//inhalt zuweisen
                    
                    
news_txt.htmlText i_news_txt.split('\r\n').join('\r');
                    
posterName.htmlText "<a href='" i_posterEmail "'>" i_posterName "</a>"
- das einzige was mir jetzt noch zur Glückseligkeit fehlt, ist das mehr als eine Box erstellt wird...

Geändert von itsme564 (20-09-2005 um 15:31 Uhr)
itsme564 ist offline   Mit Zitat antworten
Alt 20-09-2005, 15:34   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
...und wie sieht die Schleife mittlerweile aus? So irgendwie:
ActionScript:
  1. for(i=1;i<= _root.read.posterIndex;i++) {
  2.                i_news_box  = _root.attachMovie("news_box","news_box"+i,i);
  3.                with (i_news_box) {
  4. ...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 20-09-2005, 15:36   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Beiträge: 82
Ay, ein fettes DANKE nochmal!

Mit deinem
PHP-Code:
i_news_box _root.attachMovie("news_box","news_box"+i,i); 
läufts problemlos...

Und was lerne ich daraus? Nie wieder eval... ... erst wenn ich es einigermaßen begriffen habe.
itsme564 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 00:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele