Avatar billede fru_t Nybegynder
11. marts 2004 - 15:15 Der er 53 kommentarer og
3 løsninger

Script til flash og php

Hej!

Jeg har en php-fil, randombible.php, som er indstillet til atlæse tekst fra en MySQL-database.

Nu skal jeg havde teksten fra php ind i flash, og det skal ske, når man trykker på en knap.

Teksten skal blive vist i et dynamisk tekstfelt med instancenavnet: ord
Knappen ligger i første frame, og teksten skal dukke op i anden frame.

Det er sikkert let at lave sådan et script, men jeg kan ikke finde ud af det, og antallet af point er således ikke nødvendigvis et udtryk for sværhedsgraden, men et udtryk for hvor glad jeg vil blive for at få hjælp ;-)

/fru_t
Avatar billede _k Nybegynder
11. marts 2004 - 16:17 #1
minTekst = new LoadVars();
minTekst.onLoad = function() {
  trace("teksten er hentet");
}
minTekst.load("randombible.php");

minKnap.onPress = function() {
  gotoAndStop(2);
  ord.text = citat;
}

..indholdet fra din php-fil skal så starte med citat= :
citat=Et eller andet viist, sagt af en endnu visere mand
Avatar billede fru_t Nybegynder
11. marts 2004 - 16:27 #2
Jeg får følgende error:

**Error** Symbol=manna, layer=knap, frame=1:Line 1: Statement must appear within on handler
    minTekst = new LoadVars();

