14
Tags:
php
Skrevet af
Bruger #11328
@ 08.12.2007
Forord
Flash er ved at blive et populært redskab til at lave flotte og interaktive hjemmesider.
Mange er ligefrem begyndt at lave
hele hjemmesider i Flash. Alt dette er jo meget godt, men der et problem:
Man kan ikke bruge programmerings sprog. Og det betyder at redigering at sitet er nød til at foregå i Flash, og kan ikke laves ved SQL kald.
Denne artikel vil forklare hvordan man laver en nem og sikker bro mellem Flash og andre programmeringssprog ved hjælp af XML
Hvad skal vi bruge:
Du skal bruge:
Adobe Flash - En gratis 30-dags prøveversion kan hentes på deres hjemmeside
http://www.adobe.comEn editor - Notepad, XMLSpy osv.
Et lille kendskab til XML
Lad os begynde!
Start med at åbne Flash -> og klik under Create New - > Flash File(Actionscript
2.0)
Klik på den første frame i tidlinjen og klik F9 eller Window -> Actions
Her skriver du så:
var XMLdok:XML = new XML(); // Vi opretter en variabel af typen XML til at holde vores XML dokument
XMLdok.ignoreWhite = true; // Vi sætter Flash til at ignorer hvide felter (mellemrum) i dokumentet
XMLdok.onLoad = initXML; // Når dokumentet loader skal funktionen initXML gå i gang
var tekstloader:Array = new Array(); // Vi laver et array til at loade tekst fra vores XML dokument.
function initXML(tjek:Boolean) // vi laver vores "load" funktion
{
if(tjek) // Hvis filen bliver loadet korrekt:
{
for(var i:Number = 0; i < this.firstChild.childNodes.length;i++) // Okay der sker en del i denne linje. Vi laver et for-loop som går igennem hvos XML dokument. Vi sætter variablen i til 0. så længe i er mindre en hvor mange childNodes der er i XML dokumentet. Lægges der 1 til i
{
tekstloader[i] = this.firstChild.childNodes[i].attributes.teksten; // Vi fylder vores array med data
}
}
else
{
trace("Fejl!"); // Hvis filen ikke bliver loadet udskriver vi "Fejl"
}
}
XMLdok.load("xmldokument.xml"); // Vi loader XML dokumentet
Jeg har prøvet at sætte så mange kommentarer ind så koden er forståelig.
Dog vil jeg lige gennemgå XML funktionerne:
this - Er vores XML dokument. this bliver automatisk sat til at indeholde det vi loader
firstChild - Det første "Barn" i XML dokumkentet
childNodes[#] - Under børn af firstChild. Tallet inde i "bracketsne" er nummeret. EKS: det første barn er [0], det andet barn er [1] osv.
attributes - Vi laver forbindelse til vores attributter
teksten - og vælger attributten "teksten"
Nu skal vi så ha' lavet os vores XML dokument. Åbn din editor (notepad el.lign.) og skriv:
<?xml version="1.0" encoding="UTF-8"?>
<test>
<txt teksten="Dette er en prøve, mon det virker?" />
<txt teksten="Denne prøve er nr. 2!" />
</test>
Du kan læse om XML herinde på udvikleren under fanebladet "XML / XSL"
Vi har nu teksten "Dette er en prøve, mon det virker?" i vores variabel "tekstloader[0]"
Det vi nu skal klare er at udskrive det.
Det gøres enkelt!
Luk action vinduet (hvis du stadig har det åbent) og klik på Text Tool (genvejstast: "t") og lav en firkant som her:
Nederst på billedet klikker du på "properties" -> og vælger på den lille rullebar "Dynamic Text" -> og lige nedunder giver den instance navnet "loadettxt".
Vi giver den et instance navn så vi kan få fat på den over Actionscriptet.
Nu da alt dette er klaret er vi klar til at udskrive tekst!
Klik igen på den første frame -> og klik F9. udvid nu koden med:
var XMLdok:XML = new XML(); // Vi opretter en variabel af typen XML til at holde vores XML dokument
XMLdok.ignoreWhite = true; // Vi sætter Flash til at ignorer hvide felter (mellemrum) i dokumentet
XMLdok.onLoad = initXML; // Når dokumentet loader skal funktionen initXML gå i gang
var tekstloader:Array = new Array(); // Vi laver et array til at loade tekst fra vores XML dokument.
function initXML(tjek:Boolean) // vi laver vores "load" funktion
{
if(tjek) // Hvis filen bliver loadet korrekt:
{
for(var i:Number = 0; i < this.firstChild.childNodes.length;i++) // Okay der sker en del i denne linje. Vi laver et for-loop som går igennem hvos XML dokument. Vi sætter variablen i til 0. så længe i er mindre en hvor mange childNodes der er i XML dokumentet. Lægges der 1 til i
{
tekstloader[i] = this.firstChild.childNodes[i].attributes.teksten; // Vi fylder vores array med data
}
loadettxt.text = tekstloader[0]; // NY! Vi skriver det ud i "loadettxt"
}
else
{
trace("Fejl!"); // Hvis filen ikke bliver loadet udskriver vi "Fejl"
}
}
XMLdok.load("xmldokument.xml"); // Vi loader XML dokumentet
Det vi gjorde var simpelthen bare at lægge variablen hen i en textbox, som udskriver den!
Hvad kan jeg bruge denne artikel til?
Jo, det du har lært her kan selvfølgelig gøres med scripting sprog som f.eks. PHP. Et lille eksempel:
Det eneste du skal gøre er at erstatte "xmldokument.xml" med "phptilxml.php" som indeholder:
<?php
mysql_connect("HOST", "BRUGERNAVN", "PASSWORD") OR DIE(mysql_error());
mysql_select_db("DATABASE") OR DIE(mysql_error());
$query = mysql_query("Select * FROM table");
echo "<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><test>";
while($row = mysql_fetch_assoc($query))
{
echo "<txt teksten=\\"" . $row['tekst'] . "\\" />";
}
echo "</test>";
?>
Det var så alt for denne gang. Håber i fik noget ud af det!
Jakob
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (13)
Burde denne artikel være under php, kun den sidste kodeblok har noget som helst med php at gøre, har mere med xml at gøre. Men ellers en god artikel, dog er ActionScript vel at anse for et programmeringsprog af en art så flash har programmeringssprpog.
God artikkel, og kunne heller ikke lige forstå, hvorfor den var under php, i starten. Dog har det fået mig til at tænke, at det kunne være sjovt at lege lidt med noget flash, xml og php.
God artikkel, og kunne heller ikke lige forstå, hvorfor den var under php, i starten. Dog har det fået mig til at tænke, at det kunne være sjovt at lege lidt med noget flash, xml og php.
Ja jeg har ikke sat den under PHP..
Jakob, forfatteren vælger selv hvilken kategori artiklen skal være i når den oprettes - co-admins ændrer det kun hvis de mener der er en mere passende kategori, hvilket ikke er sket i dette tilfælde
Ups..
Kan i flytte den?
Dejligt at du viser hvordan man får de tre ting til at komplette hinanden
Jeg vidste nu godt man kunne få de tre ting til at spille sammen(hvordan skulle man ellers lave highscoores i flashspil), men du viser det på en god og nem måde
God artikel 5 point
Dejlig artikel, nem at forstå - 5 her fra
Mange tak!
Glad for at høre!
Rigtig god artikel.. bare ærgeligt det ikke er AS 3
Jeg giver den 5 fordi det er genialt, men jeg håber virkelig at du vil lave den til AS3, alle kører jo AS3 med den nye CS3, når de lige får det lært..ville være bomben.
Ja men desværre er AS3 stortset et helt nyt sprog... Der er så mange ændringer, og jeg har ikke fået sat mig ind i dem alle endnu..
Fed artikkel!!! En af de bedste AS artikler, jeg har set. Det virker endda også i Flash Lite 2.x
5/5
Du skal være
logget ind for at skrive en kommentar.