Hola
Balkar !
Los códigos que te voy a mostrar son en Actionscript 3.0, espero que sigas esa línea porque te va a facilitar el desarrollo del juego.
Puedes utilizar un vector de objetos definiendo una variable del tipo Array, en As3.0 tienes algunas clases para manejar colecciones de objetos como
ArrayCollection.
En cuando al atributo depende mucho de los requerimientos, si quieres que la imagen guarde un estado y comportamiento, en este caso si definiría una clase Imagen y la asociaría con la clase Carta, yo utilicé una cadena para el atributo imagen, solamente quería que almacenara la ruta y en base a eso, por ejemplo cargarla en un movieclip.
Ahora va lo bueno, te va a facilitar muchísimo el cómo trabajarás con flash.
A los movieclips les puedes vincular una clase definida por el usuario (por ti), en este caso puedes definir una clase Carta y vincularla con algún movieclip de la librería.
Creas un movieclip para que sea la carta, ya la tienes bien decoradita y toda la cosa, ahora a ese movieclip lo vinculas con una clase donde definiste comportamientos específicos:
Carta.as
Código actionscript:
Ver originalpackage
{
import flash.display.MovieClip;
import flash.display.Loader;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
public class Carta extends MovieClip
{
private var _valor:int;
private var _imagen:String;
private var _loader:Loader;
public function Carta(valor:int, imagen:String)
{
_valor = valor;
_imagen = imagen;
//Objeto que se encarga de cargar la imagen.
_loader = new Loader();
_loader.visible = false;
loadImage();
addChild(_loader);
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
private function onMouseDown(evt:MouseEvent):void
{
_loader.visible = true;
}
private function onMouseUp(evt:MouseEvent):void
{
_loader.visible = false;
}
public function esMayor(carta:Carta):Boolean
{
if(carta.valor > _valor) {
return true;
}
return false;
}
private function loadImage():void
{
var request:URLRequest = new URLRequest(_imagen);
_loader.load(request);
}
public function get valor():int
{
return _valor;
}
}
}
Debes de heredar de la clase MovieClip porque es una vinculación con un movieclip de la librería, ahora buscas en la librería el movieclip carta, das click derecho -> vincular y en el campo clase escribes el nombre de la clase que definiste, que es Carta.
Ahora en la raiz de ru proyecto coloca el siguiente código:
Código actionscript:
Ver originalvar carta1:Carta = new Carta(5, "carta1.jpg");
carta1.x = 100;
carta1.y = 100;
var carta2:Carta = new Carta(10, "carta2.jpg");
carta2.x = 400;
carta2.y = 100;
trace(carta2.esMayor(carta1));
addChild(carta1);
addChild(carta2);
Ahora te daras cuenta cuando compiles el proyecto que se han añadido 2 movieclip carta, cuando le doy click a una, me muestra la imagen de la carta y cuando suelto el click del mouse la oculta, todos esos comportamientos los definí en la clase que coloqué arriba.
Ahora ya nada mas es cosa que experimentes y practiques.
Te voy a dejar el fla del ejemplo por si han quedado algunas dudas.
Un saludote !