Avatar billede jesper-holm Nybegynder
04. oktober 2004 - 17:37 Der er 15 kommentarer

Importere PHP ind i Flash

Hej.

Jeg har søgt lidt på emnet, men har ikke kunne finde besvarelser, som jeg forstod at udføre - derfor henvender jeg mig nu til jer!

Jeg kunne godt tænke mig noget tekst, der skal hentes fra en PHP-fil, til at blive vist i en tekstboks i Flash. Er der nogen der kan guide mig til dette?

Jeg er _meget_ grøn i Flash men bekendt med PHP, så det vil være yderst taknemmeligt, hvis I kunne skrive det _meget_ udførligt (hvor der klikkes, hvad felterne hedder, variabel/instance-navne osv.)

På forhånd tak.
Jesper Holm
Avatar billede jesper-holm Nybegynder
04. oktober 2004 - 18:59 #1
Jeg har nu fundet en metode at gøre dette på:

I filen 'phptext.php' har jeg indsat følg. kode:
---
<?php
$text = "bla bla bla... (lang tekst, her forkortet)";
echo "phptext=$text";
?>
---

I min flash-fil har jeg lavet en tekstboks, gjort den til 'dynamic text' og givet den variablen 'phptext' (det samme navn som "prefix'et" i PHP-filen). Ydermere har jeg indsat følgende kode i det første frame:
---
_root.loadVariables("phptext.php");
stop();
---

Det virder også med at hente teksten fra PHP-filen ind i Flash-filen, men jeg har nu fået tre overordnede problemer:

1) Teksten fortsætter ud over tekstboksens "grænse" så den forsvinder ud. Det vil sige, der er ingen "margin" og ingen linieskift. Hvordan laver jeg disse to ting??

2) Noget af teksten var med fed skrift i Flash-filen (inden jeg brugte PHP). Hvordan gør jeg igen noget af teksten fed (<b>bla</b>virker vist ikke)

3) Special-tegn som æ, ø, å, : osv. forsvinder ud af teksten. Hvordan får jeg dem tilbage?

Håber I kan hjælpe mig. Jeg er som skrevet meget nybegynder, så jeg vil være utrolig (!) glad for en udførlig beskrivelse.

Mange tak.
Jesper Holm
Avatar billede thulstrup Nybegynder
04. oktober 2004 - 20:08 #2
1) Vælg din tekstboks. I Properties ændre du 'Single Line' til 'Multiline'. Du kan sætte margin ved at trykke på 'Format...' knappen.

2) Du kan slå HTML til ved at trykke på 'Render text as HTML' knappen (ved siden af single/multiline). Derefter vil simple html tags virke.

3) Prøv at utf8 encode din tekst inden du sender den til Flash. Altså:
<?php
$text = "bla bla bla... (lang tekst, her forkortet)";
echo "phptext=" . utf8_encode($text);
?>

Hvis det ikke virker, kan du indsætte følgende linie i frame1 i din flashfil:
System.useCodepage = true;
Avatar billede jesper-holm Nybegynder
04. oktober 2004 - 20:53 #3
1) Det er nu rettet så teksten fordeler sig på flere linier. Super!

2) HTML-koden virker nu delvist?! Når jeg indtaster <b>tekst</b> forsvinder HELE teksten inden for syntakserne, mens <br>-syntakserne virker. Hvorfor er der denne forskel, tror du? Hvordan kan jeg gøre brug af <b></b> igen?

3) Jeg har prøvet begge dele, men intet virker. Det skal siges, at jeg har sat 'Character' på tekstboksen (her har jeg valgt 'Uppercase', 'Lowercase', 'Numerals' og 'Punctuation') da teksten ellers ville blive mærkelig (med Times New Roman-skrifttype, ingen specialtegn osv.)

Hvordan kan jeg rette punkt 2 og 3?

Ellers MANGE, MANGE tak for hjælpen! Håber du/I kan give mig en hånd med det sidste?

Jesper Holm
Avatar billede nikolajdu Nybegynder
04. oktober 2004 - 21:10 #4
Hvordan loader du din tekst ind?
Avatar billede nikolajdu Nybegynder
04. oktober 2004 - 21:10 #5
Har du husket at slå html til på dit tekstfelt? Forsøg evt. at fjerne alt og tilsætte lidt af gangen indtil det ikke længere funker.
Avatar billede jesper-holm Nybegynder
04. oktober 2004 - 21:43 #6
Jeg har forsøgt at beskrive i mit indlæg nr. 2 hvordan jeg henter teksten ind...

