[AS3] μεταβλητή σε stage & class

ActionScript και Flex Προγραμματισμός

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

Απάντηση
vagelismember
Δημοσιεύσεις: 40
Εγγραφή: 14 Φεβ 2010 14:26

[AS3] μεταβλητή σε stage & class

Δημοσίευση από vagelismember » 15 Μαρ 2010 13:27

καλημερα σας. εχω μια μεταβλητη στο stage και της εχω δωσει μια τιμη. πως γινεται να προσπελασω αυτην την μεταβλητη και την τιμη της μεσα σε μια κλαση οπου και την χρειαζομαι?
που πρεπει να την δηλωσω? μεχρι στιγμης την εχω δηλωσει εντος της κλασης με public. αλλα τιποτα. μου βγαζει undefined property. τι προτεινετε?

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

[AS3] μεταβλητή σε stage & class

Δημοσίευση από HeRu » 15 Μαρ 2010 13:44

Αν θέλεις απλά να μοιράζεις κάποιες απλές μεταβλητές, μπορείς να έχεις μια "static variable class" που να διατηρεί όλες τις κοινές μεταβλητές.

Π.χ.

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

package
{

	public class StaticVars
	{
		public static var VALUE1:int;
		public static var VALUE2:int;
		public static var TEXT1:String
	}
}
Έπειτα μπορείς να βάλεις τιμές έτσι:

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

StaticVars.VALUE1 = 5;
StaticVars.TEXT1 = "Τεστ";
Και να τις χρησιμοποιήσεις αντίστοιχα:

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

myTextField.text = StaticVars.TEXT1;

vagelismember
Δημοσιεύσεις: 40
Εγγραφή: 14 Φεβ 2010 14:26

[AS3] μεταβλητή σε stage & class

Δημοσίευση από vagelismember » 15 Μαρ 2010 13:51

Σ ευχαριστω. ειχα ψυλλιαστει οτι κατι παιζοτανε με την τελεια.

vagelismember
Δημοσιεύσεις: 40
Εγγραφή: 14 Φεβ 2010 14:26

[AS3] μεταβλητή σε stage & class

Δημοσίευση από vagelismember » 15 Μαρ 2010 21:30

Καλησπερα σας. στον παρακατω κωδικα αντιμετωπιζω καποια προβληματα με τις μεταβλητες. o κωδικας που υπαρχει στα ανεβασμενα αρχεια χρησιμοποιει καποιες μεταβλητες(flag) στο stage, και ετσι θελω να δουλευει. Ομως θελω ολη η εργασια να γινει μεσα στην κλαση CreateNode, δλδ τα eventlisteners και οι συναρτησεις startMCDrag kai stopMCDrag. ομως οταν κανω αποκοπη επικολληση στην κλαση οπως δινεται ο κωδικας παρακατω, μου βγαζει πολλα λαθη..

κλαση μεταβλητων

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

package vars
{
	public class StaticVars
	{
		public static var FLAG1:int;
	}
}

εδω ειναι η κλαση που δημιουργει το node

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

package creation
{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import vars.StaticVars;
	

	public class CreateNode extends MovieClip
	{
		private var node_mc:MovieClip;
		public var f:int;
		f=StaticVars.FLAG;
		
		public function CreateNode(passed_mc:MovieClip):void
		{
			trace("done");
			node_mc = passed_mc; // den exw katalabei akrivws tin leitourgia tou???
		}
	}
	
		public function startMCDrag(e:MouseEvent):void
		{
			trace("drag");
			f=1;
			var object = e.target;
			object.startDrag();
		}

		public function stopMCDrag(e:MouseEvent):void
		{
				f=0;
				var obj = e.target;
				obj.stopDrag();
		}
}
και εδω το fla

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

import flash.display.MovieClip;
import flash.events.MouseEvent;
import creation.CreateNode; //eisagei tin klasi pou uparxei sto as
import vars.StaticVars;

var nodeNo:int = 0; //metritis twn nodes
stage.addEventListener(MouseEvent.MOUSE_DOWN,addbox); //adds listener dimiourgias node sto stage

