Avatar billede cronaldo Nybegynder
23. november 2009 - 20:26 Der er 10 kommentarer og
1 løsning

Reservation i flash

Hej eksperter!

Jeg sidder netop nu og skal prøve mig med flash som ret nybegynder, hvor jeg vil lave et script til at reservere et bord i flash.

Det skal bemærkes, at jeg har lavet alt den bagvedliggende programmering i PHP og alt dette kan jeg sagtens finde ud af (og det er også lavet færdigt).
Jeg vil nu vide, om man på en eller anden vis kan lave det således, at man ikke gå væk fra selve flash siden når man trykker på knappen "Reserver", men blot forbliver på siden, som man kan med fx en HTML-form (selvfølgelig med hjælp fra PHP) :) ?

Altså vil jeg gerne have at jeg kan hente informationerne fra PHP-filen således at når man trykker udfører flash den funktion, som man i PHP ville kalde med: $class->function($var)

Kan dette gøres uden at man skal gå ind på selve PHP-filen via URL?

(Har sikkert forvirret med mit spørgsmål, men spørg endelig ind til det!)
Avatar billede hmanback Nybegynder
24. november 2009 - 13:17 #1
Nu skriver du ikke hvilken version af ActionScript du vil benytte.

AS2, kig på klassen LoadVars

AS3, kig på URLloader og URLrequest

Prøv at kigge på dette link, kan måske hjælpe dig videre:
http://evolve.reintroducing.com/2008/01/27/as2-to-as3/as2-%E2%86%92-as3-loadvars-as3-equivalent/
Avatar billede cronaldo Nybegynder
25. november 2009 - 19:44 #2
Jeg har indtil nu brugt AS2, da jeg bruger LoadVars :)

dog er problemet, at jeg ikke synes, at knappen gør noget, når jeg trykker :)
Avatar billede hmanback Nybegynder
25. november 2009 - 20:08 #3
Kan du poste noget af din kode; kode for knap og kode for loadvars der kalder din php side.
Avatar billede cronaldo Nybegynder
27. november 2009 - 02:23 #4
// for insert query
var insert_lv:LoadVars = new LoadVars("http://www.getaroom.dk/Flash/action.php", this, "GET");
// get today's date
var today:Date = new Date();

var filepath:String;

// limit fields to max characters allowed by database
nameInput_re.maxChars = 50;
persInput_re.maxChars = 2;

// function to execute after insertscore.php has run
// it returns errorcode, msg (sql error), id (of most recent insert)
insert_lv.onLoad = function(ok:Boolean) {
  if (ok) {
      if (this.errorcode == "0") {
          // update the dataProvider so datagrid updates
          scoreInfo.addItem(
            {record:this.id,
              nickname:nickname_ti.text,
              score:score_ti.text,
              dateposted:date_ti.text
            });
          // reset fields
          nickname_ti.text = '';
          score_ti.text = 100;
          date_ti.text = today.getFullYear() + '-' +
                          zerofill(today.getMonth()+1) + '-' +
                          zerofill(today.getDate());
          msg_ta.text = "Score was added to the database";
      } else {
        // show kind of error
        msg_ta.text = errorMsgs[Number(this.errorcode)];
        // if query error, show mysql_error
        if (this.errorcode == "3") msg_ta.text += ": " + this.msg;
      }
  } else {
      // if loadvars failed (eg, if script not found)
      msg_ta.text = "Flash-database insert operation failed";
  }
};


function insertRecord() {
  // check for no name or bad score
    if (nameInput_re.text > ''
        && persInput_re.text > ''
        && dateField_re.getValue() > ''
        && mailInput_re.text > ''
        && codeInput_re.text > ''
        && chooseTable_re.getValue > ''){
            insert_lv.na     = nameInput_re.text;
            insert_lv.pe     = persInput_re.text;
            insert_lv.c_ma     = mailInput_re.text;
            insert_lv.c_pa     = codeInput_re.text;
            insert_lv.r_da    = dateField_re.getValue();
            insert_lv.t_nr    = chooseTable_re.getValue();
            insert_lv.sendAndLoad(filepath + "action.php?insert=yes", insert_lv, "GET")
    } else {
        msg_ta.text = "Du skal udfylde alle felterne korrekt!";
  }
}

add_btn.addEventListener(MouseEvent.CLICK, insertRecord);


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

Og har selvfølgelig kaldt knappen add_btn, jf. sidste linje. :)
Avatar billede hmanback Nybegynder
28. november 2009 - 14:58 #5
Som jeg læser om LoadVars så tager den ikke paramtre når du opretter en instance af klassen.

var insert_lv:LoadVars = new LoadVars("http://www.getaroom.dk/Flash/action.php", this, "GET");

Bør skrives:
var insert_lv:LoadVars = new LoadVars();


insertRecord() bør du nok rette lidt til:
function insertRecord() {
  // check for no name or bad score
    if (nameInput_re.text > ''
        && persInput_re.text > ''
        && dateField_re.getValue() > ''
        && mailInput_re.text > ''
        && codeInput_re.text > ''
        && chooseTable_re.getValue > ''){
            insert_lv.na = nameInput_re.text;
            insert_lv.pe = persInput_re.text;
            insert_lv.c_ma = mailInput_re.text;
            insert_lv.c_pa = codeInput_re.text;
            insert_lv.r_da = dateField_re.getValue();
            insert_lv.t_nr = chooseTable_re.getValue();
            //rettet
            insert_lv.insert = yes
            insert_lv.sendAndLoad(filepath + "action.php", insert_lv, "GET")

    } else {
        msg_ta.text = "Du skal udfylde alle felterne korrekt!";
  }
}


vedr. add_btn prøv i stedet at bruge dette
add_btn.onRelease = function () {
    insertRecord();
}
Avatar billede cronaldo Nybegynder
29. november 2009 - 14:26 #6
Okay, mange tak, jeg prøver det lige...
Hvad angår det der felt, som man kan indsætte i flash til variabel tekst, hvor f***** finder man lige det henne ;) ?
Avatar billede hmanback Nybegynder
29. november 2009 - 18:02 #7
Tror ikke helt jeg forstår:
Hvad angår det der felt, som man kan indsætte i flash til variabel tekst, hvor f***** finder man lige det henne ;) ?

Ønsker du at et tekstfelt skal være sat til "Dynamic Text"?
Hvis, klik en gang på et tekstfelt på scenen, i properties vinduet(CTRL + F3), under feltet hvor du kan navngive tekstfeltet, er der en dropdownmenu hvor du kan vælge type for tekstfeltet.
Avatar billede cronaldo Nybegynder
29. november 2009 - 19:05 #8
Ja, det er nemlig sådan et felt :P
Fordi den skal jo udskrive de forskellige fejlmeddelelser :) mange tak!
Avatar billede cronaldo Nybegynder
02. december 2009 - 00:07 #9
insert_lv.sendAndLoad(filepath + "action.php", insert_lv, "GET")

<< hvad angår den linje, skal jeg da bare ændre "action.php" til den fil, som jeg vil bruge? :)
Avatar billede cronaldo Nybegynder
02. december 2009 - 02:23 #10
Det virker stadig ikke :)
Tror ikke jeg magter at lave det her, hehe :P
Avatar billede hmanback Nybegynder
02. december 2009 - 16:27 #11
Prøv at læse dette om LoadVars
http://www.sephiroth.it/tutorials/flashPHP/loadVars/index.php

Få lavet en simpel test med LoadVars før end du bruger det i en større sammenhæng. Har indtryk af at du ikke helt er med på hvordan LoadVars skal bruges, med al respekt.

Et af din problemer kan være at du bruger samme LoadVars objekt til at sende og modtage data.
I manualen til AS2 er der et eksempel på LoadVars sendAndLoad:
var submitListener:Object = new Object();
submitListener.click = function(evt:Object) {
    var result_lv:LoadVars = new LoadVars();
    result_lv.onLoad = function(success:Boolean) {
    if (success) {
        result_ta.text = result_lv.welcomeMessage;
    } else {
        result_ta.text = "Error connecting to server.";
    }
    };
    var send_lv:LoadVars = new LoadVars();
    send_lv.name = name_ti.text;
    send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv, "POST");
};
submit_button.addEventListener("click", submitListener);
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