**Error** Symbol=manna, layer=knap, frame=1:Line 2: Statement must appear within on handler
    minTekst.onLoad = function() {

**Error** Symbol=manna, layer=knap, frame=1:Line 5: Statement must appear within on handler
    minTekst.load("randombible.php");

**Error** Symbol=manna, layer=knap, frame=1:Line 7: Statement must appear within on handler
    minKnap.onPress = function() {

Total ActionScript Errors: 4     Reported Errors: 4

Hvis jeg tilføjer øverst on(release) {
så får jeg følgende error:

**Error** Symbol=manna, layer=knap, frame=1:Line 1: Statement block must be terminated by '}'
    on(release) {minTekst = new LoadVars();

**Error** Symbol=manna, layer=knap, frame=1:Line 10: Syntax error.
    }

Total ActionScript Errors: 2     Reported Errors: 2

Kan du gennemskue, hvad der er galt?

/fru_t
Avatar billede _k Nybegynder
11. marts 2004 - 16:29 #3
du skal sætte scriptet på hovedtidslinjen. Og så skal du give din knap instance navnet: "minKnap"
Avatar billede _k Nybegynder
11. marts 2004 - 16:37 #4
..kom lige i tanke om, at hvis det skal være helt godt, så bør du gøre knappen usynlig eller flytte dens script ind i loadVars funktionen. Så kommer brugeren nemlig ikke galt afsted, hvis han klikker på knappen inden php-teksten er hentet ind:

minKnap._visible = false;
minTekst = new LoadVars();
minTekst.onLoad = function() {
  trace("teksten er hentet");
  minKnap._visible = true;
}
minTekst.load("randombible.php");

minKnap.onPress = function() {
  gotoAndStop(2);
  ord.text = citat;
}
Avatar billede fru_t Nybegynder
11. marts 2004 - 16:45 #5
... hmmmm ... jamen php-tekten skal jo først hentes ind, når brugeren trykker på knappen ...
Avatar billede fru_t Nybegynder
11. marts 2004 - 16:46 #6
Kan man lave et script, hvor jeg ikke behøver ændre noget i php-filen (altså ikke behøver skrive citat= : i php-filen?
Avatar billede _k Nybegynder
11. marts 2004 - 16:52 #7
Du skal altid tildele din tekst et variabelnavn. Dvs. at du SKAL skrive citat= (eller et andet variabelnavn)i php-filen.

Ud fra et usability-synspunk, er det ikke nogen god ide at hente teksten i samme moment som der trykkes på knappen. Der bliver et lille delay (afhængigt af brugerens opkobling) fra der trykkes til der sker noget. Når det er sagt, kan vi bare lave scriptet en smule om for at det rent faktisk vil virke på den måde: (har ikke selv testet, så kom endelig med feedback hvis det ikke fungerer!)

minTekst = new LoadVars();
minTekst.onLoad = function() {
  trace("teksten er hentet");
  ord.text = citat;
}

minKnap.onPress = function() {
  minTekst.load("randombible.php");
  gotoAndStop(2);
}
Avatar billede fru_t Nybegynder
11. marts 2004 - 16:58 #8
Ok. Så må jeg i gang med php'en også. Jeg er ret dum til php, men måske du kan hjælpe. Hvor i php'en skal jeg skrive citat= :

Begyndelsen på php'en ser indtil videre sådan ud:

<?php
    include

/fru_t
Avatar billede _k Nybegynder
11. marts 2004 - 17:02 #9
det er ganske sikkert umiddelbart efter et "echo". Så omskriver du til
echo "citat=" + $enEllerAndenVariabelJegIkkeKender;
Avatar billede fru_t Nybegynder
12. marts 2004 - 10:12 #10
Øv, det virker stadig ikke. Og nu er citat= ellers blevet tilføjet.

"citat=$source: $content\n";

Kan der være noget galt med scriptet i Flash? Eller er du ret sikker på, at det må være php'en, det er galt med? (Php'en virker, når den åbnes i en browser - så kommer der et tilfældigt vers ind).

/fru_t
Avatar billede fru_t Nybegynder
12. marts 2004 - 10:19 #11
... en tilføjelse. I scriptet skriver du blandt andet

minTekst = new LoadVars();
minTekst.onLoad = function() {
  trace("teksten er hentet");
  ord.text = citat;
}

Jeg har ikke nogen tekst eller knap med instance-navnet minTekst. Skal jeg have det? Og så skal teksten ikke vises før i anden frame. Er det medtaget i scriptet?
Avatar billede _k Nybegynder
12. marts 2004 - 11:03 #12
minTekst er et loadVars-objekt, der holder teksten.

Hvis du smider et link til php-filen (altså når den tilgås fra serveren), kan jeg lige tjekke om det ser korrekt ud.

...og når du tester i Flash, skulle ovenstående script gerne udskrive "teksten er hentet", hvis teksten vitterlig er hentet ind. Tjek lige det, inden vi piller mere med scriptet....
Avatar billede fru_t Nybegynder
12. marts 2004 - 11:13 #13
Hej igen. Jeg forstår ikke, hvad du mener, når du skal have et link til php-filen når den tilgås fra serveren. Her er et link, så du kan se php i en browser:

http://jesusnet.dk/budskab/randombibelord.php

Og her er php-scriptet:

<?php



    include ("/home/user1009/jesusnet.dk/admin/include/setup.php3");

    include ("/home/user1009/jesusnet.dk/admin/include/database.php3");



    mysql_connect($db_hostname, $db_username, $db_password) or die ("Ooops.");



    $date = date("Y-m-d");

   

    $query = "select * from $db_database.bibelord_2 order by rand() limit 1";



    $rs = mysql_query($query);

    $numrows = mysql_numrows($rs);

    if ($numrows>0) {

        $content = mysql_result($rs, 0, "content");

        $source = mysql_result($rs, 0, "source");

        //$dayname = mysql_result($rs, 0, "dayname");

        //if ($dayname != "")

        //    $source = "$source - $dayname";



        print "citat=$source: $content\n";

    }

?>

Når jeg tester i flash, får jeg besked om, at den ikke kan finde filen randombibleord. Det er klart, for den ligger ikke lokalt. Når jeg oploader og lægger swf-filen i samme mappe som php-en, så får jeg beskeden undefined i det felt, hvor versene skulle dukke op.

/fru_t
Avatar billede _k Nybegynder
12. marts 2004 - 11:31 #14
Ok, det går da fremad - php'en udskriver præcis det den skal. Og du havde helt ret i at det var urlen jeg var ude efter :o)

Prøv med scriptet: (der manglede lige et "this" når variablen tilgås fra funktionen tilknyttet LoadVars-objektet.

minTekst = new LoadVars();
minTekst.onLoad = function() {
  trace("teksten er hentet");
  ord.text = this.citat;
}

minKnap.onPress = function() {
  minTekst.load("http://jesusnet.dk/budskab/randombibelord.php");
  gotoAndStop(2);
}

(som du kan se, kan du sagtens lokalt tilgå din php-side når du compiler din swf)
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 11:41 #15
Jeg vil nok vælge lige at afslutte med et ekstra & så man er helt sikker....
Avatar billede fru_t Nybegynder
12. marts 2004 - 11:44 #16
Hov, nikolajdu (og velkommen til!) ... det forstår jeg ikke ... hvor skal der stå &?
Avatar billede fru_t Nybegynder
12. marts 2004 - 11:57 #17
Vi nærmer os bestemt en løsning. Jeg kan nu se teksten, når jeg trykker på min knap.

Der er nu kun to problemer tilbage:
1. På min computer (lokalt) får jeg et nyt vers, når jeg trykker igen. Det er meningen. Men når den ligger på serveren, er det det samme vers, der kommer ind.
http://jesusnet.dk/budskab/andagtsrum.php (yderst til højre)

2. Det ligger under en mask, og derfor har jeg fortalt den, hvilke characters, den skal kende. incl. øåæ, men det bliver ikke vis på min computer lokalt. (Skal ikke sige, om det gør online, for jeg kun fået et enkelt vers frem, og det var tilfældigvis uden æøå).

... efterhånden er jeg godt tilfreds med, at jeg gav de 100 point, for det er vist alligevel sværere, end jeg troede ...
Avatar billede _k Nybegynder
12. marts 2004 - 11:58 #18
...efter din tekst loadet ind fra php:

print "citat=$source: $content &\n";

man bruger &-tegnet til at adskille flere variable - i dit tilfælde fra php.

citat=hej med dig&citat2=jeg vil også være med&

..når du kun har en variabel er det strengt taget ikke nødvendigt, men som nikolajdu så rigtigt siger, kan man ligeså godt gå med livrem og seler :o)
Avatar billede _k Nybegynder
12. marts 2004 - 12:04 #19
1: smid en tilfældig variabel med i kaldet til php-siden. Browsere (og servere for den sags skyld har det med at cache dokumenter, så vi skal narre dem til at tro det er en ny side hver gang:

minTekst.load("http://jesusnet.dk/budskab/randombibelord.php?randomTal=" + random(1000));

2: Du skal nok embedde hele fonten.
Avatar billede fru_t Nybegynder
12. marts 2004 - 12:05 #20
2. Undskyld jeg er så dum ... men hvordan embedder man hele fonten?

/fru_t
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:07 #21
Jeg får dem random uden i siden... Ser ud til at virker fint.
Avatar billede fru_t Nybegynder
12. marts 2004 - 12:10 #22
nikolajdu> Får du også vist øæå? Hos mig står der noget værre vrøvl ind imellem - og øæå mangler.
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:11 #23
Nej det kan man ikke sige jeg lige gør ;-)
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:13 #24
Embed fonts får du ved at klikke på Character
Avatar billede fru_t Nybegynder
12. marts 2004 - 12:18 #25
hmmm ... hulk ...

Jeg har klikket på character og tilføjet Lowercase og 123456789øæå,.:;"

... jeg fatter ikke, det ikke virker. Det plejer det at gøre ...

/fru_t
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:19 #26
Nu er jeg ikke så troende at det gør noget - (Men mindre folk har send mig et stort pengebeløb) - Greed - ups vidst en af de syv dødssynder.

Anyway sjov og spændende idé og rart at se kirken udvide sine horisonter lidt. Lavede faktisk julekalender for Dansk Bibel selskab for nogle år siden. Arthur.

Husk så i forbindelse med påskequizzen at nævne at skærtorsdag er grunden til at vi spiser oblater - nadverens indførelse og renselses dag - ;-)
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:19 #27
Hvilken version af Flash sidder du med?
Avatar billede fru_t Nybegynder
12. marts 2004 - 12:21 #28
MX 2004
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:24 #29
print "citat=".utf8_encode($source).": ".utf8_encode($content)".\n";
Avatar billede fru_t Nybegynder
12. marts 2004 - 12:27 #30
Det ser ud som noget, der skal ind i php'en.
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:27 #31
Det er din sidste linie i php´en jeg har ændret.
Avatar billede fru_t Nybegynder
12. marts 2004 - 12:32 #32
... det går ikke, ser det ud til. Nu kan den slet ikke finde teksten.
Avatar billede fru_t Nybegynder
12. marts 2004 - 12:41 #33
http://jesusnet.dk/paaske/paaskehist.php

Her kan du læse lidt om skærtorsdag ;-)
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:44 #34
Damn det tager tid...

anyway :

http://jesusnet.dk/budskab/randombibelord.php viser ikke utf8_encode
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:44 #35
Nå man henter åbenbart hele lydsporet på én gang. måske du skal dele det lidt op.
Avatar billede fru_t Nybegynder
12. marts 2004 - 12:46 #36
utf8_encode. Jeg har haft det oploadet. Og så skrev den undefined i stedet for et vers. Hvorefter jeg lavede det tilbage til det gamle igen.
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 12:52 #37
Kan du ikke lige uploade det som randombibelord2.php bare så jeg kan se at du har gjort det rigtigt.
Avatar billede fru_t Nybegynder
12. marts 2004 - 12:55 #38
jo. http://jesusnet.dk/budskab/randombibelord2.php

Her er den sidste del af php-en

//    $source = "$source - $dayname";



        print "citat=".utf8_encode($source).": ".utf8_encode($content)".\n";

    }

