exw dio scroll sta opoia thelw na exw sto kathena...

Λύσεις προβλημάτων για το δημοφιλές πρόγραμμα κατασκευής παρουσιάσεων στο διαδίκτυο.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
spithas
Δημοσιεύσεις: 99
Εγγραφή: 23 Δεκ 2003 16:53
Τοποθεσία: Alexandroupoli

exw dio scroll sta opoia thelw na exw sto kathena...

Δημοσίευση από spithas » 01 Νοέμ 2005 02:45

exw dio scroll sta opoia thelw na exw sto kathena diaforetika movie clip. to exw kanei alla kai sta 2 exw to ido pws tha ginei sto kathena na exw diaforetika pragmata mesa? exw to arxeio panw an mborei as me foithisei giati thelw na telioso tin ergasia mou thanks
Συνημμένα
help.rar
(79.45 KiB) Μεταφορτώθηκε 307 φορές

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27617
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

exw dio scroll sta opoia thelw na exw sto kathena...

Δημοσίευση από cordis » 01 Νοέμ 2005 18:22

ο τίτλος "help exw provlima" δεν βοηθάει και πολύ εμάς.. ;)
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
spithas
Δημοσιεύσεις: 99
Εγγραφή: 23 Δεκ 2003 16:53
Τοποθεσία: Alexandroupoli

exw dio scroll sta opoia thelw na exw sto kathena...

Δημοσίευση από spithas » 02 Νοέμ 2005 01:55

sorry :)

spookyb52
Δημοσιεύσεις: 1891
Εγγραφή: 23 Ιαν 2002 01:00
Τοποθεσία: Lost in the mansion
Επικοινωνία:

exw dio scroll sta opoia thelw na exw sto kathena...

Δημοσίευση από spookyb52 » 05 Νοέμ 2005 02:34

χαχαχα έτσι όπως τα είδα όλα μαζί ψιλοχάθηκα :p

Θα σου απαντούσα με pm αλλά αφού ρώτησες και στο forum θα απαντήσω εδώ

Να πώ βέβαια για ακόμα μια φορά ότι είναι προτιμότερο να μήν μου στέλνετε Pms για τους παρακάτω λόγους

1) Μπόρεί να μήν μπαίνω για ένα σημαντικό διάστημα στο net και να μήν βλέπω τα μηνύματα σας
2) Βάζοντας την ερώτηση στο forum υπάρχει μεγαλύτερο πλήθος ατόμων που μπορεί να σας λύσει το πρόβλημα και ίσως γρηγορότερα από ότι αν περιμένετε μόνο από εμένα
3) Και εγώ στο forum μπαίνω και από εκεί βλέπω τα μηνύματα σας
4) Οι απαντήσεις είναι καλό να δίνονται δημόσια και όχι με pms γιατί το πρόβλημα που μπορεί να έχετε εσείς να το αντιμετωπίσει και κάποιος άλλος
Για σκεφτείτε όλες οι λύσεις να δίνονταν με pms..
5) Απόρροια του παραπάνω είναι και η ακόλουθη διαπίστωση :

α) Δέν ανοίγονται νέα θέματα με το ίδιο πρόβλημα
β) Αλλά και όταν ανοίγονται μπορούμε να δώσουμε το link με την απάντηση αντί να γράφουμε συνέχεια τα ίδια και τα ίδια
γ) Οι απαντήσεις σε κάποιο πρόβλημα δέν ειναι απλά λύσεις... Μπορούν να αποτελέσουν πηγή ιδεών.

Ελπίζω να έγινα κατανοητός.

Λοιπόν ας ξεκινήσω απο τα απλά

Σχετικά με το mail... δέν έχω ασχοληθεί ποτέ μέχρι τώρα με mail forms/ php/ asp κτλ οπότε χλωμό
να σε βοηθήσω σε αυτό άν δέν έχει να κάνει με το flash. Από ότι κατάλαβα έχεις πάρει ένα έτοιμο movie και προσπάθησες να το προσαρμόσεις στις ανάγκες σου.

Αυτό βέβαια έχει και τα άσχημά του.. όταν δέν δουλευει πχ δέν έχεις ιδέα για το τί μπορεί να φταίει..

Για το php τμήμα δέν έχω να σου πώ κάτι που θα σε βοηθήσει...

Άς δούμε τον κώδικα

Ο παρακάτω κώδικας απλα ελέγχει άν είναι όλα τα πεδία συμπληρωμένα κάθε φορά που αφήνεις ένα
πατημένο πλήκτρο και ενεργοποιεί η απενεργοποιεί το button sendButton μέσα στο clip sendMC

Δέν κάνει κάποιο έλεγχο για έγκυρο e-mail, όνομα κτλ... δέν βλέπω και κάποιο λάθος.

Κώδικας: Επιλογή όλων

//	add the listener to the Key onj
k = new Object();
k.onKeyUp = function()
{
	if(Sname.text != '' 
	   && Semail.text != '' 
	   && Ssubject.text != '' 
	   && Smessage.text != '')
	{
		//	enable btn
		sendMC.sendButton.enabled = true;
	} else {
		//	diable
		sendMC.sendButton.enabled = false;
	}
}
Key.addListener(k);

//	set starting status
//	for SEND button
sendMC.sendButton.enabled = false;
// stop on current frame
stop();



Στο πρώτο frame επίσης... συναντούμε και το παρακάτω :

Κώδικας: Επιλογή όλων

//	--------------------
//	TextField Styles
//	--------------------
normal_border = 0xCCCCCC
select_border = 0x000000
normal_background = 0xEEEEEE
select_background = 0xDDDDDD
normal_color = 0x000000;
select_color = 0xFF0000;
//	---------------------
//	apply the style
//	to every textfield
//	---------------------
function format_field(f)
{
	for(var a in f)
	{
		f[a].border = true
		f[a].borderColor = normal_border
		f[a].background = true
		f[a].backgroundColor = normal_background
		f[a].textColor = normal_color
	}
}
format_field([Sname,Semail,Ssubject,Smessage]);

//	---------------------
//	define style change 
//	function for TXT
//	---------------------
TextField.prototype.onSetFocus = function()
{
	this.borderColor = select_border
	this.backgroundColor = select_background
	this.textColor = select_color
}
TextField.prototype.onKillFocus = function()
{
	this.borderColor = normal_border
	this.backgroundColor = normal_background
	this.textColor = normal_color
}
//	set the starting focus selection
Selection.setFocus(Sname);
ούτε αυτό χρειάζεται να το κοιτάξουμε. Απλά ορίζει το style στα textboxes και ορίζει το αρχικό focus
στο Sname textbox. Xρησιμοποεί prototype και την for in για να μήν γράφει τα ίδια κομμάτια
κώδικα για κάθε αντικείμενο χωριστά.

Συνεχίζω άν αντέχεις :P

Το cancel button απλά καθαρίζει όλα τα πεδία και κάνει disable το sendButton μεσα στο move sendMC

Κώδικας: Επιλογή όλων

on (release) 
{
	Sname.text = ''
	Semail.text = ''
	Ssubject.text = ''
	Smessage.text = ''
	sendMC.sendButton.enabled = false;
}


To sendButton έχει τον παρακάτω κώδικα

Κώδικας: Επιλογή όλων

on (release) {
	//	Now import the variables we
	//	need to send in this movie clip
	sender_mail = _root.Semail.text
	sender_name = _root.Sname.text
	sender_subject = _root.Ssubject.text
	sender_message = _root.Smessage.text
	//	all the vars we just imported
	//	will be sent via POST method now
	loadVariables("sendmail.php",this,"POST");
	//	and when receives the answer from
	//	the server...
	this.onData = function()
	{
		for(var a in this) trace([a,this[a]])
		//	ok, next frame
		_root.nextFrame();
		if(this.output=='sent')
		{
			// in case of success
			_root.errTitle = 'Thank You.';
			_root.errType = "Your message has been succesfully sent.";
		} else {
			//	else
			_root.errTitle = "Error!";
			_root.errType = "Attention, an error occurred while processing your message. Please try again later.";
		}
	}
}

Έδω παίρνει τα στοιχεία από τα textboxes και τα στέλνει με την post σε ένα php αρχείο. Μπορείς να αλλάξεις το _root.nextFrame(); με το _parent.nextFrame();

Το _root είναι λάθος. Δείχνει σε διαφορετικό επίπεδο από αυτό που θές. Δείχνει το main timeline αντί
για το movie clip με την φόρμα. Επίσης βάλτο στο τέλος της this.onData

Δηλαδή από

Κώδικας: Επιλογή όλων

this.onData = function()
	{
		for(var a in this) trace([a,this[a]])
		//	ok, next frame
		_root.nextFrame();
		if(this.output=='sent')
		{
			// in case of success
			_root.errTitle = 'Thank You.';
			_root.errType = "Your message has been succesfully sent.";
		} else {
			//	else
			_root.errTitle = "Error!";
			_root.errType = "Attention, an error occurred while processing your message. Please try again later.";
		}
	}


κάντο


Κώδικας: Επιλογή όλων

this.onData = function()
	{
		for(var a in this) trace([a,this[a]])
		if(this.output=='sent')
		{
			// in case of success
			_root.errTitle = 'Thank You.';
			_root.errType = "Your message has been succesfully sent.";
		} else {
			//	else
			_root.errTitle = "Error!";
			_root.errType = "Attention, an error occurred while processing your message. Please try again later.";
		}
		_parent.nextFrame();
	}

Και τώρα πάμε στο δεύτερο frame

Εδώ δέν βλέπω κάποιον κώδικα. Βλέπω όμως ένα μήνυμα επιτυχίας που έχεις βάλει! :)


Επίσης το textbox έχει ίδιο instance name με την μεταβλητή errType. Δέν μπορεί βέβαια
να δεχτεί την τιμή της αντίστοιχης μεταβλητής στο textbox γιατί την έχεις βάλει στο πεδίο instance αντί για το πεδίο Var
κάτω δεξιά στα properties. Δέν πειράζει όμως, μήν αλλάζεις τίποτα.

Βάλε απλά στο keyframe τον παρακάτω κώδικα

Κώδικας: Επιλογή όλων

errType.text = (" ", _root.errTitle+" "+_root.errType);
Έτοιμο και το error message :) Τα υπόλοιπα είναι θέμα php που δέν κατέχω. Άγόρασα βέβαια ένα βιβλίο php μετά την εξεταστική αλλά δέν έχω αξιωθεί να το ανοίξω ακόμα... :0



/*----------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------*/

ΣΥΝΕΧΕΙΑ ΜΕ ΤΟ SCROLL - ΠΡΩΤΑΘΛΗΤΕΣ ΕΛΛΑΔΑΣ

α) Η καθυστέρηση είναι φυσιολογική. Πρέπει πρώτα να φορτώσει το animation του preloader
(ή ότι άλλο υπάρχει στο πρώτο frame) και μετά θα εμφανισθεί ο preloader. To flash φορτώνει frame by frame

β) Για να μετακινήσεις ένα movie σε άλλη θέση με κώδικα πρέπει να κάνεις τα παρακάτω

Έστω ότι ο κώδικας θα μπεί σε ένα Keyframe

1) Δίνεις instance name στο movie για να μπορείς να το καλέσεις

2) Η εντολή για την μετατόπιση είναι απλή : instanceName._x = 123; κτλ (τυχαίο νούμερο) η instanceName._y = 247; κτλ

Όπου instanceName το instance name που έδωσες στο Movie

πχ αν το ονόμασες tequila τότε

tequila._x = 211;

Φυσικά δίνεις και την διαδρομή για το clip άν δέν είναι στο ίδιο timeline

πχ _root.clipOne.clipTwo._x = 12;

η a.b._y = 4;

η _parent.clip._x +=22; κτλ


/*----------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------------------------*/

Index & mc_scrolling.fla

Σχετικά με το πρόβλημα του loading είναι καθαρά θέμα διαδρομής η οποία αλλάζει όταν το φορτώνεις μέσα σε ένα άλλο flash
Για αυτό και η χρήσης της _root θα πρέπει να αποφεύγεται και να μην γίνεται χρήση της όταν φορτώνουμε ένα swf μέσα σε άλλο

Στο δεύτερο keyframe έχεις τον κώδικα

loadMovie("mc_scrolling.swf", "2");

Αρχικά άλλαξε το Instance name στο κόκκινο movie μέσα στο οποίο φορτώνεις το movie από 2 σε empty

σβήσε τον προηγούμενο κώδικα στο keyframe και βάλε τον παρακάτω.

Κώδικας: Επιλογή όλων

empty.loadMovie("mc_scrolling.swf");
empty._lockroot = true;
Τώρα θα δουλεύει χωρίς πρόβλημα
Life is like a fast car on an icy road. Brakes don't work, yes I know it, but I step on the gas
Garage punk | Rockabilly | Rock 'n' Roll | Stoner

Απάντηση

Επιστροφή στο “Flash γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης