Avatar billede jesperkm Nybegynder
18. maj 2005 - 21:30 Der er 24 kommentarer og
1 løsning

Hente fra MySQL i Flash.

Hejsa, hvordan henter jeg fx. nyheder i min mySQL til flash?
hvor den så udskriver

overskrift
tekst


- På forhånd tak.
Avatar billede webt Nybegynder
18. maj 2005 - 21:48 #1
Du skal lige ha' PHP eller anden server scripting med på vejen, jeg plejer at sætte php til at udskrive mine ting som xml dvs fx:

header("Content-type: text/xml");
$xml="<?xml version=\"1.0\" encoding=\"iso-8859-1\"?><nyheder>\n";
$xml.="<nyhed id=\"1\" titel=\"test\" txt=\"Lalalala\"/>\n";
$xml.="</nyheder>";
echo $xml;

I flash kalder jeg så filen via xml objektet ved:
var nyheder:XML=new XML(); //opret instans af xml objektet
nyheder.ignoreWhite=true; //sæt den til at ignorere mellemrum i xml outputtet
nyheder.sendAndLoad("minPhp.php",nyheder); //load minPhp.php i nyheder objektet
nyheder.onLoad=function() { //når noget loades ind i nyheder
her kan du så behandle xml'en fx vha en løkke
var xmlNode:String = this.firstChild.childNodes; //gem alle nyhederne i xmlNode
for (var i = 0; i<=xmlNode.length; i++) { //løb igennem xmlNode
  her kan du så komme i kontakt med xmlen ved at gøre:
  xmlNode[i].attributes.titel //så får du titel attributen osv, hvad du så gør med dem er op til dig selv :)
}
};

Håber du kan bruge det
Mvh
Martin
Avatar billede jesperkm Nybegynder
18. maj 2005 - 21:53 #2
Kan man ikke bare lave en alm. html side, frem for XML?
Avatar billede webt Nybegynder
18. maj 2005 - 21:59 #3
Det kommer helt an på hvor meget kontrol du vil ha med skidtet, vil du bare vise indholdet af en HTML side med basale koder i, så kan du gøre det, tjek evt, Help -> samples -> understanding text enhancements - men flash understøtter kun nogle "få" html tags.

Ønsker du derimod at have fuld kontrol skal du over i noget som ovenstående hvor du fx selv vil kunne bestemme hvor titlen skal stå ved at indsætte et textfelt på scenen og så sætte text attributten på det til at være = den hentet title fra xmlNoden.

Mvh
Martin
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:03 #4
Ok.
Vil lære XML så :) Inden jeg begynder, men det ser jo nemt nok ud.

Har lige et spm.

Altså

var nyheder:XML=new XML(); //opret instans af xml objektet
nyheder.ignoreWhite=true; //sæt den til at ignorere mellemrum i xml outputtet
nyheder.sendAndLoad("loading.php",nyheder); //load minPhp.php i nyheder objektet
nyheder.onLoad=function() { //når noget loades ind i nyheder
her kan du så behandle xml'en fx vha en løkke
var xmlNode:String = this.firstChild.childNodes; //gem alle nyhederne i xmlNode
for (var i = 0; i<=xmlNode.length; i++) { //løb igennem xmlNode
  her kan du så komme i kontakt med xmlen ved at gøre:
  xmlNode[i].attributes.titel //så får du titel attributen osv, hvad du så gør med dem er op til dig selv :)
}
};

Smider jeg bare ind i actionscript og exporter til movie og lægger op og viser?

Den vil ikke udskrive det fra loading.php selvom jeg har lagt det hele i samme mappe og smidt op på mit webhotel, hvorfor?

