πως αλλαζουμε το border απο ενα movieclip

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

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

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

πως αλλαζουμε το border απο ενα movieclip

Δημοσίευση από vagelismember » 18 Μάιος 2010 23:55

καλησπερα σας, εχω δημιουργησει εναν κομβο-κουτακι(το σχεδιασα), και το εκανα export σε μια κλαση. θελω να αλλαξω το border(το παχος δλδ) οταν παταω ενα κουμπι μεσα στον κομβο, που να κανει αυτην την δουλεια. ομως θελω η συναρτηση αυτη να ειναι μεσα στην κλαση δημιουργιας του κομβου. πως μπορω να το πετυχω αυτο?

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

πως αλλαζουμε το border απο ενα movieclip

Δημοσίευση από HeRu » 19 Μάιος 2010 11:08

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

Κάθε Sprite/Shape έχει ένα property graphics που μπορείς να χρησιμοποιήσεις για να σχεδιάσεις προγραμματιστικά.

Όταν θα θέλεις να αλλάξεις μια γραφική παράμετρο, απλά θα το ξανά σχεδιάζεις ολόκληρο, με τις νέες παραμέτρους.

Ένα απλό implementation:

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

package
{
	import flash.display.Graphics;
	import flash.display.Sprite;

	public class Node extends Sprite
	{
		// Size
		private var _width:Number;
		private var _height:Number;
		// Graphics
		private var outlineWeight:Number;
		private var outlineColor:Number;
		private var fillColor:Number;

		public function Node(  w:Number = 100, h:Number = 50,
						outlineWeight:Number = 2, outlineColor:Number = 0xFFAA22, fillColor:Number = 0xAA7733)
		{
			// Size
			this._width = w;
			this._height = h;
			// Graphics
			this.outlineWeight = outlineWeight;
			this.outlineColor = outlineColor;
			this.fillColor = fillColor;
			// Draw
			draw();
		}

		public function draw():void
		{
			// Create shortcut
			var g:Graphics = this.graphics;
			// Clear
			g.clear();
			// Set style
			g.lineStyle(outlineWeight, outlineColor);
			g.beginFill(fillColor);
			// Draw
			g.drawRoundRect(0, 0, _width, _height, 10, 10);
			g.endFill();
		}

		public function setOutlineWeight(outlineWeight:Number):void
		{
			this.outlineWeight = outlineWeight;
			draw();
		}

		public function setOutlineColor(outlineColor:Number):void
		{
			this.outlineColor = outlineColor;
			draw();
		}

		public function setFillColor(fillColor:Number):void
		{
			this.fillColor = fillColor;
			draw();
		}
	}
}
Και ένα τεστ

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

node = new Node();
node.x = 50;
node.y = 50;
node.addEventListener(MouseEvent.CLICK, mouseClickHandler);
addChild(node);

function mouseClickHandler(event:MouseEvent):void
{
	var newWeight:Number = Math.random() * 10 + 1;
	node.setOutlineWeight(newWeight);
}
Συνημμένα

nodeDraw.swf [ 1.05 KiB | Προβλήθηκε 1120 φορές ]


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

πως αλλαζουμε το border απο ενα movieclip

Δημοσίευση από vagelismember » 20 Μάιος 2010 13:31

Σ ευχαριστω για το παραδειγμα, αν και το ελυσα δημιουργοντας ενα πλαισιο με as3 κωδικα μεσα στην κλαση με moveTo,lineTo, kai lineStyle και δημιουργησα 3 συναρτησεις για το καθε παχος, λεπτο μεσαιο και παχυ, ετσι ωστε οταν πατας πανω σε ενα απο τα 3 κουμπακια που ειναι για αυτην την λειτουργια, να κανει clear και να σχεδιαζει εκ νεου. Δεν ξερω αν ειναι σωστος ο τροπος, αλλα δουλευει μια χαρα. και παλι ευχαριστω

Απάντηση

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

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

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