HTML er slået til, for jeg kan nu godt lave linieskift med <br> hvad jeg ikke kunne før. Så jeg tror desværre ikke problemet ligger der.

Burde det overhoved være nødvendigt at definere 'Character' på dynamic text-boksen for at skrifttypen forbliver som den skal være og ikke laves om til Times New Roman?

Med venlig hilsen
Jesper Holm
Avatar billede thulstrup Nybegynder
04. oktober 2004 - 21:49 #7
I 'Character' skal du i feltet 'Include these characters' skrive æøåÆØÅ for at få dem embeded.
Avatar billede thulstrup Nybegynder
04. oktober 2004 - 22:02 #8
Hvilken font er det du vil embede og er du sikker på at den også indeholder en bold version?

Nogle gange kan det være nødvendigt at embede flere forskellige fonte, f.eks en til alm. tekst, en til fed og en til kursiv.
Avatar billede jesper-holm Nybegynder
04. oktober 2004 - 22:15 #9
Jeg bruger 'Tahoma' med størrelsen 11px.

Jeg har - som 'Static text' og ikke 'Dynamic text' - brugt fed skrift, så jeg er sikker på den findes. Jeg har også lige "eksperimenteret" med andre formateringer.

<u> virker
<i> virker ikke
<b> virker ikke
<br> virker

Så jeg håber på nogen med idé til hvordan problemet løses.

NB! Problemet med æøå er nu løst vha. ovenstående løsningsforslag. Mange tak for det!
Jesper Holm
Avatar billede nikolajdu Nybegynder
04. oktober 2004 - 22:21 #10
prøv i stedet :

l = new LoadVars();
l.onLoad = function(s){
if(s){
trace("juhu : "+this["phptext"]);
_root.phptext = this["phptext"];
}
}
l.load("phptext.php",l);
Avatar billede jesper-holm Nybegynder
05. oktober 2004 - 16:45 #11
Jeg har nu prøvet din kode, nikolajdu, og den virker fint, men jeg kan stadig ikke bruge fed skrift. Den tekst jeg har markeret til fed forsvinder bare.

Jeg kan vel ikke være den første der oplever dette. Hvordan gør I andre, når I skal importere tekst fra en PHP-fil til en dynimic text-boks, hvor I har defineret en bestemt skrifttype, størrelse, farve osv?

Hvordan gør I? Måske jeg kan løse problemet ved at bruge en anden metode?

Jesper Holm
Avatar billede nikolajdu Nybegynder
05. oktober 2004 - 16:59 #12
Hvis du skal embedde fonten skal du huske både at embedde en "normal" version og en "bold" version (og italic, underline hvad du nu skal bruge)

Du laver 2 tekstfelter uden for din scene så de ikke kan ses. Et til hver normal og et til bold og embedder der.
Avatar billede jesper-holm Nybegynder
05. oktober 2004 - 17:15 #13
Nu virker det!!
Rigtig, rigtig mange tak for jeres langvarige hjælp! Håber ikke I har taget jer selv til hovedet _for_ mange gange ;-)

Jeg har prøvet at hente mere end én variabel fra min phpfil, men det kan ikke rigtig lade sig gøre... Jeg har lavet et nyt dynamic text-felt og kaldt til 'phptitle' hvorimod det andet hed 'phptext'.

I PHP-filen har jeg så skrevet følgende for at sende to variabler til flash:
---
<?php
$title = "her en titel";
$text = "her en tekst";

echo "phptitle=" . $title . "&phptext=" . $text;
?>
---

Men flash vil ikke vise title-variablen i tekst-feltet 'phptitle'. Ved I hvorfor/hvad jeg gør galt ud fra min lille "fremgangsmåde"??

Jesper Holm
Avatar billede nikolajdu Nybegynder
05. oktober 2004 - 18:52 #14
l = new LoadVars();
l.onLoad = function(s){
if(s){
trace("juhu : "+this["phptext"]);
_root.phptext = this["phptext"];
_root.phptitle = this["phptitle"];
}
}
l.load("phptext.php",l);
Avatar billede nikolajdu Nybegynder
20. oktober 2004 - 10:06 #15
hjalp det?
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