function addbox(e:MouseEvent):void
{
		var node:CreateNode = new CreateNode(this);
		node.x=e.stageX;
		node.y=e.stageY;
		stage.addChild(node);
		nodeNo=nodeNo + 1;
		trace(nodeNo);
}
ελπιζω να μπορειτε να βγαλετε ακρη, και να με βοηθησετε. Ευχαριστω προκαταβολικα

vagelismember
Δημοσιεύσεις: 40
Εγγραφή: 14 Φεβ 2010 14:26

[AS3] μεταβλητή σε stage & class

Δημοσίευση από vagelismember » 15 Μαρ 2010 21:34

τα αρχεια που δουλευουν σωστα το flash, ξεχασα να σας τα δωσω πριν.
Συνημμένα
files.rar
ta arxeia
(7.69 KiB) Μεταφορτώθηκε 277 φορές

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

[AS3] μεταβλητή σε stage & class

Δημοσίευση από HeRu » 16 Μαρ 2010 10:45

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

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

Επισης θα πρέπει αυτά τα λάθη που σου βγάζει, να τα διαβάσεις και να κατανοήσεις τι σημαίνουν, και έτσι θα μπορέσεις να τα διορθώσεις.

Τα προβλήματα στον κώδικα σου δεν είναι λογικά ή λειτουργικά, αλλά πηγάζουν από λάθη στην σύνταξη και την δομή.

vagelismember
Δημοσιεύσεις: 40
Εγγραφή: 14 Φεβ 2010 14:26

[AS3] μεταβλητή σε stage & class

Δημοσίευση από vagelismember » 16 Μαρ 2010 10:53

Η αληθεια ειναι οτι πρωτη φορα ασχολουμαι με oop, απλα εχω καποιες θεμελιωδης αποριες που αν τις λυσω θα μπορεσω να κανω κατι. αυτον τον κωδικα τον εχω δημιουργησει σε διαστημα ενος μηνα, και εχω κατσει μερονυχτα να το βγαλω περα ετσι οπως το βλεπετε. και δεν εχω βοηθηθει απο πουθενα εκτος απο το forum σας.

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

[AS3] μεταβλητή σε stage & class

Δημοσίευση από HeRu » 16 Μαρ 2010 11:13

Η βασική δομή μιας class είναι:

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

package
{
   class
   {
      properties // Συνήθως δηλώνεις πρώτα τις μεταβλητές σου.
      methods // Όλες οι functions.
   }
}
Οπότε αν δεις τον κώδικα σου, δυο θέματα χτυπάνε αμέσως στο μάτι.
  1. το "f=StaticVars.FLAG;", δηλαδή έχεις εντολές "χύμα" μέσα στην class (Η ανάθεση(=) είναι εντολή). Αυτό θα πρέπει ή να το συνδυάσεις με την δημιουργία του variable "public var f:int =StaticVars.FLAG;" (έτσι ο compiler το παίρνει σαν αρχική τιμή και όχι σαν εντολή) ή να βάλεις αυτήν την εντολη μέσα στον constructor(την function που έχει το ίδιο όνομα με την class).
  2. έχεις methods(functions) έξω από το class definition ({}), "χύμα" μέσα στο package.

vagelismember
Δημοσιεύσεις: 40
Εγγραφή: 14 Φεβ 2010 14:26

[AS3] μεταβλητή σε stage & class

Δημοσίευση από vagelismember » 16 Μαρ 2010 11:52

αποριες βασικες που εχω:
1)παραπανω στον κωδικα υπαρχει μεσα στην κλαση μια εντολη " target = _target;" αυτο που καταλαβαινω απο αυτο ειναι οτι οταν καλω τον constructor της κλασης πχ. var node:CreateNode = new CreateNode(this); τοτε μεσα στην κλαση θα μπορω να επεξεργαστω το node το οποιο εχει παρει το ονομα target μεσα στην κλαση(αλλα δεν γινεται). Το node ομως ειναι σχεδιασμενο γραφικα και εχω κανει linkage στο ονομα της κλασης CreateNode και του εχω δωσει το ονομα node. μεσα στο node ομως εχω σχεδιασει ενα input text(δεν το εχω κανει convert to movieClip) το οποιο απλα το εχω ονομασει inputtext. Τα properties αυτου στο fla file μπορω να τα επεξεργαστω. Το θεμα μου ειναι να μπορω να επεξεργαστω και το node αλλα και το inputtext που υπαρχει μεσα του, στην κλαση CreateNode, πραγμα που αδυνατω να καταφερω.


