LOS SUPUESTOS
Aclaro es Flash 8 y AS2
Bueno todo empieza con una Clase Ventana, y en esa clase pues se ejecuta un attachMovie de la biblioteca con identificador "Ventana" (en la vinculación, no tiene clase).
Bueno dentro de este movieclip existe un boton con nombre "boton_btn" que REPITO esta dentro del movie clip de la biblioteca.
EL PROBLEMA
Yo quiero que cuando se invoque el evento boton_btn.onRelease se ejecuten sentencias, pero como las llamo mas de una vez pues se me ocurrió hacer una función privada (lo he intentado privada y publica) que haga las sentencias que quiero, pero curiosamente cuando le doy clic al "instancia_de clase.boton_btn" pues no hace nada. Haaaaa pero si la pongo sin función (osea las sentencias directamente funciona a la perfección).
Bueno hay les va el codigo de ".\clases\Ventana.AS"
Código :
import Math;
import flash.geom.Point;
import Button;
//import
class clases.Ventana extends MovieClip {
public static var profI:Number = new Number(0);
public static var punto:Point = new Point(10, 50);
public var nombre:String;
public var expocitor:String;
public var ventana:MovieClip;
private var xesca:Number;
private var yesca:Number;
private var xposi:Number;
private var yposi:Number;
private var alfa:Number = new Number(25);
public var maxi:String;
private var loadvar:LoadVars;
public var yo:Ventana;
public var textoide:String;
public var caja;
public function Ventana(boton:MovieClip) {
yo = this;
nombre = boton._name+"Vent";
expocitor = boton._name;
expocitor = expocitor.substr(0, boton._name.length-3);
if (profI == undefined || profI == false || profI == 0) {
profI = 1;
} else {
profI++;
}
ventana = _root.attachMovie("Ventana", nombre, profI);
ventana.titulo_mc.expocitor_txt.text = expocitor;
noActivo(ventana);
botonActivar(ventana);
barraActiva(boton, ventana);
ventana.loadVariables(expocitor+".txt");
meteText();
}
public function meteText() {
ventana.onEnterFrame = function() {
if (this.texto != undefined) {
this.texto_txt.text = this.texto;
delete this.onEnterFrame;
}
};
}
public function noActivo(loc:MovieClip):Void {
xesca = random(25)+50;
yesca = random(25)+50;
xposi = random(700);
yposi = random(500);
loc._xscale = xesca;
loc._yscale = yesca;
loc._x = xposi;
loc._y = yposi;
loc._alpha = alfa;
loc.titulo_mc.onPress = function() {
this._parent.startDrag();
};
loc.titulo_mc.onRelease = function() {
this._parent.stopDrag();
};
}
public function botonActivar(loc:MovieClip):Void {
loc.boton_btn.onRelease = function() {
//OK ES AQUÍ DONDE NO JALA
//ES CURIOSO PERO EN EL DEPURADOR EL TRACE SI SE EJECUTA
trace("hola");
//PERO CUANDO LLEGO AQUÍ LA FLECHA DEL DEPURADOR SE PONE AQUÍ
//LE DOY ENTRAR A FUNCIÓN Y NO HACE NADA
evaluator(loc);
};
}
public function barraActiva(bot:MovieClip, vent:MovieClip):Void {
bot.onRelease = function() {
//Este es el segundo boton que les comento
//OSEA QUE AQUI IRIA TAMBIEN
//evaluator(vent):
if (vent._alpha<100) {
delete vent.titulo_mc.onPress;
delete vent.titulo_mc.onRelease;
vent._alpha = 100;
vent._xscale = 100;
vent._yscale = 100;
vent.swapDepths(100);
vent._x = punto.x;
vent._y = punto.y;
} else if (vent._alpha == 100) {
xesca = random(25)+50;
yesca = random(25)+50;
xposi = random(700);
yposi = random(500);
vent._xscale = xesca;
vent._yscale = yesca;
vent._x = xposi;
vent._y = yposi;
vent._alpha = 25;
vent.titulo_mc.onPress = function() {
this._parent.startDrag();
};
vent.titulo_mc.onRelease = function() {
this._parent.stopDrag();
};
}
};
}
//ESTA ES LA FUNCION QUE NO SE EJECUTA.
public function evaluator(loc:MovieClip):Void {
if (loc._alpha<100) {
delete loc.titulo_mc.onPress;
delete loc.titulo_mc.onRelease;
loc._alpha = 100;
loc._xscale = 100;
loc._yscale = 100;
loc.swapDepths(100);
loc._x = punto.x;
loc._y = punto.y;
} else if (loc._alpha == 100) {
xesca = random(25)+50;
yesca = random(25)+50;
xposi = random(700);
yposi = random(500);
loc._xscale = xesca;
loc._yscale = yesca;
loc._x = xposi;
loc._y = yposi;
loc._alpha = 25;
loc.titulo_mc.onPress = function() {
this._parent.startDrag();
};
loc.titulo_mc.onRelease = function() {
this._parent.stopDrag();
};
}
}
}
Mmmmmm si yo se que mi codigo apesta de lo grande y poco funcional pero denme chance
y pues en el ".\menu.fla" pues esta la sentencia:
Código :
import clases.Ventana; var paco:Ventana=new Ventana(boton_de_menu); /* ESTE botón es otro aunque con este pasa el mismo problema pues me imagino que se arregla igual */
Bueno la carpeta esta aquí.
www.oportunidadeshbl.com/Upload/upload.zip
Gracias y espero que alguien se apiade de mi.

Zguillez