\"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('');
}
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.