ActionScript - Como referenciar otra instancia de la misma clase

 
Vista:

Como referenciar otra instancia de la misma clase

Publicado por Iván Calderon (2 intervenciones) el 23/06/2015 15:39:27
Saludos desde Venezuela, gracias por tratar de ayudarme, mi problema es el siguiente tengo una clase dentro de ella existe una función que se repite cada segundo un temporizador, en el programa principal creo dos instancias de esa clase, lo que necesito es poder hacer referencia desde la clase a otras instancias de la misma clase y poder ejecutar sus métodos y modificar sus propiedades, trate de hacer algo así

this.parent.getObjectName("nombredelobjeto").funcionquequieroejecutar();
this.parent.getObjectName("nombredelobjeto").propiedadamodificar=valor;

pero me da error, no me permite ejecutar funciones personalizadas de la clase ni acceder a propiedades que le asigne yo a dicha clase, en este caso, al correr el programa dice que "funcionquequieroejecutar" no existe en la clase displayObject algo así, no se si me explico lo que quiero, quien me pueda ayudar se lo agradecere altamente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Referencia y ejecución de métodos en instancias de una misma clase

Publicado por Alejandro (369 intervenciones) el 28/06/2023 20:31:47
La solución para acceder y ejecutar métodos en instancias de una misma clase es asegurarse de tener una referencia adecuada a esas instancias. En lugar de utilizar `this.parent.getObjectName("nombredelobjeto")`, puedes seguir estos pasos para lograrlo:

1. Asegúrate de que las instancias de la clase tengan nombres asignados. Puedes hacerlo mediante la propiedad `name` o utilizando un enfoque personalizado para identificar las instancias.

2. En tu clase que contiene el temporizador, declara una variable para almacenar la referencia a las instancias de la misma clase:

1
2
// Dentro de la clase que contiene el temporizador
var instancias:Array = [];

3. Cuando crees las instancias de la clase en tu programa principal, guárdalas en el array `instancias`:

1
2
3
4
5
var instancia1:NombreDeTuClase = new NombreDeTuClase();
instancias.push(instancia1);
 
var instancia2:NombreDeTuClase = new NombreDeTuClase();
instancias.push(instancia2);

4. Ahora, en la función del temporizador dentro de tu clase, puedes acceder a otras instancias utilizando la variable `instancias`:

1
2
3
4
5
6
7
8
9
10
function funcionDelTemporizador(event:TimerEvent):void {
  // Acceder a la instancia deseada (en este ejemplo, instancia1)
  var objetoDeseado:NombreDeTuClase = instancias[0];
 
  // Ejecutar el método deseado en la instancia
  objetoDeseado.funcionQueQuieroEjecutar();
 
  // Modificar la propiedad deseada en la instancia
  objetoDeseado.propiedadAModificar = valor;
}

Al almacenar las instancias en el array `instancias`, puedes acceder a ellas utilizando su índice correspondiente. En el ejemplo anterior, se accede a la primera instancia mediante `instancias[0]` y se ejecuta la función deseada y se modifica la propiedad.

Asegúrate de ajustar los nombres de la clase y las variables según tu código real. Además, ten en cuenta que este enfoque es solo un ejemplo y puede requerir ajustes según la estructura y lógica específicas de tu programa.

Recuerda que esta solución se aplica a la problemática que has planteado. ¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar