Форма за контакти на Флаш и примерно Портофолио?

sniperfan

Registered
Здравейте,

на скоро закупих готов темплейт (flash) и имам две спешни питания относно промяната на съдържанието и контактната форма:

Първо за съдържанието:

Като отидете на Портфолио, както виждате има снимки и отдолу на всяка снимка има описание (самото Портфолио) и естествено, стрелките местят различните варианти. Кода от стрелката за напред е следния:


Код:
on (rollOver) {
	gotoAndPlay("s1");
}
on (releaseOutside, rollOut) {
	gotoAndPlay("s2");
}
on (release) {
	if (_root.xkoord1>-800) {
		_root.xkoord1 -= 384;
		_parent._parent.project1.play();
		_root.pr+=1;
	}
}


Така, въпроса ми е следния: Как мога да променя самото съдържание на различните варианти Портфолио, защото никъде го няма дадено, а ги има примерно като: Value: Portfolio-read more1, Portfolio-read more2, Portfolio-read more3 и т.н.

Как мога да стигна до всяко портофолио поотделно и да променя съдържанието му? Снимките мисля, че знам как да ги оправя (просто ще заменя примерните с мои си) , а ако искам да добавя още няколко страници ще направя стрелките да местят до еди кой си номер (предполагам?)

И второто ми питане, също толкова важно е:

Как мога д анаправя бутоните в "Контакти" активни? Т.е, като въведе постетителя Името си, и-мейла, телефона и съобщението си след натискането на бутона "Submit" да изпраща тази информация на моя и-мейл ( sniperfan@gmail.com , ако ви интересува) .
Бутона "Reset" си работи.

Мисля, че това е за сега, нищо чудно да изникнат нови въпросителни, но ще съм много благодарен, ако някой се отзове, защото е спешно и в случая наистина важно!

Благодаря предварително!
 
Не мога да кажа, съвсем незапознат, защото съм се занимавал и с други подобни промени по други темплейти, но може да се каже и че съм доста начинаещ.

До колкото гледах, ще трябва да се направи един .php файл и по някакъв начин да се зададе команда към "Submit" , която да се свързва с файла и да изпрати мейл, но не съм наясно и за това питам. А до портофолиото, нямам никаква идея. :\
 
huanitomuerte,в този форум всякакви въпроси са позволени.
Човека не иска на готово, иска да се справи сам. Това е много хубаво !

Аз не мога да обясня, защото някак си ще е прекалено сложно. Бих искал .фла файл за да го направя, но това е темплейт, за който човека е платил доста и някак си не върви да го пусне във форума. Затова си мълча, съжалявам за което :roll:
 
Здравей,
сори за предния ми коментар и в знак на извинение ще се опитам да ти помогна! Това е AS2...

В ФЛА файла където ти е формата за контакти, виж дали текстовите полета са динамичен текст или са компоненти.
Сега аз ще ти дам код за да го направиш и да ти работи безотказно но само че с компоненти, същия код работи и с динамичен текст но трябва малко да пипнеш кода а ако не можеш пиши аз ще ти го оправя.

1. Извади си от Window->Components->TextInput на сцената там където ти е формата за контакти, и с това поле като го дублираш, може с CTRL+Левия бтн. на мишката -> натискаш върху него влачиш и пускаш или просто си го вади от Library, и го слагай на сцената. Целта е да замениш с него всички твои настоящи тхт. полета:
-> име
-> e-mail
-> телефон
-> дата
-> час
Без да заменяш голямото коментар!!!
Коментар го замени с Window->Components->TextArea!!!
Изтрий всичко от сцената след това което е излишно, натисни с курсор на сцената Ctrl+A за да маркираш всички обекти и дай десн бутон за да натиснеш Distribute to Layers, целта е всеки обект да си отиде на отделен леър. Последното може и да не го правиш то се прави с цел да ти е по лесно да работиш върху обектите после.
Така, ако всичко вече си го направил заключи леърите с текст, и остави откл. само леърите с компонентите.
Маркирай първото TextInput за име и напиши в пропърти бара за негово уникално име -> name_ti
За всяко следващо уникалните имена са:
име -> name_ti
e-mail -> email_ti
Телефон -> tel_ti
Дата -> dat_ti
Час -> pat_ti
Вашето съобщение или коментар -> comments_ta
//
Извади от Window->Components->Button един бутон на сцената и го дублирай два пъти, като ги поставиш на местата за "Изчисти" и "Изпрати", съответно им дай служебни имена като следва:
Изчисти -> clear_button
Изпрати -> submit_button
//
Извади от Window->Components->Alert "един алерт" и го сложи на сцената а след това го изтрий с дел. И ГЛЕДАЙ ВНИМАТЕЛНО ТОЙ ДА Е ОСТАНАЛ В БИБЛИОТЕКАТА. Целта е да е в Library защото него ще го зареждаш динамично!
Ако вече си готов огледай дали си изпълнил всичко правилно и погледни библиотеката да не си дублирал нещо грешно, там трябва да имаш по едно TextInput, TextArea, Button и Alert.
//
Отвори един празен леър и го сложи най отгоре над всичко фрейма на който пишеш трябва да е последен в анимацията там където тя ше спре и ще изпълни заявката за изпращане на писмо, та на този фрейм-> маркираш го и в панела екшън скрипт (F9), слагаш този код:
================================================

