Formularz kontaktowy we Flash w SWiSH Max / Komunikacja z PHP
W poniższym przykładzie przygotujemy formularz kontaktowy, ktory wyśle informacje do strony PHP i odbierze od niej wynik. Strona PHP wyśle e-mail do właściciela strony.
- Załóż nowy film, rozdzielczość filmy 549 x 360
- W narzędziach wybierz z autokształtów, autokształt Zaokrąglony Prostokąt. Rozciągnij go na projekcie.
- Można właczyć w Menu | Widok | Przyciąganie do Siatki do Prowadnic.
- Na lewej linijce przytrzymać przycisk myszy i przeciągnąc prwadnice, tak by oddzielała opisy pól od pól.
- Rysujemy pola wprowadzania danych:
- włączamy narzędzie tekst.
- rysujemy pole userName myszką, ustawiamy w panelu Właściwośći:
nazwę na userName, ustawiamy Cel (by być dostępne ze skryptu), czcionkę na _sens, wielkość na 10, z rozwijane listy (statyczny, dynamiczny, wprowadzany) wybieramy wprowadzany
Autorozmiar wysokości ma być wyłaczony, wysokość w liniach 1, ważne: zahaczamy ikonkę Białe Tło,czarna ramka(tak by nasz tekst wyglądał, jak biała ramka), tekst wieloliniowy wyłączony.- kopiujemy to pole i nazwamy userEmail
- kopiujemy to pole i nazwya userTresc, ale ustawiamy ikonkę tekst wieloliniowy włączony, wysokość lini na 15. - Z komponentów przeciągamy na pulpit komponent Przycisk z grupy Przyciski | Wciskane, ustawiamy tekst na Wyślij
- W panelu konspekt zaznaczamy scenę i przechodzimy do panelu Skrypt, gdzie wklajamy poniższy skrypt:
// funkcja sprawdzająca poprawność formularza
function formValidation(): boolean
{
// wyczysczenie komunikatow bledow
nameError.text = „”;
emailError.text = „”;
trescError.text = „”;
if (userName.text.length < 4) nameError.text = „Za krótka nazwa, minimum 4 znaki”;
else if (userEmail.text.length < 4) emailError.text = „Za krótki e-mail, minimum 4 znaki”;
else if (userTresc.text.length < 10) trescError.text = „Za krótka treść, minimum 10 znaków”;
else {
return true;
}
return false;
}// funkcja uruchamiana po kliknięciu przycisku
function Events(name, status)
{
if ( (name == „btnwyslij”) && formValidation() )
{var myVars:LoadVars = new LoadVars();
// ustawienie zmiennych do wysłania wartościami formularza
myVars.Name = userName.text;
myVars.Email = userEmail.text;
myVars.Message = userTresc.text;// zdjęcie wyniku , gdy Flash załaduje już wynik
myVars.onLoad = function (success)
{
if (success)
{
_root.dynamTekst.text = myVars.zwracanazmienna;
}}
// wysłanie formularz
myVars.sendAndLoad(„contact.php”, myVars, „POST”);
}
} - Teraz musimy narysować pola, w których będą się wyświetlać komunikaty:- rysujemy myszką te pola
- w Panelu Właściwości ustawiamy im opcję cel, nadajemy nazwy: dynamTekst (pole na wynik działania), nameError, emailError,trescError
- kolor czerwony, czcionka _sans, wielkość 10.
- ważne z rozwiajanej listy wybieramy Dynamiczny, teraz będzie można ustawić ten tekst ze skryptu.
Uwaga, ten przykład będzie dział poprawnie po wysłaniu pliku .swf i .php na serwer. Nie będzie działał poprawnie w podglądzie w programie, z uwagi zabezpiecznia flash playera i przeglądarek.
Parametr Base – domyślna ścieżka
W pliku źródłowym ustawiłem parametr BASE na „http://blog.swish.pl/wp-content/uploads/2011/01/” w menu Modyfikuj | Film | Właściwości | Ustawienia eksportu filmu | HTML.
Base (czyli baza) określa domyślną scieżkę, gdzie szukane są pliki, stąd też w kodzie actionscript podawane jest odwołanie do „contact.php”, a dzięki parametrowi base system wie, gdzie go szukać.
Jeśli bym nie ustawił tego parametru system by szukał tego pliku w bieżącym katalogu.