ma eccomi qua...
allora guarda l'esempio: http://www.oaxoa.com/lab/fascio.htm
ed ecco come realizzarlo in flash MX+...
crei un movieclip e lo chiami "faro" (non come nome di istanza, proprio nella libreria) e al suo interno crei un altro movieClip chiamato come vuoi a cui però dai nome di istanza "disc_mc" (sarebbe il cerchio con il disegno)
a questo punto al primo e unico fotogramma del movieclip faro associ queste azioni:
vai sullo stage e vi trascini un istanza del mc "faro" posizionata dove vuoi che tanto è uguale... CTRL-Invio ed ecco l'esempiocodice:#initclip function Faro() { this.init(); } Faro.prototype.__proto__ = MovieClip.prototype; Faro.prototype.init = function() { this.createEmptyMovieClip("light_mc", 1); this._x = this._y = 0; this.r = this.disc_mc._width / 2; this.disc_mc.swapDepths(2); this.lightBaseX = -30; this.lightBaseY = 430; this.disc_mc.onMouseMove = function() { this._x = this._parent._xmouse; this._y = this._parent._ymouse; this._parent.drawLight(); updateAfterEvent(); }; }; Faro.prototype.drawLight = function() { var lbx = this.lightBaseX; var lby = this.lightBaseY; with (this.light_mc) { clear(); beginFill(0xFFFFB5, 50); moveTo(lbx, lby); //calcolo i punti di tangenza al cerchio in base all'angolo fra essi var ldx = this.disc_mc._x - lbx; var ldy = this.disc_mc._y - lby; var angle = Math.atan((ldy) / (ldx)); if (ldx >= 0) { angle += Math.PI; } var tx1 = this.disc_mc._x + Math.cos(angle + Math.PI / 2) * this.r; var ty1 = this.disc_mc._y + Math.sin(angle + Math.PI / 2) * this.r; var tx2 = this.disc_mc._x + Math.cos(angle - Math.PI / 2) * this.r; var ty2 = this.disc_mc._y + Math.sin(angle - Math.PI / 2) * this.r; //disegno la forma lineTo(tx1, ty1); lineTo(tx2, ty2); lineTo(lbx, lby); endFill(); } }; Object.registerClass("faro", Faro); #endinitclip
come vedi funziona bene da qualsiasi angolo etc.
usatelo pure tranquillamente basta che mi mandate un 4esempio del risultato[eheh mi do al linkware]
ciao

[eheh mi do al linkware]
Rispondi quotando