Код:
stop(); // ако искаш да спреш филма там!
import mx.controls.*;

// Това е стайл ти си го промени такто ти харесва виж хелпа
_global.styles.TextArea.setStyle("borderStyle", "0x000000", "themeColor", "0x000000");
_global.styles.TextArea.backgroundColor = undefined;
//--------------------------
var name_ti:TextInput;
var tel_ti:TextInput;
var dat_ti:TextInput;
var pat_ti:TextInput;
var email_ti:TextInput;
var comments_ta:TextArea;
var clear_button:Button;
var submit_button:Button;
var name_label:Label;
var tel_label:Label;
var email_label:Label;
var dat_label:Label;
var pat_label:Label;
var comments_label:Label;
//----------------------------------
var my_button:mx.controls.Button;
submit_button.addEventListener("resize", doSize); // Размер  на бутона
submit_button.setSize(115, 20);
clear_button.addEventListener("resize", doSize);
clear_button.setSize(115, 20);
/////==================================================
_global.styles.Button.setStyle("buttonColor", "0x000000", "borderStyle", "solid","borderColor", "none");
/////==================================================
//---------------------------------------------------------
this.name_ti.tabIndex = 1;
this.tel_ti.tabIndex = 2;
this.email_ti.tabIndex = 3;
this.dat_ti.tabIndex = 4;
this.pat_ti.tabIndex = 5;
this.comments_ta.tabIndex = 6;
this.clear_button.tabIndex = 7;
this.submit_button.tabIndex = 8;
Selection.setFocus(name_ti);
focusManager.defaultPushButton = submit_button;
post_mc.onRelease = function() {
	this._parent.gotoAndStop("post");
};
view_mc.onRelease = function() {
	this._parent.gotoAndStop("view");
};
var clearBtnListener:Object = new Object();
clearBtnListener.click = function(evt:Object) {
	name_ti.text = "";
	tel_ti.text = "";
	email_ti.text = "";
	dat_ti.text = "";
	pat_ti.text = "";
	comments_ta.text = "";
};
this.clear_button.addEventListener("click", clearBtnListener);
var postBtnListener:Object = new Object();





postBtnListener.click = function(evt:Object) {
	if (name_ti.text.length == 0) {
		Selection.setFocus(name_ti);
		Alert.show("Моля напишете вашето име.", "Грешка", Alert.OK);
		return false;
	}
	if (tel_ti.text.length == 0) {
		Selection.setFocus(tel_ti);
		Alert.show("Моля напишете вашият телефон.", "Грешка", Alert.OK);
		return false;
	}
	if (email_ti.text.length == 0) {
		Selection.setFocus(email_ti);
		Alert.show("Моля напишете вашият e-mail.", "Грешка", Alert.OK);
		return false;
	}
	if (dat_ti.text.length == 0) {
		Selection.setFocus(dat_ti);
		Alert.show("Моля напишете дата.", "Грешка", Alert.OK);
		return false;
	}
	if (pat_ti.text.length == 0) {
		Selection.setFocus(pat_ti);
		Alert.show("Моля напишете час.", "Грешка", Alert.OK);
		return false;
	}
	if (comments_ta.text.length == 0) {
		Selection.setFocus(comments_ta);
		Alert.show("Моля напишете вашето съобщение .", "Грешка", Alert.OK);
		return false;
	}
	var send_lv:LoadVars = new LoadVars();
	var result_lv:LoadVars = new LoadVars();
	send_lv.name = name_ti.text;
	send_lv.tel = tel_ti.text;
	send_lv.email = email_ti.text;
	send_lv.dat = dat_ti.text;
	send_lv.pat = pat_ti.text;
	send_lv.comments = "e-mail: "+email_ti.text+"\n"+comments_ta.text;
	send_lv.comments = "Telefon: "+tel_ti.text+"\n"+"Name: "+name_ti.text+"\n"+"za Data: "+dat_ti.text+"\n"+"za 4as: "+pat_ti.text+"\n"+"\n"+"Iziskvane : "+"\n"+"\n"+comments_ta.text+"\n";
	result_lv.onLoad = function(success:Boolean) {
		if (success) {
			name_ti.text = "";
			tel_ti.text = "";
			email_ti.text = "";
			dat_ti.text = "";
			pat_ti.text = "";
			comments_ta.text = "";
			Alert.show("Благодаря за вашето съобщение.", "Успешно", Alert.OK);
		} else {
			Alert.show("Грешка в сървара, моля ползвайте линка отдолу !.", "Server Error", Alert.OK);
		}
	};
	send_lv.sendAndLoad("mail.php", result_lv, "POST");
};
this.submit_button.addEventListener("click", postBtnListener);
/////==================================================

Тествай филма!

Отвори един празен .php файл и го кръсти mail.php

В него имаш следния код:

Код:
<?php
if (isset($_POST["name"]))
   $name=$_POST["name"];
else $name='';

if (isset($_POST["tel"]))
   $tel=$_POST["tel"];
else $tel='';

if (isset($_POST["email"]))
   $email=$_POST["email"];
else $email='';

if (isset($_POST["comments"]))
   $comments=$_POST["comments"];
else $comments='';

$comments=" E-mail: {$email} \r Mail from my site ili kakvoto si 6te6: \r \r{$comments}";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=windows-1251\r\n";
$headers .= "Mail from my site/\nReply-To:{$email}\r\n";
if (mail("Твойта поща", $name, $comments, $headers))
{
   echo "   .";
}
?>

Държа да отбележа че ПХП-то съм си го писал сам и нямам претенцията да е най добре написаното, но е факт че работя повече от успешно с него повече от 4 години и работи безотказно като трактор, но ако решиш може да го пипнеш. Мен ПХП-то не ми е сила.

Качи двата файла на сървара и тествай, ако нещо не работи пиши ще ти помогна!

п.с.
Ако искаш да махнеш дата и час или да сложиш още тхт. полета или да не ги правиш задължителни-проследи кода и променливите или пиши. Успех :?:
Извинявам се ако имам много правописни грешки пиша бързо а съм на работа :idea:

Ето ти мои сайтове в които ползвам това:

сайт 1
сайт 2
сайт 3
сайт 4
темплейти:
сайт 5
сайт 6
сайт 6
 
Така, първо и аз много благодаря за съдействието! Не очаквах така подробен отговор (както си трябва) , благодаря! :?:

Но идват и следните питанки:

1 - Направих полетата (с инфо за клиента и съобщениет) , заключих ги. Въпроса ми е за уникалните имена, от къде се въвеждат? Аз ги сложих в "Instance name" , но не ми звучи май правилното място?

2- На края на клипа правя нов слой и въвеждам дългия код, който си постнал. Явно аз не го правя правилно, защото ми дава следната грешка:

Код:
**Error** Clipboard actions:Line 3: Syntax error.
     import mx.controls.*;

**Error** Clipboard actions:Line 24: Syntax error.
     var my_button:mx.controls.Button;

**Error** Clipboard actions:Line 2: Syntax error.
     import mx.controls.*;

**Error** Clipboard actions:Line 23: Syntax error.
     var my_button:mx.controls.Button;

**Error** Clipboard actions:Line 2: Syntax error.
     import mx.controls.*;

