Archief - FLASH: Mouseevents triggeren op eigen klasse?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

iamdesign

Legacy Member
Hoy allemaal,

ik ben sinds gistren begonnen met mijn eerste stapjes te zetten in OOP met actionscript, maar ik stuit reeds op een probleem.

Ik heb vlg klasse:

Code:
import mx.transitions.Tween;
import mx.transitions.easing.*;


class knop
{
	
	//FIELDS
	private var sNaam:String;
	private var xplaats:Number;
	private var yplaats:Number;
	private var iKleur:Number;
	private var container:MovieClip;
	
	//CONSTRUCTOR
	public function knop(sNaam:String, iKleur:Number, depth:Number, xplaats:Number, yplaats:Number)
	{
		//Make new MC
		container = _root.createEmptyMovieClip("container" + depth, depth)
		
		//Set name
		setName(sNaam);
		
		//Set xPlaats
		setxPlaats(xplaats);
		
		//Set kleur
		setKleur(iKleur);
		
		//Set yPlaats
		setyPlaats(yplaats);
		
		//Draw
		drawIt();
		
		var listener:Object = new Object()
		
		listener.onPress = function()
		{
			trace("lal");
		}
		
		Mouse.addListener(listener)
	}
	
	//GETTERS AND SETTERS
	public function setName(sNaam:String):Void
	{
		this.sNaam = sNaam;
	}
	
	public function getName():String
	{
		return this.sNaam;
	}
	
	public function setKleur(iKleur:Number):Void
	{
		this.iKleur = iKleur;
	}
	
	public function getKleur():Number
	{
		return this.iKleur;
	}
	
	public function setxPlaats(xplaats):Void
	{
		this.xplaats = xplaats;
	}
	
	public function getxPlaats():Number
	{
		return this.xplaats;
	}
	
	public function setyPlaats(yplaats):Void
	{
		this.yplaats = yplaats;
	}
	
	public function getyPlaats():Number
	{
		return this.yplaats;
	}
	
	//METHODS
	private function drawIt():Void
	{
		// Creeër balkje
		var bar:MovieClip = container.createEmptyMovieClip("bar", container.getNextHighestDepth());
		bar.moveTo(0,0)
		bar._x = getxPlaats();
		bar._y = getyPlaats();
		
		// Maak het balkje
		bar.beginFill(getKleur(), 100);
		bar.lineTo(400, 0);
		bar.lineTo(400, 15);
		bar.lineTo(0, 15);
		bar.lineTo(0, 0);
		bar.endFill();		
		
		// Creeër tekstveld
		var txtKnop:TextField = container.createTextField("txtKnop", 2000, getxPlaats(), getyPlaats(), 100, 20);
		txtKnop.embedFonts = true;
		txtKnop.text = getName();
		txtKnop.selectable = false;
		
		var txtKnopFormat:TextFormat = new TextFormat();
		txtKnopFormat.color = 0xffffff;
		txtKnopFormat.size = 8;
		txtKnopFormat.font = "pro";
		
		txtKnop.setTextFormat(txtKnopFormat);
	}
}

en deze zorgt voor het volgende resultaat: resultaat

maar nu zou ik graag iets kunne doen als:

Code:
about.onClick = function()
{
  dosomething()
}

Maar natuurlijk kent mijn klasse about geen onClick event, dus waarschijnlijk moet ik dit zelf schrijven
maar ik vind hier nerges info over :(

Kan iemand mij hier opt rechte pad helpen :)

LunchBox

Legacy Member
wel je kan de onClick (onPress heet het op een mc) hangen op je bar-movieclip binnen je drawIt() functie:

Code:
bar.onPress=function(){
	dosomething();
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan