Avatar billede doodoo Novice
01. februar 2005 - 11:13 Der er 19 kommentarer og
1 løsning

Læse php fil ind i flashtext field

Hey

Nu har jeg søgt og læst som en sindsyg men uden held...

jeg har dette ActionScript:

onClipEvent(load){
loadVariables("read.php", this);
}
onClipEvent (data) {
_root.polle.htmlText = takea;
}

Af hvad jeg ved skal den læse read.php som HTML text.
- men hvordan skal read.php så se ud for at den læser det ind i text feltet?

(feltet er Multiline)

100 points til den der lærer mig at forbindel flash med php (og ikke linker til andet svar her på sitet)
Avatar billede _k Nybegynder
01. februar 2005 - 14:39 #1
1: Når du søger og læser støder du usandsynligt ofte ind i loadVariables. Det er ikke fordi det er en god måde at hente ting ind i Flash på, det er fordi der ligger oceaner af gamle hjemmesider derude, der burde destrueres!
Du skal bruge LoadVars objektet i stedet (vel at mærke hvis du bruger Flash MX eller nyere)

var minLoadVars:LoadVars = new LoadVars();
minLoadVars.onLoad = function() {
  navnetPåDitTekstfelt.text = this.variabelNavn;
}
minLoadVars.load("navnetPåDinPHPFil.php");

2: Din php skal så outputte noget i dette format (hvilket vil sige INGEN <head>, <body> eller <script>-tags):

&variabel1=her er indholdet af min 1. variabel&
&variabel2=her er indholdet af min 2. variabel&
&variabel3=her er indholdet af min 3. variabel&

.. i ovenstående eksempel skal du i onLoad-funktionen så hente "variabel1" ind i stedet for "variabelNavn"
Avatar billede doodoo Novice
01. februar 2005 - 15:24 #2
okay - hvis jeg skal hente noget ud fra en database i den fil - hvordan vil phpfilen så se ud?
Avatar billede _k Nybegynder
01. februar 2005 - 15:30 #3
PHP-filen skal outputte PRÆCIS det samme som ovenfor. Hvordan den skal gøre det, kan jeg godt svare på, men det hører vist hjemme i en anden kategori. Med andre ord, er det dejligt ligegyldigt hvordan tekstfilen du henter ind i Flash bliver genereret, så den kan komme fra asp, soap, .NET, php, perl eller whatever der ellers findes af scripting-teknologier - se DET er smart :o)
Avatar billede doodoo Novice
01. februar 2005 - 15:43 #4
Det er det da - men kan jeg bare connecte til mysql og trække ud sådan uden videre ændringer i ActionScripting?
Avatar billede _k Nybegynder
01. februar 2005 - 15:58 #5
Yep, så længe du bare beholder de samme variabelnavne i outputtet. Udfordrigen begynder først der, hvor du på forhånd ikke ved hvor mange variable du modtager fra tekstfilen. Så bliver du nødt til at sende et tal (også i form af en variabel) med. der indikerer hvor mange variable der er i alt.

Bemærk forresten også, at du ikke direkte kan sende arrays, objekter eller noget andet end rendyrkede tekst-variable med. Det er vilkårende.....
Avatar billede doodoo Novice
01. februar 2005 - 16:05 #6
okay - takker

- kunne jeg lokke dig til at lave en php kode hvor den connecter til mysql og trækker fx. navn og adresse ud?
Avatar billede _k Nybegynder
01. februar 2005 - 16:13 #7
Næ, den kan du smutte over i php-kategorien med. Det kræver nemlig både viden om hvad din database hedder, indeholder, hvordan der connectes til den og præcis hvad der skal ud. Ikke fordi det er et vanvittigt projekt, men jeg ser hurtigt en time forsvinde ud af vinduet. Mon ikke mange andre har siddet med det samme som dig ovre i php-kategorien? Det eneste der så skal tilføjes er at få echo'et eller print'et det ud på den rigtige måde.....
Avatar billede doodoo Novice
01. februar 2005 - 16:36 #8
Jeg ved godt hvordan man laver det i php - så ville være dumt at spilde points på det... så forstår du mig ikke

kan jeg SLETTE
&variabel1=her er indholdet af min 1. variabel&
&variabel2=her er indholdet af min 2. variabel&
&variabel3=her er indholdet af min 3. variabel&

og begynde at conncecte til mysql og hente data'er ud?
Avatar billede _k Nybegynder
01. februar 2005 - 16:48 #9
Du kan hente ud så tosset du vil. Men i det øjeblik du begynder at printe eller echo'e til siden, skal du være opmærksom på, at det formateres så Flash kan forstå det. Det vil sige, at du bare sletter mit eksempel, laver dine egne variabelnavne og outputter derudaf.

Hvis det går helt galt, kan du godt smide scriptet for dit output her, så giver jeg den gerne et kig.
Avatar billede doodoo Novice
01. februar 2005 - 19:09 #10
okay... nu har jeg prøvet lidt (kald mig dum hvis du synes hehe)

FLASH: (php.swf)
onClipEvent(load) {
var minLoadVars:LoadVars = new LoadVars();
minLoadVars.onLoad = function() {
  readphp.text = this.about;
}
minLoadVars.load("fil.php");
}

PHP: (fil.php)
&about=her er indholdet af min 1. about&
Avatar billede _k Nybegynder
01. februar 2005 - 20:53 #11
Det er ikke nogen god ide at putte scriptet ned i et mc med "onClipEvent(load)". Det betyder at du skal tage højde for stier osv. (hvilket nu også er ligetil - men man skal jo lige lære det!). I dit tilfælde skal du nok sætte skrive: _parent.readphp.text - hvis altså ikke dit tekstfelt vitterligt ligger nede i det mc du kører onClipEvent på.

Ellers ser det helt korrekt ud. Du kan teste om filen overhovedet bliver fanget ved at tilføje lidt til onLoad:

minLoadVars.onLoad = function(success) {
  if(success) {
    trace("tekstfilen er hentet");
  }
  else {
    trace("kunne ikke finde filen");
  }
}
minLoadVars.load("http://www.domæne.dk/fil.php");

..eftersom du tester inde fra Flash, bliver du nødt til at levere hele stien til dér hvor dit php-dokument ligger.
Avatar billede doodoo Novice
01. februar 2005 - 21:50 #12
Det er så lige det, den SKAL være i onclip

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: Statement must appear within on/onClipEvent handler
    minLoadVars.onLoad = function(success) {

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 9: Statement must appear within on/onClipEvent handler
    minLoadVars.load("http://www.doodoo.dk/wip/flash/fil.php");

Total ActionScript Errors: 2     Reported Errors: 2
Avatar billede doodoo Novice
01. februar 2005 - 21:52 #13
... så rettede jeg til:

onClipEvent(load) {
var minLoadVars:LoadVars = new LoadVars();
minLoadVars.onLoad = function() {
  readphp.text = this.about;
}
minLoadVars.onLoad = function(success) {
  if(success) {
    trace("tekstfilen er hentet");
  }
  else {
    trace("kunne ikke finde filen");
  }
}
minLoadVars.load("fil.php");
}

og den skriver: tekstfilen hentet - så ingen fejl.. der kommer bare intet tekst =)
Avatar billede _k Nybegynder
01. februar 2005 - 22:54 #14
Hvilken version af Flash sidder du med? Og kyler du den ikke bare ind på main timeline i stedet for på et mc?

Det er stien til dit tekstfelt den er gal med. Du kan sikkert få hul igennem med _parent.readphp.text = this.about;
Men det afhænger af hvor dit tekstfelt ligger i forhold til mc'et.
Avatar billede doodoo Novice
02. februar 2005 - 12:20 #15
actionsctiptet sidder i timeline frame 1....
bruger MX 2004
Avatar billede doodoo Novice
02. februar 2005 - 12:20 #16
btw - så skriver den "tekst hentet" så den finder filen - udskriver bare intet =(
Avatar billede _k Nybegynder
02. februar 2005 - 13:24 #17
Med den version af Flash, kan du godt slå onClipEvent(load) ihjel. Det er en måde at scripte på der er forældet, men sjovt nok stadigvæk er understøttet.

Hvis du får læst variablen, så er du jo lige ved at flade over mållinjen. Hvor ligger dit tekstfelt henne? Er det på main timeline? Eller ligger det inde i et mc?

...du kan forresten også trace indholdet af din variabel ud med:
trace("tekstfilen er hentet. Variablen about indeholder: " + this.about);
Avatar billede doodoo Novice
08. februar 2005 - 10:45 #18
k svarer du lige?
Avatar billede _k Nybegynder
08. februar 2005 - 11:00 #19
yep
Avatar billede _k Nybegynder
08. februar 2005 - 11:54 #20
mange tak for pointene :o)
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