1.Wprowadzanie
Ukazana w tym kursie dynamiczna Księga Gości wykorzystuje plik XML do przechowywania wiadomości, jej silnik jest w całości napisany w AS3 oraz korzysta z PHP. Nie ma potrzeby wykorzystywać tutaj żadnych baz danych, ponieważ XML to alternatywa dla tego.
Przykład ON-LINE:
Co więc nauczysz się w tym kursie?
- poznasz podstawowe funkcje języka ActionScript 3.0 (który jednak nie jest już tak łatwy jak AS2)
- poznasz sposoby na wczytanie pliku bezpośrednio do pliku Flash oraz odczytać jego zawartość
- poznasz jak używać tablic w AS3
- nauczysz się korzystać z wbudowanych komponentów Flashou takich jak: scroll oraz button
- na końcu dowiesz się jak połączyć PHP i AS3 aby wysłać część XML do pliku a ten zapisze XML dane.
Całkiem sporo do nauki jak na jeden tutorial, dlatego ten kurs jest przeznaczony już dla bardziej zaawansowanych użytkowników. Jednak jeśli jesteś nowicjusze to wtedy również możesz użyć skryptu przez użycie specjalnego kontrolera w kodzie gdzie będziesz musiał tylko zmienić ścieżki dostępów do plików XML oraz PHP.
Gotowi do nauki? ;]
Listing
Ranga: Administrator serwisu Punktów: 0
- Zobacz kod dodany do tego wpisu
-
Error #2044: Unhandled ioError:. text=
Error #2032: Stream Error. URL: file:///<sciezka do pliku na dysku>/flash/wiadomosci.xml?ck=1243173607734
at guestbook_fla::MainTimeline/guestbook_fla::frame1()
-
- Zobacz kod dodany do tego wpisu
-
ścieżka wzgledna:
wiadomosci.xml
ścieżka bezwzgledna:
C:\katalog\wiadomosci.html
-
- Zobacz kod dodany do tego wpisu
-
Imie.reverse();
Tytul.reverse();
Data.reverse();
Tekst.reverse();
-
- Zobacz kod dodany do tego wpisu
-
var sciezka_do_pliku_XML = "http://wewa.pl/01/wiadomosci.xml";
var sciezka_do_pliku_PHP = "http://wewa.pl/01/ksiega.php";
var pierwsza_wiadomosc:String = "Wpisz się do księgi..";
//////////////NIE DO EDYCJI /////////////////
imie_input.text = "";
tytul_input.text = "";
tekst_input.text = "";
pole_txt.htmlText = pierwsza_wiadomosc;
var cache_killer:String = "?ck="+ new Date().getTime();
var plikXML:URLRequest = new URLRequest(sciezka_do_pliku_XML+cache_killer);
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, plik_wczytany);
addEventListener(Event.ENTER_FRAME, sprawdzaj);
wyslij_btn.enabled = false;
wyslij_btn.addEventListener(MouseEvent.MOUSE_UP, wyslij_dane);
loader.load(plikXML);
var wiadomosci:XML = new XML();
wiadomosci.ignoreWhitespace = true;
var xmlList:XMLList;
var Imie:Array = new Array();
var Tytul:Array = new Array();
var Data:Array = new Array();
var Tekst:Array = new Array();
function plik_wczytany(e:Event):void {
wiadomosci = XML(e.target.data);
xmlList = wiadomosci.children();
for (var i:int=0; i<xmlList.length(); i++) {
var xmlImie:String = xmlList[i].imie;
var xmlTytul:String = xmlList[i].tytul;
var xmlData:String = xmlList[i].data;
var xmlTekst:String = xmlList[i].tekst;
Imie.push(xmlImie);
Tytul.push(xmlTytul);
Data.push(xmlData);
Tekst.push(xmlTekst);
if (i == xmlList.length() -1) {
aktualizacja();
}
}
}
function aktualizacja():void {
Imie.reverse();
Tytul.reverse();
Data.reverse();
Tekst.reverse();
pole_txt.htmlText = "";
for (var i:int = 0; i<xmlList.length(); i++) {
pole_txt.htmlText += ("<b><u>Imię:</u></b> " + Imie[i]);
pole_txt.htmlText += ("<b><u>Tytul:</u></b> " + Tytul[i]);
pole_txt.htmlText += ("<b><u>Data:</u></b> " + Data[i]);
pole_txt.htmlText += ("<b><u>Wiadomość:</u></b> " + Tekst[i]);
pole_txt.htmlText += ("..........................................................................................");
}
scroll.scrollTarget = pole_txt;
}
function sprawdzaj(e:Event):void {
if (imie_input.text != "" && tytul_input.text != "" && tekst_input.text != "") {
wyslij_btn.enabled = true;
}
}
function wyslij_dane(e:MouseEvent):void {
var dzisiaj:Date = new Date();
var miesiac:uint = dzisiaj.getMonth();
var miesiace:Array = new Array("Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień");
var dzisiejsza_data:String = (dzisiaj.getDate()+" "+miesiace[miesiac]+" "+dzisiaj.getFullYear());
var nowa_pozycja:XML = XML("<wiadomosc><imie>" + imie_input.text + "</imie><tytul>" + tytul_input.text + "</tytul><data>"+ dzisiejsza_data + "</data><tekst>" + tekst_input.text + "</tekst></wiadomosc>");
wiadomosci.appendChild(nowa_pozycja);
var plikPHP:URLRequest = new URLRequest(sciezka_do_pliku_PHP+cache_killer);
plikPHP.data = wiadomosci;
plikPHP.contentType = "text/xml";
plikPHP.method = URLRequestMethod.POST;
var loader2:URLLoader = new URLLoader();
loader2.load(plikPHP);
loader2.addEventListener(Event.COMPLETE, plik_wczytany2);
}
function plik_wczytany2(e:Event) :void {
Imie = [];
Tytul = [];
Data = [];
Tekst = [];
imie_input.text = "";
tytul_input.text = "";
tekst_input.text = "";
wyslij_btn.enabled = false;
pole_txt.htmlText = "";
loader.load(plikXML);
}
-
- Zobacz kod dodany do tego wpisu
-
if (i == xmlList.length() -1) {
}
//pozostaw natomiast wpis: aktualizacja();
-
- Zobacz kod dodany do tego wpisu
-
/////////////////////////////////////////////
//////////// KONTROLER SKRYPTU /////////////
///////////////////////////////////////////
//Określ dostęp do twoich plików XML i PHP
//////////////////////////////////////////
var sciezka_do_pliku_XML = "http://localhost/phpflash/ksiega_gosci_w_xml/wiadomosci.xml";
var sciezka_do_pliku_PHP = "http://localhost/phpflash/ksiega_gosci_w_xml/ksiega.php";
var pierwsza_wiadomosc:String = "Wpisz się do księgi..";
//skrypt pobrany ze strony: http://Funkcje.net
//////////////NIE DO EDYCJI /////////////////
imie_input.text = "";
tytul_input.text = "";
tekst_input.text = "";
pole_txt.htmlText = pierwsza_wiadomosc;
var cache_killer:String = "?ck="+ new Date().getTime();
var plikXML:URLRequest = new URLRequest(sciezka_do_pliku_XML+cache_killer);
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, plik_wczytany);
addEventListener(Event.ENTER_FRAME, sprawdzaj);
wyslij_btn.enabled = false;
wyslij_btn.addEventListener(MouseEvent.MOUSE_UP, wyslij_dane);
loader.load(plikXML);
var loader2:URLLoader = new URLLoader();
loader2.addEventListener(Event.COMPLETE, plik_wczytany2);
var pierwsze_zaladowanie:Boolean = true;
var wiadomosci:XML = new XML();
wiadomosci.ignoreWhitespace = true;
var xmlList:XMLList;
var Imie:Array = new Array();
var Tytul:Array = new Array();
var Data:Array = new Array();
var Tekst:Array = new Array();
function plik_wczytany(e:Event):void {
var dane:URLVariables = new URLVariables(loader2.data);
if (pierwsze_zaladowanie == true || dane.zapis == "ok") {
wiadomosci = XML(e.target.data);
xmlList = wiadomosci.children();
for (var i:int=0; i<xmlList.length(); i++) {
var xmlImie:String = xmlList[i].imie;
var xmlTytul:String = xmlList[i].tytul;
var xmlData:String = xmlList[i].data;
var xmlTekst:String = xmlList[i].tekst;
Imie.push(xmlImie);
Tytul.push(xmlTytul);
Data.push(xmlData);
Tekst.push(xmlTekst);
if (i == xmlList.length() -1) {
aktualizacja();
}
}
pierwsze_zaladowanie == false;
}//koniec ifa
else{
loader.load(plikXML);
}
}
function aktualizacja():void {
Imie.reverse();
Tytul.reverse();
Data.reverse();
Tekst.reverse();
pole_txt.htmlText = "";
for (var i:int = 0; i<xmlList.length(); i++) {
pole_txt.htmlText += ("<b><u>Imię:</u></b> " + Imie[i]);
pole_txt.htmlText += ("<b><u>Tytul:</u></b> " + Tytul[i]);
pole_txt.htmlText += ("<b><u>Data:</u></b> " + Data[i]);
pole_txt.htmlText += ("<b><u>Wiadomość:</u></b> " + Tekst[i]);
pole_txt.htmlText += ("..........................................................................................");
}
scroll.scrollTarget = pole_txt;
}
function sprawdzaj(e:Event):void {
if (imie_input.text != "" && tytul_input.text != "" && tekst_input.text != "") {
wyslij_btn.enabled = true;
}
}
function wyslij_dane(e:MouseEvent):void {
var dzisiaj:Date = new Date();
var miesiac:uint = dzisiaj.getMonth();
var miesiace:Array = new Array("Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień");
var dzisiejsza_data:String = (dzisiaj.getDate()+" "+miesiace[miesiac]+" "+dzisiaj.getFullYear());
var nowa_pozycja:XML = XML("<wiadomosc><imie>" + imie_input.text + "</imie><tytul>" + tytul_input.text + "</tytul><data>"+ dzisiejsza_data + "</data><tekst>" + tekst_input.text + "</tekst></wiadomosc>");
wiadomosci.appendChild(nowa_pozycja);
var plikPHP:URLRequest = new URLRequest(sciezka_do_pliku_PHP+cache_killer);
plikPHP.data = wiadomosci;
plikPHP.contentType = "text/xml";
plikPHP.method = URLRequestMethod.POST;
loader2.load(plikPHP);
loader2.addEventListener(Event.COMPLETE, plik_wczytany2);
}
function plik_wczytany2(e:Event) :void {
Imie = [];
Tytul = [];
Data = [];
Tekst = [];
imie_input.text = "";
tytul_input.text = "";
tekst_input.text = "";
wyslij_btn.enabled = false;
pole_txt.htmlText = "";
loader.load(plikXML);
}
-
- Zobacz kod dodany do tego wpisu
-
>> tekst_input.text = "";
>> tekst_input.text = "";
>> var nowa_pozycja:XML = XML("<wiadomosc><imie>" + imie_input.text + "</imie><tytul>" + tytul_input.text + "</tytul><data>"+ dzisiejsza_data + "</data><tekst>" + tekst_input.text + "</tekst></wiadomosc>");
>> if (imie_input.text != "" && tytul_input.text != "" && tekst_input.text != "") {
-
- Zobacz kod dodany do tego wpisu
-
var sciezka_do_pliku_XML = "http://funkcjenet.boo.pl/funkcjenet/ksiega_gosci_w_xml/wiadomosci.xml";
var sciezka_do_pliku_PHP = "http://funkcjenet.boo.pl/funkcjenet/ksiega_gosci_w_xml/ksiega.php";
var pierwsza_wiadomosc:String = "Wpisz się do księgi..";
imie_input.text = "";
tytul_input.text = "";
tekst_input.text = "";
pole_txt.htmlText = pierwsza_wiadomosc;
var plikXML:URLRequest = new URLRequest(sciezka_do_pliku_XML);
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, plik_wczytany);
addEventListener(Event.ENTER_FRAME, sprawdzaj);
wyslij_btn.enabled = false;
wyslij_btn.addEventListener(MouseEvent.MOUSE_UP, wyslij_dane);
try {
loader.load(plikXML);
}catch(e:Error) {
pole_txt.htmlText = "błąd";
}
var wiadomosci:XML = new XML();
wiadomosci.ignoreWhitespace = true;
var xmlList:XMLList;
var Imie:Array = new Array();
var Tytul:Array = new Array();
var Data:Array = new Array();
var Tekst:Array = new Array();
function plik_wczytany(e:Event):void {
wiadomosci = XML(e.target.data);
xmlList = wiadomosci.children();
for (var i:int=0; i<xmlList.length(); i++) {
var xmlImie:String = xmlList[i].imie;
var xmlTytul:String = xmlList[i].tytul;
var xmlData:String = xmlList[i].data;
var xmlTekst:String = xmlList[i].tekst;
Imie.push(xmlImie);
Tytul.push(xmlTytul);
Data.push(xmlData);
Tekst.push(xmlTekst);
if (i == xmlList.length() -1) {
aktualizacja();
}
}
}
function aktualizacja():void {
Imie.reverse();
Tytul.reverse();
Data.reverse();
Tekst.reverse();
var buffor:String = "";
pole_txt.htmlText = "";
for (var i:int = 0; i<xmlList.length(); i++) {
buffor += "<b><u>Imię:</u></b> " + Imie[i];
buffor += "<br /><b><u>Tytul:</u></b> " + Tytul[i];
buffor += "<br /><b><u>Data:</u></b> " + Data[i];
buffor += "<br /><b><u>Wiadomość:</u></b> " + Tekst[i];
buffor += "<br />..........................................................................................<br />";
}
pole_txt.htmlText = buffor;
scroll.scrollTarget = pole_txt;
}
function sprawdzaj(e:Event):void {
if (imie_input.text != "" && tytul_input.text != "" && tekst_input.text != "") {
wyslij_btn.enabled = true;
}
}
function wyslij_dane(e:MouseEvent):void {
var dzisiaj:Date = new Date();
var miesiac:uint = dzisiaj.getMonth();
var miesiace:Array = new Array("Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień");
var dzisiejsza_data:String = (dzisiaj.getDate()+" "+miesiace[miesiac]+" "+dzisiaj.getFullYear());
var nowa_pozycja:XML = XML("<wiadomosc><imie>" + imie_input.text + "</imie><tytul>" + tytul_input.text + "</tytul><data>"+ dzisiejsza_data + "</data><tekst>" + tekst_input.text + "</tekst></wiadomosc>");
wiadomosci.appendChild(nowa_pozycja);
var plikPHP:URLRequest = new URLRequest(sciezka_do_pliku_PHP);
plikPHP.data = wiadomosci;
plikPHP.contentType = "text/xml";
plikPHP.method = URLRequestMethod.POST;
var loader2:URLLoader = new URLLoader();
loader2.load(plikPHP);
loader2.addEventListener(Event.COMPLETE, plik_wczytany2);
}
function plik_wczytany2(e:Event) :void {
Imie = [];
Tytul = [];
Data = [];
Tekst = [];
imie_input.text = "";
tytul_input.text = "";
tekst_input.text = "";
wyslij_btn.enabled = false;
pole_txt.htmlText = "";
loader.load(plikXML);
}
-