\"feladat=letrehozas&s_faj_cim=teszt&i_faj_konyvtar_azo=1\" 1. lépés: javascript függvény előkészítése A /mag/+fuggveny.js módosítása erre, kibővítése egy újabb paraméterrel, ami a name és az id-kat teszi be. function x_glo_aktivalas_flash_parameter(s_fajlnev, i_szelesseg, i_magassag, b_transzparens, s_parameter, s_id_name) { var s_transzparens1; var s_transzparens2; if (b_transzparens == true) { s_transzparens1 = ''; s_transzparens2 = 'wmode="transparent"'; } else { s_transzparens1 = ''; s_transzparens2 = ''; } document.write(''); document.write(''); document.write(''); document.write(''); document.write(s_transzparens1); document.write(''); document.write(''); document.write(''); } 2. lépés Flash mozi beépítése az űrlapba a következő függvényhívással //x_glo_aktivalas_flash_parameter(s_fajlnev, i_szelesseg, i_magassag, b_transzparens, s_parameter, s_id_name) A PARAMÉTEREK KÖZÖTT MINDENKÉPPEN ÁT KELL ADNI A SESSION AZONOSÍTÓT (LÁSD KÉSŐBB) ÉS ÁT LEHET ADNI OLYAN ADATOKAT, AMELYEK NEM VÁLTOZNAK AZ ŰRLAP KITÖLTÉSE KÖZBEN, TEHÁT A PHP FUTTATÁSAKOR MÁR ADOTTAK VOLTAK. 3. lépés: Új JS függvénnyel ki kell egészíteni a /mag/+fuggveny.js-t //A FLASH OBBJEKTUM KIKERESÉSE A DOM-BÓL BÖNGÉSZŐFÜGGETLENÍTÉSSEL function o_glo_flash(s_name_id) { if (window.document[movieName]) { return window.document[movieName]; } if (navigator.appName.indexOf("Microsoft Internet")==-1) { if (document.embeds && document.embeds[movieName]) return document.embeds[movieName]; } else // if (navigator.appName.indexOf("Microsoft Internet")!=-1) { return document.getElementById(movieName); } } 4. lépés: A FLASH SWF BELSŐ FÜGGVÉNYEINEK HÍVÁSA KÍVÜLRŐL, JS-BŐL A flash-en belül regisztrálni kell minden egyes függvényt, amit JS-ből meg akarunk hívni, az alábbiak szerint: //FLASH AS2 program import flash.external.*; var b_feltoltes_inditas:Boolean = ExternalInterface.addCallback("x_feltoltes", null, x_feltoltes_inditas); //JS PROGRAM FÜGGVÉNY HÍVÁS o_glo_flash('fajl_feltoltes').x_feltoltes() // Az x_feltoltes-t a flash-en belül regisztrálni kell a fentiek szerint 5. lépés: //A FLASH-NEK VÁLTOZÓT ADUNK ÁT JS-BŐL o_glo_flash('fajl_feltoltes').SetVariable('valtozonev', 'ertek') // A PARAMÉTEREZEÉS JS-BŐL o_glo_flash('fajl_feltoltes').SetVariable('s_par_js', 'ertek') //OLYAN PARAMÉTEREKET KELL ÁTADNI, AMELYEKET NEM LEHET A BETÖLTÉSKOR, MERT AZ ŰRLAP KITÖLTÉS KÖZBEN JÖNNEK LÉTRE //EZEKET A PARAMÉTEREKET A FLASH SZINTÉN ELKÜLD A PHP FÁJLNAK. ILÍEN LEHET PL. A FÁJL CÍME, LEÍRÁS,A STB. //AZ ALÁBBI FÜGGVÉNY ERRE EGY PÉLDA. function x_urlap_kuldes() { s_faj_cim = document.getElementById('s_faj_cim').value; s_faj_leiras = document.getElementById('s_faj_leiras').value; s_faj_sorrend = document.getElementById('s_faj_sorrend').value; o_glo_flash('fff_1').SetVariable('s_par_js', 's_faj_cim='+s_faj_cim+'&s_faj_leiras='+s_faj_leiras+'&s_faj_sorrend='+s_faj_sorrend); //A KIOLVASÁS ÉS BEÁLLÍTÁS UTÁN MÁR HÍVHATÓ A FELTÖLTÉS. o_glo_flash('fff_1').x_fff_feltoltes(); } 5. lépés Eseménykezelők: Az alábbi eseménykezelőket definiáltam: function x_fff_kimenet(s_kimenet) { //AZ FFF NAPLÓSZERŰEN KIMENETET KÜLD A MŰVELETEKRŐL. EZEKET KAPHATJUK MEG EBBEN A VÁLTOZÓBAN. //A VÁLTOZÓBAN A MINDIG A TELJES EDDIGI KIMINET VAN BENNE, TEHÁT NEM INKREMENTÁLISAN } function x_fff_aktualis(s_aktualis) { //AZ AKTUÁLISAN FELTÖLTŐDŐ FÁJLHOZ TARTOZÓ INFORMÁCIÓS SZÖVEGMEZŐ TARTALMÁT KAPHATJUK EL } function x_fff_total(s_total) { //A TELJES FOLYAMATHOZ TARTOZÓ SZÖVEGMEZŐ TARTALMÁT KAPHATJUK EL } function x_fff_on_select() { //A FÁJLOK KIVÁLASZTÁSAKOR LEFUTÓ ESEMÉNY } function x_fff_on_select_merethiba(s_fajlnev) { //HA A FÁJLOK KIVÁLASZTÁSAKOR A MEGENGEDETT MÉRETNÉL (100MB) NAGYOBB FÁJLT VÁLASZTUNK KI } function x_fff_on_select_siker(s_fajlnev) { //A SIKERESEN KIVÁLASZTOTT FÁJLOK KIVÁLASZTÁSAKOR FUT LE } function x_fff_on_cancel() { //HA A TALLÓZÁSI ABLAKNÁL A MÉGSE GOMBRA KATTINTUNK } function x_fff_on_open(s_fajlnev) { //A FELTÖLTÉS MEGKEZÉSE ELŐTTI PILLANATBAN A HELYI FÁJLT MEG KELL NYITNI. EKKOR FUT LE EZ AZ ESEMÉNYKEZELŐ } function x_fff_on_progress_ido(i_ido_aktualis_elmult, i_ido_teljes_elmult, i_ido_teljes_hatralevo, s_ido_aktualis_elmult, s_ido_teljes_elmult, s_ido_teljes_hatralevo) { //A FELTÖLTÉSI FOLYAMAT KÖZBEN ISMÉTLŐDŐEN LEFUTÓ ESEMÉNYKEZELŐ, AMELY AZ FOLYAMAT IDŐTARTAMÁRÓL AD INFORMÁCIÓKAT //i_ido_aktualis_elmult - AZ AKTUÁLISAN FELTÖLTŐDŐ FÁJL MENNYI IDEJE TÖLTŐDIK - INTEGER MÁSODPERCBEN //i_ido_teljes_elmult - A TELJES FELTÖLTŐDÉSI FOLYAMAT MENNYI IDŐT VETT IGÉNYBE - INTEGER MÁSODPERCBEN //i_ido_teljes_hatralevo - A TELJES FOLYAMAT HÁTRALÉVŐ IDEJE - INTEGER MÁSODPERCBEN //s_ido_aktualis_elmult - AZ AKTUÁLISAN FELTÖLTŐDŐ FÁJL MENNYI IDEJE TÖLTŐDIK - STREING FORMÁBAN, Ó:P:MP FORMÁBAN //s_ido_teljes_elmult - A TELJES FELTÖLTŐDÉSI FOLYAMAT MENNYI IDEJE TÖLTŐDIK - STREING FORMÁBAN, Ó:P:MP FORMÁBAN //s_ido_teljes_hatralevo - A TELJES FELTÖLTŐDÉSI FOLYAMAT HÁTRELÉVŐ IDEJE - STRING FORMÁBAN, Ó:P:MP FORMÁBAN } function x_fff_on_progress_sebesseg(i_sebesseg_aktualis, i_sebesseg_teljes, s_sebesseg_aktualis, s_sebesseg_teljes) { //A FELTÖLTÉSI FOLYAMAT KÖZBEN ISMÉTLŐDŐEN LEFUTÓ ESEMÉNYKEZELŐ, AMELY AZ FOLYAMAT ÁTVITELI SEBESSÉGÉRŐL AD INFORMÁCIÓKAT //i_sebesseg_aktualis AZ AKTUÁLIS FÁJL FELTÖLTÉSI SEBESSÉGE INTEGER BÁJT/S-BEN //i_sebesseg_teljes A TELJES FOLYAMATRA ÉRTELMEZETT FELTÖLTÉSI SEBESSÉG INTEGER BÁJT/S-BAN //s_sebesseg_aktualis AZ AKTUÁLIS FÁJL FELTÖLTÉSI SEBESSÉGE STRING MÉRTÉKESGYSÉGGEEL ELLÁTVA //s_sebesseg_teljes A TELJES FOLYAMATRA ÉRTELMEZETT FELTÖLTÉSI SEBESSÉG STRING MÉRTÉKEGYSÉGGEL ELLÁTVA } function x_fff_on_progress_meret(i_akt_feltoltott, i_akt_teljes, i_tel_feltoltott, i_tel_teljes, s_akt_feltoltott, s_akt_teljes, s_tel_feltoltott, s_tel_teljes) { //A FELTÖLTÉSI FOLYAMAT KÖZBEN ISMÉTLŐDŐEN LEFUTÓ ESEMÉNYKEZELŐ, AMELY AZ FOLYAMAT ÁLTAL ÁTADOTT ADATMENNYISÉGRŐL AD INFÓKAT //i_akt_feltoltott AZ AKTUÁLISAN FELTÖLTŐDŐ FÁJLBÓL EDDIG HÁNY BÁJT TÖLTŐDÖTT FEL - INTEGER BÁJTBAN //i_akt_teljes AZ AKTUÁLISAM FELTÖLTŐDŐ FÁJL TELJES MÉRETE //i_tel_feltoltott A TELEJES FOLYAMATBÓL HÁNY BÁJT TÖLTŐDÖTT FEL //i_tel_teljes A TELJES FOLYAMTBAN RÉSZTVEVŐ FÁJLOK ÖSSZES FÁJLMÉRETE //s_akt_feltoltott AZ AKTUÁLISAN FELTÖLTŐDŐ FÁJLBÓL EDDIG HÁNY BÁJT TÖLTŐDÖTT FEL - STRING, MÉRTÉKEGYSÉGGEL ELLÁTOTT, FORMÁZOTT MÓDON //s_akt_teljes AZ AKTUÁLISAM FELTÖLTŐDŐ FÁJL TELJES MÉRETE - STRING, MÉRTÉKEGYSÉGGEL ELLÁTOTT, FORMÁZOTT MÓDON //s_tel_feltoltott A TELEJES FOLYAMATBÓL HÁNY BÁJT TÖLTŐDÖTT FEl - STRING, MÉRTÉKEGYSÉGGEL ELLÁTOTT, FORMÁZOTT MÓDON //s_tel_teljes A TELJES FOLYAMTBAN RÉSZTVEVŐ FÁJLOK ÖSSZES FÁJLMÉRETE - STRING, MÉRTÉKEGYSÉGGEL ELLÁTOTT, FORMÁZOTT MÓDON } function x_fff_on_complete_akt(s_fajlnev) { //AZ AKTUÁLIS FELTÖLTŐDŐ FÁJL VÉGÉRE ÉRVE FUT LE } function x_fff_oncomplete_tel() { //A TELJES FOLYAMAT VÉGÉRE ÉRVE FUT LE } function x_fff_on_error_http(s_fajlnev, s_hibakod) { //HTTP HIBA ESETÉN FUT LE } function x_fff_on_error_io(s_fajlnev, s_hibakod) { //IO HIBA ESETÉN FUT LE } function x_fff_on_error_sec(s_fajlnev, s_hibauzenet) { //BIZTONSÁGI VAGY JOGOSULTSÁGI HIBA ESETÉN FUT LE } 6. lépés AMIKOR A FLASH MEGHÍVJA A PHP FÁJLT, AKKOR EGY KÜLÖN BÖNGÉSZŐKÉNT VISELKEDIK. EZÉRT NEM UGYABBAN A SESSION-BEN VAN, AMIBEN AZ ŐT TÁROLÓ PHP OLDAL. EZÉRT A SESSION FELÉPÍTÉSÉT EGY WORKAROUNDDAL KELL MEGOLDANI. A FLASH-NEK PARAMÉTERKÉNT ÁT KELL ADNI A SESSION AZONOSÍTÓT, ÉS A FELDOLGOZÓ PHP OLDALON EZT EGY GETTEL KI KELL NYERNI. VISZONT EZEKENEK A PHP FÁJLOKNAK ÁLTALÁBAN A MODUL CSATOLÓJÁBAN VAN A session_start() HÍVÁS. EZÉRT A SESSIONAZONOSÍTÓ BEÁLLÍTÁSÁT AZ ALÁBBIAK SZERINT KELL ELVÉGEZNI A CSATOLÓBAN, ANNAK LEGELEJÉN. if($_GET["session_id"] != NULL) { session_id($_GET["session_id"]); } session_start(); //EZ KORÁBBAN IS OTT VOLT, AZ 1. SORBAN.