drawFrame MovieClip prototype          

Clasificado bajo: AS2 (deprecated), Prototipos, Draw — drus @ 5:58 pm

Este protipo dibuja un marco, del grosor definido por borderThickness, alrededor del mc sobre el que se aplica (obj_mc). Si el valor de borderThickness es negativo, el marco se aplica hacia fuera.

Actionscript:
MovieClip.prototype.drawFrame = function(borderThickness:Number, borderColor:Number) {
    this.p = this.getBounds();
    var frame_mc:MovieClip = this.createEmptyMovieClip("frame_mc", 0);
    frame_mc.beginFill(borderColor, 100);
    frame_mc.moveTo(this.p.xMin+borderThickness, this.p.yMin+borderThickness);
    frame_mc.lineTo(this.p.xMax-borderThickness, this.p.yMin+borderThickness);
    frame_mc.lineTo(this.p.xMax-borderThickness, this.p.yMax-borderThickness);
    frame_mc.lineTo(this.p.xMin+borderThickness, this.p.yMax-borderThickness);
    frame_mc.lineTo(this.p.xMin+borderThickness, this.p.yMin+borderThickness);
    frame_mc.moveTo(this.p.xMin, this.p.yMin);
    frame_mc.lineTo(this.p.xMin, this.p.yMax);
    frame_mc.lineTo(this.p.xMax, this.p.yMax);
    frame_mc.lineTo(this.p.xMax, this.p.yMin);
    frame_mc.endFill();
};
//Uso: borderThickness,borderColor
//un borderThickness positivo enmarca hacia dentro
//un borderThickness negativo enmarca hacia fuera
obj_mc.drawFrame(15, 0x666666);
obj2_mc.drawFrame(-15, 0x999999);




drawCircle MovieClip prototype          

Clasificado bajo: AS2 (deprecated), Prototipos, Draw — drus @ 4:17 am

¿necesita alguna explicación?

Actionscript:
MovieClip.prototype.drawCircle = function(radius, x, y, col) {
   var angleDelta = Math.PI/4;
   var ctrlDist = radius/Math.cos(angleDelta/2);
   var angle = 0;
   var rx, ry, ax, ay;
   this.beginFill(col, 100);
   this.moveTo(x+radius, y);
   for (var i = 0; i<8; i++) {
      angle += angleDelta;
      rx = x+Math.cos(angle-(angleDelta/2))*(ctrlDist);
      ry = y+Math.sin(angle-(angleDelta/2))*(ctrlDist);
      ax = x+Math.cos(angle)*radius;
      ay = y+Math.sin(angle)*radius;
      this.curveTo(rx, ry, ax, ay);
   }
   this.endFill();
};




fDraw: dibuja shapes          

Clasificado bajo: AS2 (deprecated), Draw — drus @ 4:46 pm

Este código nos permite dibujar shapes cerradas con solo pinchar y arrastrar el ratón. Publicado originalmente por Ivan en la lista de asnativos y ligeramente modificada la nomenclatura por mi.

Actionscript:
var coord_ar:Array = new Array();
var mix:Number;
var miy:Number;
var holder_mc:MovieClip;
function fDraw() {
    holder_mc.clear();
    holder_mc.lineStyle(1, 0x0000ff, 50);
    holder_mc.beginFill(0x0000ff, 10);
    holder_mc.moveTo(mix, miy);
    for (var i = 0; i<coord_ar.length; i++) {
        holder_mc.lineTo(coord_ar[i].x, coord_ar[i].y);
    }
    holder_mc.lineTo(mix, miy);
    holder_mc.endFill();
}
function fClear() {
    removeMovieClip(holder_mc);
    coord_ar = [];
}
this.onMouseDown = function() {
    holder_mc = this.createEmptyMovieClip("holder_mc", this.getNextHighestDepth());
    mix = this._xmouse;
    miy = this._ymouse;
    this.onEnterFrame = function() {
        coord_ar.push({x:this._xmouse, y:this._ymouse});
        fDraw();
    };
};
this.onMouseUp = function() {
    delete this.onEnterFrame;
    //fClear();
};




drawRectangle MovieClip prototype          

Clasificado bajo: AS2 (deprecated), Prototipos, Draw — drus @ 6:22 pm

Este prototipo dibuja rectángulos por medio de la API de dibujo de flash. Muy completo, permite especificar incluso la redondez de las esquinas.

Lo lamento pero no sé de dónde demonios lo saqué :(
Quizás de after-hours o de prototype aunque lo busco y no lo encuentro

Actionscript:
MovieClip.prototype.drawRectangle = function(Nombre, Radio, AnchoT, AltoT, colorFondo, colorLinea, Trazo, Alfa, Prof) {
    this.createEmptyMovieClip(Nombre, prof);
    Ancho = AnchoT-Radio;
    Alto = AltoT-Radio;
    clip = this[Nombre];
    vel = .1;
    with (clip) {
        lineStyle(Trazo, colorLinea);
        beginFill(colorFondo, Alfa);
        moveTo(Radio, 0);
        lineTo(Ancho, 0);
        for (ang=270*(Math.PI/180); ang<=360*(Math.PI/180); ang += vel) {
            x = Ancho+Radio*Math.cos(ang);
            y = Radio+Radio*Math.sin(ang);
            lineTo(x, y);
        }
        lineTo(AnchoT, Alto);
        for (ang=0; ang<=90*(Math.PI/180); ang += 0.05) {
            x = Ancho+Radio*Math.cos(ang);
            y = Alto+Radio*Math.sin(ang);
            lineTo(x, y);
        }
        lineTo(Radio, AltoT);
        for (ang=90*(Math.PI/180); ang<=180*(Math.PI/180); ang += vel) {
            x = Radio+Radio*Math.cos(ang);
            y = Alto+Radio*Math.sin(ang);
            lineTo(x, y);
        }
        lineTo(0, Radio);
        for (ang=180*(Math.PI/180); ang<=270*(Math.PI/180); ang += vel) {
            x = Radio+Radio*Math.cos(ang);
            y = Radio+Radio*Math.sin(ang);
            lineTo(x, y);
        }
        endFill();
    }
};
//
//Uso
//Nombre, Radio, AnchoT, AltoT, colorFondo, colorLinea, Trazo, Alfa, Prof
this.drawRectangle("mc", 4, 136, 16, 0xADBBBC, 0xADBBBC, 0, 10, 1);

Corrección 31/08/06: Había un error en el parámetro "Trazo" que impedía dibujar el trazo de la caja publicando en AS2.

Enlaces relacionados: No related posts, | Tags: , , ,



Siguiente página »

AS_toolKit | Powered by WordPress | Skinned by Drus Unlimited | RSS Feed | Copyleft