Po nazivu taga koji ima rekao bih da bi to trebao da bude php fajl (iako je za atribut src navedena vrednost "fake.txt" što ukazuje na tekstualni fajl):
Code: <phpFile src="fake.txt"/>
Sve ostalo je prilično jasno: u atributima settings taga definišeš stil forme, a u ostalim tagovima određuješ tekst koji će se prikazivati na njenim poljima. Znači da ti nedostaje php fajl koji će prikupiti podatke sa forme i prosediti ga dalje. U "contact" klasi u metodi "sendMassage" deklarisana je promenljiva "loc8" koja predstavlja URLRequest objekat kojim se poziva pomenuti fajl "fake.txt" iz XML-a:
Code: loc8 = new flash.net.URLRequest(this._xml.child("phpFile").src);
Promenljive koje se iz flasha šalju trebao bi da učita php. Taj fajl bi mogao da izgleda ovako:
Reci mi samo da li fajl treba da bude fake.txt ili fake.php, jer sam ja probao sa nekim php, ali ocigledano nisam pogodio parametre.
I da li u ovom primeru koji si mi dao treba negde da upisem moj email ili je to u okviru contact.xml fajla (treca linija odozdo).
Možeš da dekompajliraš taj swf, kao što sam i ja uradio. Nakon toga dobićeš prazan fla fajl kome je osnovna klasa (document class) "Contact" u kojoj se nalazi kod koji treba da izmeniš. Na početku ove teme napisao si da si preuzeo XML galeriju, pa me interesuje da li si uopšte dobio neke fajlove uz njega osim swf i xml fajla? Možda je taj templejt neko ripovao sa nekog sajta pa zato nema svih potrebnih fajlova.
Potpis
Uspeo sam da dekompajliram i dobio contact.as
Sada mi nije jasno gde da dodam onaj code koji si mi napisao malopre?
Da li je ceo code nov ili samo treba da dodam neku liniju, jer ja ne vidim takav code samo imam ovo :
public class Contact extends Sprite
{
private var _xml:XML;
private var _settings:XMLList;
private var _css:StyleSheet;
private var _background:Sprite;
private var _nameArea:TextInputArea;
private var _emailArea:TextInputArea;
private var _subjectArea:TextInputArea;
private var _messageArea:TextInputArea;
private var _pageTitle:pageTitle;
private var _sendBtn:SendButton;
private var _bgColor:ColorTransform;
private var _lineColor:ColorTransform;
private var _sendBgColor:ColorTransform;
private var _sendLineColor:ColorTransform;
private var _origTextColor:int;
private var _name:String = "Type your name";
private var _email:String = "Type your email";
private var _subject:String = "Type your subject";
private var _message:String = "Type your message";
private var _otherInfo:TextField;
public function Contact()
{
if (stage)
{
this.init();
}
else
{
addEventListener(Event.ADDED_TO_STAGE, this.init);
}// end else if
addEventListener(Event.REMOVED_FROM_STAGE, this.removedFromStage);
return;
}
public override function get height() : Number
{
return this._background.height;
}
public override function get width() : Number
{
return this._background.width;
}
private function init(param1:Event = null) : void
{
ColorShortcuts.init();
var _loc_2:* = new URLLoader();
_loc_2.load(new URLRequest(GlobalVar.xmlAddress));
_loc_2.addEventListener(Event.COMPLETE, this.xmlLoaded);
return;
}
private function xmlLoaded(param1:Event) : void
{
this._xml = XML(param1.target.data);
this._settings = this._xml.child("settings");
var _loc_2:* = new URLLoader();
_loc_2.load(new URLRequest("style.css"));
_loc_2.addEventListener(Event.COMPLETE, this.cssLoaded);
return;
}
private function cssLoaded(param1:Event) : void
{
this._css = new StyleSheet();
this._css.parseCSS(param1.target.data);
this.addElements();
return;
}
private function onFocus(param1:FocusEvent) : void
{
this.setName();
if (param1.target.text == this._name)
{
this._nameArea.textArea.text = "";
Tweener.addTween(this._nameArea.bgFill, {_color:this._settings.@textInputBgColorOnFocus, alpha:this._settings.@textInputBgOpacityOnFocus / 100, time:0.4});
Tweener.addTween(this._nameArea.bgLine, {_color:this._settings.@textInputLineColorOnFocus, time:0.4});
this._nameArea.textArea.textColor = this._settings.@textInputTextColorOnFocus;
}// end if
if (param1.target.text == this._email || param1.target.text == "Email is not valid")
{
this._emailArea.textArea.text = "";
Tweener.addTween(this._emailArea.bgFill, {_color:this._settings.@textInputBgColorOnFocus, alpha:this._settings.@textInputBgOpacityOnFocus / 100, time:0.4});
Tweener.addTween(this._emailArea.bgLine, {_color:this._settings.@textInputLineColorOnFocus, time:0.4});
this._emailArea.textArea.textColor = this._settings.@textInputTextColorOnFocus;
}// end if
if (param1.target.text == this._subject)
{
this._subjectArea.textArea.text = "";
Tweener.addTween(this._subjectArea.bgFill, {_color:this._settings.@textInputBgColorOnFocus, alpha:this._settings.@textInputBgOpacityOnFocus / 100, time:0.4});
Tweener.addTween(this._subjectArea.bgLine, {_color:this._settings.@textInputLineColorOnFocus, time:0.4});
this._subjectArea.textArea.textColor = this._settings.@textInputTextColorOnFocus;
}// end if
if (param1.target.text == this._message)
{
this._messageArea.textArea.text = "";
Tweener.addTween(this._messageArea.bgFill, {_color:this._settings.@textInputBgColorOnFocus, alpha:this._settings.@textInputBgOpacityOnFocus / 100, time:0.4});
Tweener.addTween(this._messageArea.bgLine, {_color:this._settings.@textInputLineColorOnFocus, time:0.4});
this._messageArea.textArea.textColor = this._settings.@textInputTextColorOnFocus;
}// end if
return;
}
private function setName() : void
{
if (this._nameArea.textArea.text == "")
{
this._nameArea.textArea.text = this._name;
Tweener.addTween(this._nameArea.bgFill, {_color:this._settings.@textInputBgColor, alpha:this._settings.@textInputBgOpacity / 100, time:0.4});
Tweener.addTween(this._nameArea.bgLine, {_color:this._settings.@textInputLineColor, time:0.4});
this._nameArea.textArea.textColor = this._settings.@textInputTextColor;
}// end if
if (this._emailArea.textArea.text == "")
{
this._emailArea.textArea.text = this._email;
Tweener.addTween(this._emailArea.bgFill, {_color:this._settings.@textInputBgColor, alpha:this._settings.@textInputBgOpacity / 100, time:0.4});
Tweener.addTween(this._emailArea.bgLine, {_color:this._settings.@textInputLineColor, time:0.4});
this._emailArea.textArea.textColor = this._settings.@textInputTextColor;
}// end if
if (this._subjectArea.textArea.text == "")
{
this._subjectArea.textArea.text = this._subject;
Tweener.addTween(this._subjectArea.bgFill, {_color:this._settings.@textInputBgColor, alpha:this._settings.@textInputBgOpacity / 100, time:0.4});
Tweener.addTween(this._subjectArea.bgLine, {_color:this._settings.@textInputLineColor, time:0.4});
this._subjectArea.textArea.textColor = this._settings.@textInputTextColor;
}// end if
if (this._messageArea.textArea.text == "")
{
this._messageArea.textArea.text = this._message;
Tweener.addTween(this._messageArea.bgFill, {_color:this._settings.@textInputBgColor, alpha:this._settings.@textInputBgOpacity / 100, time:0.4});
Tweener.addTween(this._messageArea.bgLine, {_color:this._settings.@textInputLineColor, time:0.4});
this._messageArea.textArea.textColor = this._settings.@textInputTextColor;
}// end if
return;
}
private function validateEmail(param1:String) : Boolean
{
if (param1.length >= 10)
{
if (param1.indexOf("@") > 1)
{
if (param1.indexOf("@") + 2 < param1.indexOf("."))
{
if (param1.lastIndexOf(".") < param1.length - 2)
{
return true;
}// end if
}// end if
}// end if
}// end if
return false;
}
Vidi se lepo. Ja bih ti preporučio da uzmeš neku jednostavniju kontakt formu nego da se mučiš sa ovom. Imam jednu takvu pa ako si zainteresovan mogu ti je postaviti ovde.
Potpis
ivanpro: Glupo je da te pitam, da li bi ti promenio i spakovao u swf, mada bih vise voleo da mi objasnis kako se to radi.
E da je sve tako jednostavno... To bi značilo da bi trebao da pregledam sve klase da bih utvrdio šta je "pisac hteo da kaže", a to bi zahtevalo previše slobodnog vremena koga nema dovoljno. Da imaš originalni projekat možda bih i mogao, ali ovakve dekompajlirane verzije nije zahvalno prerađivati, jer se dogodi da zafali neki fajl koji se nalazi u nekom drugom folderu a nije uključen u swf. Kada testiram dobijam grešku koja ukazuje na ovu liniju koda:
ivanpro: Znaci ipak je najbolje da batalim ovo ???
Da izbacim formu i uradim obican text kontakt (mailto: ............ )
Reci mi zasto (ako znas iz ovog sto si video) nece da prihvati drugu kontakt formu?
Zato što je i ovaj originalni bagovit i neće ni on da funkcioniše kako bi trebalo. Evo kako možeš jednostavno, a opet lepo, da odradiš kontakt formu: napravi 4 dinamičkih tekst polja - za ime, email, naslov poruke i poruka koje imaju nazive instanci "ime_txt", "email_txt", "naslovPoruke_txt" i "poruka_txt", respektivno. Dodaj i jedan taster za slanje podataka (submit) sa nazivom instance "posalji_btn". Unesi sledeći kod:
Code: // kreiraj URLVariables objekat koji sluzi za definisanje promenljivih koje zelis da posaljes php-u
var promenljive:URLVariables = new URLVariables();
// definisanje URL-a php fajla kome saljemo podatke
var email:URLRequest = new URLRequest("email.php");
posalji_btn.addEventListener(MouseEvent.CLICK, slanjePodataka);
function slanjePodataka(event:Event):void
{
// definisanje promenljivih koje saljes php-u koje ce imati vrednosti koje su unete u tekstualna polja
promenljive.korisnickoIme = ime_txt.text;
promenljive.korisnikovEmail = email_txt.text;
promenljive.naslovPoruke = "naslovPoruke_txt.text";
promenljive.poruka = "poruka_txt.text";
// dodaj promenljive koje treba da prosledis php-u
email.data = promenljive;
// navedi POST metod za slanje
email.method = URLRequestMethod.POST;
// slanje podataka php-u
sendToURL(email);
}
Da bi testirao formu moraš da je postaviš na server. Takođe je moguće da ubaciš još jednu polje gde ćeš ispisivati status (na primer: poruka je poslata), a možeš i da proveravaš da li su sva polja ispunjena pre nego što se pošalju.
Potpis
ivanpro:Reci mi zasto (ako znas iz ovog sto si video) nece da prihvati drugu kontakt formu?
Zato što je i ovaj originalni bagovit i neće ni on da funkcioniše kako bi trebalo. Evo kako možeš jednostavno, a opet lepo, da odradiš kontakt formu: napravi 4 dinamičkih tekst polja - za ime, email, naslov poruke i poruku, koje imaju nazive instanci "ime_txt", "email_txt", "naslovPoruke_txt" i "poruka_txt", respektivno. Dodaj i jedan taster za slanje podataka (submit) sa nazivom instance "posalji_btn". Unesi sledeći kod:
Code: // kreiraj URLVariables objekat koji sluzi za definisanje promenljivih koje zelis da posaljes php-u
var promenljive:URLVariables = new URLVariables();
// definisanje URL-a php fajla kome saljemo podatke
var email:URLRequest = new URLRequest("email.php");
posalji_btn.addEventListener(MouseEvent.CLICK, slanjePodataka);
function slanjePodataka(event:Event):void
{
// definisanje promenljivih koje saljes php-u koje ce imati vrednosti koje su unete u tekstualna polja
promenljive.korisnickoIme = ime_txt.text;
promenljive.korisnikovEmail = email_txt.text;
promenljive.primalac = "OVDE UNESI SVOJ EMAIL";
promenljive.naslovPoruke = "naslovPoruke_txt.text";
promenljive.poruka = "poruka_txt.text";
// dodaj promenljive koje treba da prosledis php-u
email.data = promenljive;
// navedi POST metod za slanje
email.method = URLRequestMethod.POST;
// slanje podataka php-u
sendToURL(email);
}
ivanpro: Znaci ipak je najbolje da batalim ovo ???
Da izbacim formu i uradim obican text kontakt (mailto: ............ )
Reci mi zasto (ako znas iz ovog sto si video) nece da prihvati drugu kontakt formu?
Zato što je i ovaj originalni bagovit i neće ni on da funkcioniše kako bi trebalo. Evo kako možeš jednostavno, a opet lepo, da odradiš kontakt formu: napravi 4 dinamičkih tekst polja - za ime, email, naslov poruke i poruka koje imaju nazive instanci "ime_txt", "email_txt", "naslovPoruke_txt" i "poruka_txt", respektivno. Dodaj i jedan taster za slanje podataka (submit) sa nazivom instance "posalji_btn". Unesi sledeći kod:
Code: // kreiraj URLVariables objekat koji sluzi za definisanje promenljivih koje zelis da posaljes php-u
var promenljive:URLVariables = new URLVariables();
// definisanje URL-a php fajla kome saljemo podatke
var email:URLRequest = new URLRequest("email.php");
posalji_btn.addEventListener(MouseEvent.CLICK, slanjePodataka);
function slanjePodataka(event:Event):void
{
// definisanje promenljivih koje saljes php-u koje ce imati vrednosti koje su unete u tekstualna polja
promenljive.korisnickoIme = ime_txt.text;
promenljive.korisnikovEmail = email_txt.text;
promenljive.primalac = "OVDE UNESI SVOJ EMAIL";
promenljive.naslovPoruke = "naslovPoruke_txt.text";
promenljive.poruka = "poruka_txt.text";
// dodaj promenljive koje treba da prosledis php-u
email.data = promenljive;
// navedi POST metod za slanje
email.method = URLRequestMethod.POST;
// slanje podataka php-u
sendToURL(email);
}
Hvala ti na vremenu i trudu, ali meni nesto ovde ne ide ????
Imam problem prilikom dekompajliranja swf-a. Korisitim Sothink SWF Decompiler 4.0, i kada ubacim contact.swf, ja imam samo sivu pozadinu, ne vidim nikakav video ? Kada to exportujem u fla i otvorim u Adobe Flash-u opet je samo siva pozadina i nista vise ne mogu da promenim. ???
Reci mi gde gresim? Da li je ovaj dekomp. ok ili mi treba nesto drugo?
Da li si ti uspeo da dekomp. i da li mozes da editujes ?
Uspešno sam dekompajlirao taj projekat, ali ni kod mene ne funkcioniše. Prijavljuje grešku baš tamo gde sam ti objasnio u jednom od prethodnih odgovora.
Potpis