**Error** Clipboard actions:Line 23: Syntax error.
     var my_button:mx.controls.Button;

**Error** Clipboard actions:Line 2: Syntax error.
     import mx.controls.*;

**Error** Clipboard actions:Line 23: Syntax error.
     var my_button:mx.controls.Button;

**Error** Clipboard actions:Line 2: Syntax error.
     import mx.controls.*;

**Error** Clipboard actions:Line 23: Syntax error.
     var my_button:mx.controls.Button;

**Error** Clipboard actions:Line 2: Syntax error.
     import mx.controls.*;

**Error** Clipboard actions:Line 23: Syntax error.
     var my_button:mx.controls.Button;

**Error** Clipboard actions:Line 2: Syntax error.
     import mx.controls.*;

**Error** Clipboard actions:Line 23: Syntax error.
     var my_button:mx.controls.Button;

И 3ти, последен (надявам се) въпрос тип - баш начинаещ. :\

Слагам ""Button" и той излиза с името "Button" , как мога да променя самото име и да сложа например "Изчисти" и "Изпрати" ?


И все пак много глупаво от моя страна, че не пуснах в първия си пост линк към темплейта (пробен) , просто забравих и сега като го прочетох пак видях...


http://tnt-designs.bg/proba.html

Благодаря отново!
 
1. На коя версия експортваш?

2. Уникалните имана се пишат точно там в "Instance name" при маркирани
TextInput, TextArea или Button!

3.
sniperfan каза:
2- На края на клипа правя нов слой и въвеждам дългия код, който си постнал. Явно аз не го правя правилно, защото ми дава следната грешка:
скрипта трябва да е в фрейма най-отгоре и точно на фрейма където аним. спира.

4.
sniperfan каза:
Слагам ""Button" и той излиза с името "Button" , как мога да променя самото име и да сложа например "Изчисти" и "Изпрати" ?
в пропърти бара->Parameters->Lebel....

==========================
По просто е ако качиш един zip с флато, но след като си го платил ако искаш недей... сложи поне един принт скрийн с това което правиш на адреса с демото
========================
Ето ти Fla което току що направих по това което съм ти написал по-горе и работи, пиши след като го свалиш за да го махна:
Сваляй

//
Успех!
 
Ам сори че се намесвам ама тоя mx не е ли namespace-a на флекс, който ползват адобе(и който няма да го има във флекс 4 ^_^ ) Мисля, че флаш нямаше тея библиотеки ?
 
Здравей, видях къде е проблема темплейта ти е на AS1, и затова не можеш да импортваш библиотеки.

Та почваме от начало:

1. В най горния фрейм за скрипт сложи това:
Код:
rec = "sniperfan@gmail.com";// Пощата на която да идва месиджа
serv = "php";

var fields_descriptions = Array("", Array("t1", "name", "Your Name:"), Array("t2", "email", "Your Email:"), Array("t3", "telephone", "Telephone:"), Array("t4", "message", "Message:"), Array("t5", "field_2", "E-mail:"), Array("t6", "field_3", "Address:"));



for (i=1; i<=fields_descriptions.length; i++) {
	this["k"+i].text = fields_descriptions[i][2];

2. На бутона "ресет" изтрий всичкия му скрипт вътре, клик 2 пъти в/у него има бтн. вътре свети зелено и ти е на 3 леър изтрий това:
on (rollOver)
{
gotoAndPlay("s1");
}
on (releaseOutside, rollOut)
{
gotoAndPlay("s2");
}
on (release)
{
_parent.t1_2 = "";
_parent.t2_2 = "";
_parent.t3_2 = "";
_parent.t4_2 = "";
}
върни се обратно и на mc-то отгоре а не вътре сложи:
Код:
on (rollOver) {
	this.gotoAndPlay("s1");
}
on (releaseOutside, rollOut) {
	this.gotoAndPlay("s2");
}
on (release) {
	this._parent.t1.text = "";
	this._parent.t3.text = "";
	this._parent.t2.text = "";
	this._parent.t4.text = "";

}
иди на "субмит" другия бтн. и изтрий и от него кода вътре, върни се по същия начин и на mc-то сложи:
Код:
on (rollOver) {
	this.gotoAndPlay("s1");
}
on (releaseOutside, rollOut) {
	this.gotoAndPlay("s2");
}
on (release) {
	for (i=1; i<_parent.fields_descriptions.length; i++) {
		if (_parent[_parent.fields_descriptions[i][1]] != undefined) {
			this[_parent.fields_descriptions[i][1]] = _parent[_parent.fields_descriptions[i][1]]+"&777&"+_parent.fields_descriptions[i][2];
		}
	}
	this.recipient = _parent.rec;
	delete (i);
	getURL("mail."+_parent.serv, "_blank", "POST");
}

НЕ ПИПАЙ НИЩО ДРУГО ОСТАВИ ГО КАК ТО СИ Е!

В mail.php сложи:
Код:
<?php
Error_Reporting(E_ALL & ~E_NOTICE);

 while ($request = current($_REQUEST)) {
 	if (key($_REQUEST)!='recipient') {
		$pre_array=split ("&777&",  $request);
		
		$post_vars[key($_REQUEST)][0]=preg_replace ("/<[^>]*>/", "", $pre_array[0]);
		$post_vars[key($_REQUEST)][1]=preg_replace ("/<[^>]*>/", "", $pre_array[1]);
	}
	next($_REQUEST);
}



reset($post_vars);


$subject="From ".$post_vars['name'][0] ;
$headers= "From: ".$post_vars['email'][0] ."\n";
 $headers.='Content-type: text/html; charset=utf-8';
 $message='';
  while ($mess = current($post_vars)) {
  	if ((key($post_vars)!="i") && (key($post_vars)!="email") && (key($post_vars)!="name")) {

	 	$message.="<strong>".$mess[1]."</strong>   ".$mess[0]."<br>";
	}
	next($post_vars);
 }

mail($_REQUEST['recipient'], $subject,  "
<html>
<head>
 <title>Contact letter</title>
</head>
<body>
<br>
  ".$message."
</body>
</html>" , $headers);
echo ("Your message was successfully sent!");

?>
<script>
	resizeTo(300, 300);
</script>

И..... всичко работи, вярно по-различно от примера който ти дадох по-горе, но безотказно-тествах го и ще ти дам 4 варианта+този с примера ми по горе в л.с. за да ти докажа.

Странното е че кода го свалих в темплатемонстер от безплатните им неща... а на теб не са ти го дали!?

По-интересно е да споделиш откъде си купи темплейта, защото ако не са ти дали вс. файлове само си си дал парите.

Надявам се този код да е полезен и на другите участници във форума, всички текстове и var подлежат на редакция.... според личния вкус->да е по-шокар!
:o :oops:
 
Rado каза:
Ам сори че се намесвам ама тоя mx не е ли namespace-a на флекс, който ползват адобе(и който няма да го има във флекс 4 ^_^ ) Мисля, че флаш нямаше тея библиотеки ?
Здравей!
Въпроса ти е повече от странен. Може ли да те помоля да го формулираш в по-човешки вид, (без странни символи и знаци) за да разбереме точно какво имаш в предвид и какво всъщност питаш.

По въпроса за импортирането на служебни класове в AS2, има безкрайно много инфо в хелпа на програмата.
import mx.controls.*; // е един от най-много използваните сл. класове, и е клас от библиотеките на плеъра, не е нужно да си го пишеш сам, става въпрос за 7-версия и нагоре, просто кликни едно F1 върху реда.

Кода който написах по-горе съм го взаимствал и "къстъм напаснал" специално за тази форма на 99% от безплатните примери на Макромедия, коитo ти идват с инсталацията на програмата. Така че той на 99% си е на Макромедия. Виж повече инфо тук и тук.

А формата съм я дал за сваляне, направена е точно по това което написах и ако искаш я тествай с (Adobe Flash CS3 Professional по-ниско не я отваря). А след това търпя всякакви критики и коментари :D
 
Пич прекаляваш с обясненията ;) Явно не си ме разбрал.
Просто не знаех, че може да се ползва Alert класа във флаш, защото например доста често го ползвам във флекс.
Това е всичко ;)
 
Извинявай явно не съм те разбрал!
Ставаше въпрос за кода по-горе и дали той работи :?:

Лично аз по темата и във форума бях до тук :(
Успех!!!
 

Back
Горе