δεν ξερω αν ειναι το σωστο που ρωταω αυτα σε αυτο το "θεμα". Αν υπαρχει καπου αλλου "χωρος" για πιο γενικες ερωτησεις πειτε μου. Ευχαριστω

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

[AS3] μεταβλητή σε stage & class

Δημοσίευση από HeRu » 16 Μαρ 2010 12:25

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

Με μερικά σκόρπια post δεν μπορείς να μάθεις και παρά πολλά.

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

Εγώ θα συνιστούσα το Essential ActionScript 3.0, καλύπτει όλα τα παραπάνω.

vagelismember
Δημοσιεύσεις: 40
Εγγραφή: 14 Φεβ 2010 14:26

[AS3] μεταβλητή σε stage & class

Δημοσίευση από vagelismember » 16 Μαρ 2010 12:49

οπως και να χει ευχαριστω πολυ για τον χρονο σας. θα σας εμπιστευτω για το βιβλιο που προτεινετε, θα παω σημερα κιολας να το αγορασω. Αμα εχω καποια απορια ακομα να μπορω να κανω post?

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

[AS3] μεταβλητή σε stage & class

Δημοσίευση από HeRu » 16 Μαρ 2010 13:00

Φυσικά! Μπορείς να ποσταρεις ότι θέλεις.

vagelismember
Δημοσιεύσεις: 40
Εγγραφή: 14 Φεβ 2010 14:26

[AS3] μεταβλητή σε stage & class

Δημοσίευση από vagelismember » 16 Μαρ 2010 20:19

καλησπερα σας, το βιβλιο που προτεινετε ειναι ενα που εχει ενα φιδι απ εξω, συγγραφεας:Colin Moock, 944 σελιδες, εκδοτης: O'Reilly media Inc USA, ετος εκδοσης:2007 και στοιχιζει καπου στα 40ευρω. σωστα? Στον υπολογιστη μου εχω περασμενο το flash cs4. θα με καλυψει πιστευετε? Ρωταω μηπως υπαρχει καποια εκδοση για cs4 η κατι αλλο που δεν γνωριζω. Θα περιμενω απαντηση σας προτου το παραγγειλω. Ευχαριστω

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

[AS3] μεταβλητή σε stage & class

Δημοσίευση από HeRu » 16 Μαρ 2010 20:43

Κοίταξε βιβλία υπάρχουν πολλά. Αυτό είναι κυρίως για αρχές προγραμματισμού. Δηλαδή αν το διαβάσεις, δεν θα ξέρεις πως να δουλεύεις το Flash, αλλά πως να προγραμματίζεις καλύτερα.

Εγώ το πρωτινά επειδή πιστεύω ότι έχει μια ολοκληρωμένη προοπτική για τον αντικειμενοστραφή προγραμματισμό σε Actionscript 3.0. Από εκεί και πέρα , αν θες ένα γενικό βιβλίο για το Flash CS4, ψάξε το λίγο μόνος σου, δες μερικά sample κεφάλαια από βιβλία και δες αν σου αρέσει ο τρόπος γραφής του συγγραφέα και αν το καταλαβαίνεις.

vagelismember
Δημοσιεύσεις: 40
Εγγραφή: 14 Φεβ 2010 14:26

[AS3] μεταβλητή σε stage & class

Δημοσίευση από vagelismember » 16 Μαρ 2010 20:55

λογικα αυτο το βιβλιο θα ναι η βιβλος της actionscript 3.0. και δεν θα αναφερει τπτ σε design. Εχεις στο νου σου καποιο που να παντρευει γνωσεις programmer και designer? δλδ να μπορω τουλαχιστον να βρω πως θα προσπελασω τα movieclips που σχεδιαζω μεσα στον κωδικα..

Απάντηση

Επιστροφή στο “ActionScript και Flex Προγραμματισμός”

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

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