?>
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 13:00 #39
Forstår ikke det giver fejl. Prøv den her :

<?php

    include ("/home/user1009/jesusnet.dk/admin/include/setup.php3");

    include ("/home/user1009/jesusnet.dk/admin/include/database.php3");

    mysql_connect($db_hostname, $db_username, $db_password) or die ("Ooops.");

    $date = date("Y-m-d");

    $query = "select * from $db_database.bibelord_2 order by rand() limit 1";

    $rs = mysql_query($query);

    $numrows = mysql_numrows($rs);

    if ($numrows>0) {

        $content = utf8_encode(mysql_result($rs, 0, "content"));

        $source = utf8_encode(mysql_result($rs, 0, "source"));

        print "citat=$source: $content&";
    }
?>
Avatar billede fru_t Nybegynder
12. marts 2004 - 13:02 #40
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 13:03 #41
Den ser rigtig ud
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 13:03 #42
Prøv så at bruge den i stedet.
Avatar billede fru_t Nybegynder
12. marts 2004 - 13:09 #43
Yes! Nu virker det. Tusind tak både nikolajdu og _k

Kan jeg ikke give jer begge point?
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 13:11 #44
Det virker ikke rigtigt hos mig :?(
Avatar billede fru_t Nybegynder
12. marts 2004 - 13:12 #45
Jo, du skal bare lukke din browser og åbne igen. Min havde også først gemt en gammel version af swf'en. (Og jo, ovenstående indeholder også en vis portion ønsketænkning ...)

http://jesusnet.dk/paaske/paaskehist.php
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 13:20 #46
Jeg har prøvet at tømme min cache - Det ser ud som om tegnene bare forsvinder.

Hr ikker mere tid lige nu
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 13:20 #47
stav selv efter ;-)
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 13:21 #48
også i min firefox browser (alternativ fremfor at lukke alle vinduer!)
Avatar billede fru_t Nybegynder
12. marts 2004 - 13:27 #49
Det var dog mystisk. Det virker hos mig. Og jeg har lige spurgt en anden, og det virker også hos ham. Jeg lader det ligge lidt ... hvis I begge skriver et svar, så vil jeg forsøge at give jer begge point.
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 13:36 #50
Fint med mig - vent på special _k :))
Avatar billede fru_t Nybegynder
12. marts 2004 - 13:39 #51
Nå, det er da synd, at I kun får 50 hver ...
Avatar billede _k Nybegynder
12. marts 2004 - 13:46 #52
special _k melder sig efter overstået frokost. Kommer med kommentaren: "Wauuw hvor i snakker :o)"

50 point er også fint med mig, det er jo ikke pointene vi er her for....

Forresten virker det heller ikke med danske bogstaver hos mig - og nej, jeg skal ikke spille klog på encodning i php - troede nemlig man kunne nøjes med: urlencore(mysql_result($rs, 0, "source")); - i stedet for: utf8_encode(mysql_result($rs, 0, "source"));
Avatar billede fru_t Nybegynder
12. marts 2004 - 14:16 #53
Er der så nogen af jer der kan svare på, hvorfor det virker hos mig og andre og ikke hos jer? Jeg fatter minus!!
Avatar billede fru_t Nybegynder
12. marts 2004 - 14:19 #54
hov, nu ved jeg, hvad der er galt. Det er det forkerte link, jeg har flyttet filen. (Somme tider ligger løsningen lige for)

http://jesusnet.dk/paaske/andagtsrum.php

Ups. Og tusind tak for hjælpen!!
Avatar billede _k Nybegynder
12. marts 2004 - 14:40 #55
ok, så giver det jo mening :o)

..mange tak for pointene.
Avatar billede nikolajdu Nybegynder
12. marts 2004 - 14:58 #56
hehe :))

Tak :))
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