Bueno, esto es lo que me pasa:
He creado la clase "Vuelo", la cual está incluida en el package "Clases_easyJet", y al intentar acceder al método "Matriz_ordenada" de dicha clase:
Código ActionScript :
import Clases_easyJet.Vuelo; var Flight:Vuelo = new Vuelo(); var Gru:Array = new Array(); Gru = Flight.Matriz_ordenada();//Matriz que almacena los vuelos ...
me devuelve el error:
Código :
TypeError: Error #1010: Un término no está definido y no tiene propiedades. at index_fla::MainTimeline/frame1()
Previamente, me devuelve únicamente el primer elemento de la matriz mediante un bucle for del programa principal, el cual se supone ha de recorrer los 30 elementos de la matriz "Gru"
Este es el código de la función "Matriz_ordenada" dentro del archivo Vuelo.as:
Código ActionScript :
[...]
public function Matriz_ordenada():Array
{
var Matriz:Array = new Array();
Matriz = Vuelos_aleatorios(30);//Vuelos_aleatorios declarada previamente como private
Matriz.sort(Ordena_grupo);//Ordena_grupo declarada previamente como private
return Matriz;
}Supongo que será un error en la declaración del tipo de función y/o variables (public-private-static...), pero no doy con ello...
Gracias a todos por adelantado!
Por si sirve de algo, y para no meterlo todo enmedio del post, adjunto el código de Vuelos.as completo:
package Clases_easyJet
Código ActionScript :
{
public class Vuelo
{
public function Vuelo():void
{
}
//Propiedades de la Clase "Vuelo"
public var Cias:Array = new Array("EZY","EZS");
public var Cia:String = new String();
public var In:int = new int();
public var STA:Date = new Date();
public var Out:int = new int();
public var STD:Date = new Date();
//Función privada que genera una matriz de elementos "Vuelo" aleatoria desordenada.
private function Vuelos_aleatorios(Cantidad:int):Array
{
for (var num:int = 0; num<Cantidad; num++)
{
//Creación de la instancia "Vuelo"
var Fl:Vuelo = new Vuelo();
//Creación de la instancia de "Array"
var Grupo:Array = new Array();
//Porcentaje Cía de vuelos (80% EZY, 20% EZS)
var Id_cia:int = Math.floor(Math.random() * 11);
if (Id_cia < 9)
{
Id_cia = 0;
}
else
{
Id_cia = 1;
}
//Definición de variables aleatorias
var Vuelo_in:int = Math.floor(Math.random()*(8999))+1000;
var Vuelo_out:int = Vuelo_in + 1;
var H_in:int = Math.floor(Math.random() * 23);
var H_out:int = H_in;
//Procedimiento para establecer los minutos en múltiplos de 5
var M_in:int = Math.floor(Math.random() * 11) * 5;
//Procedimiento para establecer la salida a STA+35 min.
var M_out:int = M_in + 35;
//Arreglo minuto 59 Out
if (M_out > 59)
{
M_out -= 60;
H_out += 1;
if (H_out == 24)
{
H_out = 0;
Fl.STD.setDate(+1);
}
}
//Asignación de datos a la instancia de "Vuelo"
Fl.Cia = Fl.Cias[Id_cia];
Fl.In = Vuelo_in;
Fl.Out = Vuelo_out;
Fl.STA.setHours(H_in,M_in,0,0);
Fl.STD.setHours(H_out,M_out,0,0);
//Asignación de la instancia de "Vuelo" a la matriz "Grupo"
Grupo[num] = Fl;
//trace(Arregla_tiempo(i+1),Fl.Cia+Fl.In,HI+":"+MI+"-"+HO+":"+MO,Fl.Cia+Fl.Out);
}
//Se devuelve la matriz con los vuelos aleatorios
return Grupo;
}
//Función privada para el criterio de orden de la función Array.sort();
private function Ordena_grupo(Va:Vuelo, Vb:Vuelo):Number
{
var Va_HI:Number = Va.STA.getHours();
var Va_MI:Number = Va.STA.getMinutes();
var Vb_HI:Number = Vb.STA.getHours();
var Vb_MI:Number = Vb.STA.getMinutes();
if (Va_HI > Vb_HI)
{
return 1;
}
else if (Va_HI < Vb_HI)
{
return -1;
}
else
{
if (Va_MI > Vb_MI)
{
return 1;
}
else if (Va_MI < Vb_MI)
{
return -1;
}
else
{
return 0;
}
}
}
//Función pública: Generar una matriz de elementos "Vuelo" aleatoria ordenada por STA.
public function Matriz_ordenada():Array
{
var Matriz:Array = new Array();
Matriz = Vuelos_aleatorios(30);
Matriz.sort(Ordena_grupo);
return Matriz;
}
}
} 