[FL] Ayuda con Clase AS3 que devuelve valor

24 views
Skip to first unread message

Overdrive

unread,
Nov 8, 2010, 7:15:49 PM11/8/10
to Riactive
Hola!! Primero que nada me gustaría presentarme, estuve en el Latin
Flash Tour en la Ibero, mi nombre es Ismael Cruz, pero todos me dicen
Over soy de Guadalajara, este es mi primer post en Riactive, gracias
pro su ayuda!!

Tengo una clase as3 a la cual le mando 3 variables y en base a ellas
necesito que me calcule un valor y me devuelva uno del tipo Point.

Esta es la Clase:


public class calculaCirculos
{
//variables

private var distanciaTotal:Number;
private var puntoInicial:Point;
private var numeroAtomo:Number;
private var puntoFinal:Point;

private var _distanciaTotal:Number;
private var _puntoInicial:Point;
private var _numeroAtomo:Number;
private var _puntoFinal:Point;

function calculaCirculos(puntoInicial:Point, distanciaTotal:Number,
numeroAtomo:Number):void
{

_puntoInicial = puntoInicial;
_distanciaTotal = distanciaTotal;
_numeroAtomo = numeroAtomo;
//_puntoFinal = puntoFinal;
//calculando()
}

public function calculando():Point
{
var distribucion:Number=360/_numeroAtomo;
var radianes:Number = distribucion * (Math.PI / 180);

//Formulas Matematicas
var xPos:Number = _puntoInicial.x + _distanciaTotal *
Math.sin(radianes);
//
var yPos:Number = _puntoInicial.y - _distanciaTotal *
Math.cos(radianes);
//
var _puntoFinal:Point = new Point(xPos,yPos);


return _puntoFinal;
}

}

}


Y así la mando llamar:

var calculo:calculaCirculos = new
calculaCirculos(puntoInicial,distanciaTotal,numeroAtomo);


atomo.x = calculo.calculando.x;
atomo.y = calculo.calculando.y;

Y recibo este error: 1158 undefined property :S

ya probe moviendo varias cosas pero no mas no entiendo que pasa, esto
mismo ya lo probe sin ser clase y si funciona

Gracias por su apoyo!!

Gz.Francisco

unread,
Nov 8, 2010, 7:39:49 PM11/8/10
to Riactive
El unico problema que tienes es en la implementacion:

Tu tienes

var calculo:calculaCirculos = new
calculaCirculos(puntoInicial,distanciaTotal,numeroAtomo);
atomo.x = calculo.calculando.x;
atomo.y = calculo.calculando.y;

Y debes tener

var calculo:calculaCirculos = new
calculaCirculos(puntoInicial,distanciaTotal,numeroAtomo);
var atomo:Point = calculo.calculando();
//Y puedes acceder a las propiedades asi...
atomo.x;
atomo.y;

El problema es que no estas guardando en ninguna variable el objeto
point que regresas en el metodo calculando. Por eso no encontraba la
propiedad.

Saludos

Overdrive

unread,
Nov 10, 2010, 2:34:18 PM11/10/10
to Riactive
Mil Gracias Francisco, me funciono perfecto, solo que la lógica del
asunto cambio, ando viendo como lo resuelvo, saludos!!

wolfito

unread,
Dec 1, 2010, 3:06:18 PM12/1/10
to Riactive
jojo, aprete mal un botón y no se a donde se fue mi reply! xD


total, era mas que nada un tip, si solo necesitas el cálculo, no hay
porque guardar instancia de la clase, tmb puedes hacerlo asi:

package
{
public class CalculaCirculos
{
function CalculaCirculos():void
{
}

public static function calcula(puntoInicial:Point,
distanciaTotal:Number, numeroAtomo:Number):Point
{
var distribucion:Number = 360 / numeroAtomo;
var radianes:Number = distribucion * (Math.PI / 180);
var xPos:Number = puntoInicial.x + distanciaTotal
*Math.sin(radianes);
//
var yPos:Number = puntoInicial.y - distanciaTotal
*Math.cos(radianes);
//
var _puntoFinal:Point = new Point(xPos,yPos);
return _puntoFinal;
}

}
}


_________

y ya solo guardas el valor del punto calculado:

var punto:Point = CalculaCirculos.calcula(p,d,n);


;)
Reply all
Reply to author
Forward
0 new messages