Sådan ser den ud (den som viser selve flash'en):

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=4,0,0,0"  width="400" height="400">
<param name="movie" value="chat.swf">
<embed  src="chat.swf" width="400" height="400" play="true" loop="true" quality="high" wmode="Window" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>
</object>


Sådan ser loading.php ud:
<?php
header("Content-type: text/xml");
$xml="<?xml version=\"1.0\" encoding=\"iso-8859-1\"?><nyheder>\n";
$xml.="<nyhed id=\"1\" titel=\"test\" txt=\"Lalalala\"/>\n";
$xml.="</nyheder>";
echo $xml;
?>


Og min flash fil har jeg beskrevet ;o)
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:06 #5
Det skal lige siges jeg er ny i flash! er først begyndt idag.

Den melder disse fejl:


**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 5: Syntax error.
    her kan du så behandle xml'en fx vha en løkke

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 6: Syntax error.
    var xmlNode:String = this.firstChild.childNodes; //gem alle nyhederne i xmlNode

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 8: Syntax error.
      her kan du så komme i kontakt med xmlen ved at gøre:

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 11: Unexpected '}' encountered
    };

Total ActionScript Errors: 4     Reported Errors: 4
Avatar billede pyroman Nybegynder
18. maj 2005 - 22:07 #6
Flash kan godt læse men ikke vise html - det er jo ikke en browser... Men hvis du blot skal have vist nogle data fra en database, så er webt inde på præcis de der skal bruges...

Et PHP script henter indholdet fra databasen og udskriver fx følgende xml-fil:

<?xml version="1.0" encoding="UTF-8"?>
<nyheder>
<nyhed titel="Star Wars kommer i nat">Jeg er sådan et heldigt svin at jeg skal se star wars kl 03.15 i nat ;)</nyhed>
<nyhed title="noget andet stads">Her bare latterlig tekst</nyhed>
</nyheder>


Det er en nem og oveskuelig fil som er nem at hente ind i flash og arbejde med - Flash har en fin xml-parser...

Hvordan du laver selve php-filen der henter indholdet fra databasen, skal du spørge om i PHP kategorien, eller søge om herinde...
Avatar billede webt Nybegynder
18. maj 2005 - 22:08 #7
Den kræver lige lidt ekstra kodning for at gøre noget fx hvis du har et titel felt på scenen kaldet titel_txt og et indholds_txt kan du i løkken tilføje
titel_txt.text=xmlNode[i].attributes.titel;
indholds_txt.text=xmlNode[i].attributes.txt;

Tager forbehold fra fejl i ovenstående kode da jeg ikke lige har flash i nærheden så ikke afprøvet, men ellers
Avatar billede webt Nybegynder
18. maj 2005 - 22:09 #8
Hov den skulle ikke afsted
her er resten
en god tutorial: http://www.actionscript.org/tutorials/intermediate/XML/index.shtml

Mvh
Martin
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:10 #9
Jamen altså..
titel_txt.text=xmlNode[i].attributes.titel;
indholds_txt.text=xmlNode[i].attributes.txt;


vil den udskrive indholdet fra loading.php?
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:11 #10
Er dælme glad for i vil hjælpe mig. :) - Lære noget nyt idag igen :D
Avatar billede webt Nybegynder
18. maj 2005 - 22:13 #11
Ja men velkommen til den vidunderlige verden kaldet flash :) nu kan også du ende med at hive hår ud lige som vi andre som elsker at hadde flash :) heh, men for at vende tilbage til det seriøse, actionscript.org tutorials og deres forumer er næsten det bedste sted at starte som ny med actionscripting, og så kan jeg ellers anbefale et par bøger: Flash MX Professional 2004 application development og så ellers Training from the source, de er rigtig gode både helt på begynder niveau og så lidt opad.

Mvh Martin
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:15 #12
Ehm.. Ok..

Dvs. du ikke vil hjælpe mig her, men skal spørge på actionscript.org :)?

Fair nok, men tror ikke folk vil kunne forstå mig.. (Dårlig til engelsk).. ;)
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:16 #13
Ahh, nu viser den ingen fejl..

var nyheder:XML=new XML(); //opret instans af xml objektet
nyheder.ignoreWhite=true; //sæt den til at ignorere mellemrum i xml outputtet
nyheder.sendAndLoad("loading.php",nyheder); //load minPhp.php i nyheder objektet
nyheder.onLoad=function() {
var xmlNode:String = this.firstChild.childNodes; //gem alle nyhederne i xmlNode
for (var i = 0; i<=xmlNode.length; i++) {
titel_txt.text=xmlNode[i].attributes.titel;
indholds_txt.text=xmlNode[i].attributes.txt;

}
};



men den vil stadig ikke vise det fra loading.php, hvorfor? :)
Avatar billede webt Nybegynder
18. maj 2005 - 22:23 #14
Nej nej, hjælper skam gerne her, actionscript.org er bare fyldt med gode tutorials :)

Her kommer et lidt mere simpelt eksempel med pyromans xml fil, vi antager den er gemt som nyhed.xml

og at du har titel_txt som et dynamisk txt felt på scenen, samme med indhold_txt
var nyheder:XML=new XML();
nyheder.ignoreWhite=true;
nyheder.sendAndLoad("nyhed.xml",nyheder);
nyheder.onLoad=function() {
    titel_txt.text=this.firstChild.firstChild.attributes.titel;
    indhold_txt.text=this.firstChild.firstChild.firstChild;
};
Hvis du vil bruge php i stedet erstatter du bare nyhed.xml med fil.php og så får du den til at udskrive samme struktur som pyroman viste

Mvh
MArtin
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:26 #15
Aah, jeg skal lave 2 layers som hedder indhold_txt og titel_txt ?
Avatar billede webt Nybegynder
18. maj 2005 - 22:31 #16
Felterne må gerne ligge i samme lag, bare huske at give dem instance navne titel_txt og indhold_txt
Exempel:
swf: http://martin-nielsen.com/exp/nyhed.swf
xml: http://martin-nielsen.com/exp/nyhed.xml
fla: http://martin-nielsen.com/exp/nyhed.fla

Mvh
Martin
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:31 #17
Damn, jeg er dårlig til det..
Må heller lade være med at forstyrre mere.


Meeen *g*

Kan i give mig .fla filen? - Så kan jeg arbejde lidt selv.
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:33 #18
Mange tak, læg svar.
Avatar billede webt Nybegynder
18. maj 2005 - 22:35 #19
Det får du og held og lykke med flash, som du kunne læse fra min post længere oppe, så er det næsten altid en frustrerende oplevelse at komme igang med flash, men når man først lige får styr på det grundlæggende så er det faktisk ikke så slemt :)
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:35 #20
Hvorfor siger den:

XML-siden kan ikke vises
XML-kan ikke vises ved hjælp af typografiarket XSL. Ret fejlen, og klik derefter på knappen Opdater, eller prøv igen senere.


--------------------------------------------------------------------------------

Der blev fundet et ugyldigt tegn i tekstindholdet. Der opstod en fejl under behandling af ressourcen "url.....

<nyhed titel="Star Wars kommer i nat">Jeg er s
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:35 #21
nyheder.xml:

<?xml version="1.0" encoding="UTF-8"?>
<nyheder>
<nyhed titel="Star Wars kommer i nat">Jeg er sådan et heldigt svin at jeg skal se star wars kl 03.15 i nat ;)</nyhed>
</nyheder>
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:36 #22
Sorry drenge.. min fejl!
Avatar billede jesperkm Nybegynder
18. maj 2005 - 22:36 #23
eller.. jeg roder sgu da rundt i det *g*

Har kaldt den nyhed.xml og den udskriver en fejl-message!?
Avatar billede jesperkm Nybegynder
18. maj 2005 - 23:06 #24
underligt.. har hentet det samme som dit, men funger ikke her..

min .swf fil viser intet.

Kan det være fordi du har et andet flash program end mig?
Avatar billede webt Nybegynder
19. maj 2005 - 07:56 #25
Kører med mx 2004, men det burde virke i mx også så længe du har husket, xml filen, de 2 tekst felter på et lag i flashen og givet dem de rigtige instance navne, og sat actionscriptet ind i timeline.
Husk at når du skal teste skal du trykke ctrl+enter (test scene)
Mvh
Martin
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester