πρόβλημα με stopDrag σε AS2

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

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

Απάντηση
alteran24
Δημοσιεύσεις: 4
Εγγραφή: 02 Νοέμ 2010 19:33

πρόβλημα με stopDrag σε AS2

Δημοσίευση από alteran24 » 02 Νοέμ 2010 20:41

Θέλω να φτιάξω ένα script όπου να μπορώ από ένα κουμπί να κάνω startDrag σε ένα movieclip και stopDrag σε ένα συγκεκριμένο σημείο και αυτό να επαναλαμβάνετε. Ξεκίνησα το παρακάτω script αλλά όταν κάνω testmovie δουλεύει μέχρι το startDrag όταν πατήσω το mouse(δλδ το stopDrag) το movieclip εξαφανίζεται, επίσης αν βάλω "for" δεν δουλεύει τίποτα!!!
Μπορεί κάποιος να μου πει τι να κάνω;

*το movieclip pie βρισκετε στην σκηνή
----------------------------------------------
button.onMouseDown=function(){
build();
}

function build(){

duplicateMovieClip(pie, "pie1", 1);
startDrag(pie1, true);
pie1=function(){
if(pie1.hitTest(acont1)){
pie1.stopDrag();

}
}
}
---------------------------------------------

nkast
Δημοσιεύσεις: 137
Εγγραφή: 15 Νοέμ 2009 20:31
Επικοινωνία:

πρόβλημα με stopDrag σε AS2

Δημοσίευση από nkast » 03 Νοέμ 2010 13:35

Το pie1 είναι movieclip instance και αναθέτεις μια function.
Τι προσπαθείς να κάνεις ?
Φαντάζομαι πως πρέπει να πιάσεις το event onEnterFrame.


pie1=function()
{
if(pie1.hitTest(acont1)) pie1.stopDrag();
}

alteran24
Δημοσιεύσεις: 4
Εγγραφή: 02 Νοέμ 2010 19:33

πρόβλημα με stopDrag σε AS2

Δημοσίευση από alteran24 » 03 Νοέμ 2010 19:26

θελω να αντιγραψω το αρχικο movieclip και με το hittest να τοποθετησω τα αντιγραφα σε συγκεκριμενο σημειο αλλα αυτο το προβλημα τελικα το ελυσα!
Πως γινεται ομως το παρακατω να γινει με επαναληψη;
προσπαθησα με for αλλα δεν μου δουλευει.

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


button.onPress=function(){

	dupl();
	drop();
	
}

function dupl(){
	duplicateMovieClip(pie, "pie1", 1);
	duplicateMovieClip(pie, "pie2", 2);
	duplicateMovieClip(pie, "pie3", 3);
	duplicateMovieClip(pie, "pie4", 4);
}
function drop(){
	
	startDrag(pie1, true);
onMouseDown=function(){
if(pie1.hitTest(acont1)){
pie1.stopDrag(true);
startDrag(pie2, true);
if(pie2.hitTest(acont1)){
pie2.stopDrag(true);
startDrag(pie3, true);
if(pie3.hitTest(acont1)){
pie3.stopDrag(true);
startDrag(pie4, true);
if(pie4.hitTest(acont1)){
pie4.stopDrag(true);
}
}
	
}
}
}
}

nkast
Δημοσιεύσεις: 137
Εγγραφή: 15 Νοέμ 2009 20:31
Επικοινωνία:

πρόβλημα με stopDrag σε AS2

Δημοσίευση από nkast » 04 Νοέμ 2010 12:43

Τώρα με το που γίνεται MouseDown πάνω απο το acont1 κάνεις startDrag το επόμενο pie. Πραγμα που φαντάζομαι μεταφέρει αμέσως το αντικείμενο στην θέση του mouse (που βρίσκεται ήδη πάνω απο το acont1) και αμέσως μετα ελένχεις αν κάνει hit test με το acont1. Ενα-ενα ολοι οι έλενχοι if() γίνονται true σε ένα πέρασμα.

Αν αυτό που θέλεις είναι να κάνεις drag ενα ενα τα αντικείμενα θα χρειαστει να αλλάξεις την λογική του κώδικα.
πχ να ξεκινήσεις με ένα array που αρχικά θα περιέχει τα "pie1","pie2",κτλ και θα τα τραβάς ένα ενα σε κάθε βήμα.


Βλέπω πως προχωράς γρήγορα προς την κατεύθυνση του να χειρίζεσαι το flash με κώδικα!, οπότε το ερώτημα είναι για ποιο λόγο ξεκινάς με AS2 και όχι απευθείας με AS3; Πολύ σύντομα θα συναντήσεις τις ελλείψεις της γλώσσας και θα καταφεύγεις σε 'κόλπα' που δεν θυμίζουν κομψό προγραμματισμό.

alteran24
Δημοσιεύσεις: 4
Εγγραφή: 02 Νοέμ 2010 19:33

πρόβλημα με stopDrag σε AS2

Δημοσίευση από alteran24 » 04 Νοέμ 2010 15:12

Οπως ειναι γραμμενο το θελω, να πεφτει καθε pie στο acont1 μετα το mouse click συνεχομενα.
Μπορεις ομως να μου πεις πως θα βαλω for για να μην καθομαι και τυραννιεμαι κανοντας μονος μου τις επαναληψεις!!!
Εκανα αρκετες δοκιμες με for αλλα δεν μου βγαινει.
Επεισης σχετικα με την AS3 ασχοληθηκα πολυ λιγο γιατι η AS2 μου φαινεται πιο ευκολη.

nkast
Δημοσιεύσεις: 137
Εγγραφή: 15 Νοέμ 2009 20:31
Επικοινωνία:

πρόβλημα με stopDrag σε AS2

Δημοσίευση από nkast » 04 Νοέμ 2010 16:38

Μπορείς να περιγράψεις με περισσότερες λεπτομέρειες τι θέλεις να πετύχεις;
Από την μεριά του χρήστη δηλαδή, τι θα βλέπει και πως θα αλληλεπιδρά.

alteran24
Δημοσιεύσεις: 4
Εγγραφή: 02 Νοέμ 2010 19:33

πρόβλημα με stopDrag σε AS2

Δημοσίευση από alteran24 » 04 Νοέμ 2010 19:28

Θέλω να πατάει το button και να εμφανίζεται στο mouse το pie και να μπορεί να το τοποθετήσει μόνο στο acont1 και μόλις το αφήσει να εμφανιστεί στο mouse το επόμενο pie που θα τοποθετηθεί και αυτό στο acont1 και πάει λέγοντας… Ανέβασα και το αρχείο για να το δεις αναλυτικότερα. Εγώ επειδή τo pie μπορεί να είναι περισσότερο από τέσσερα εξαρτάτε από τον χρήστη θέλω να βάλω επανάληψη το θέμα είναι ότι αν βάλω δε μου δουλεύει το stopDrag
Συνημμένα
working_test3.zip
(6.4 KiB) Μεταφορτώθηκε 189 φορές

Απάντηση

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

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

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