>Yo, el chico agregaci�n, har�a una clase menuBuilder ( por poner un nombre
), que no tendr�a porqu� extender de MovieClip, que se encargar�a de agregar
los clips con cada uno de los botones ( que si no tienen comportamientos muy
complicados pueden ser subclases de movieclip, aunque si tienen
comportamiento muy complejo..... - aqu� volvemos a la discusi�n de antes -
).

Creo que estas equivocado. La clase que tendria que crear los botones seria
el Menu propiamente dicho que logicamente extenderia de MovieClip (o
UIObject) y se encargaria de colocar en su interior los botones del menu asi
como tener responsabilidades de acuerdo con el grupo (Menu==*grupo* de
botones).

Aqui no tiene sentido que alguien externo el que construya el menu, sino un
"padre" tambien MovieClip el que instancie los botones con attachMovie (o
createClassObject). No entiendo porque va a hacerlo alguien de fuera.

No voy a entrar en la otra discursion porque creo que Xavi y Sixto han dicho
todo lo que pienso. Me parece incorrecto el utilizar una clase externa. Yo
creo que hubiera planteado el framework de juegos que tu dices ampliamente
basado en la herencia de MovieClips. Y la composicion de movieclips anidados
en todo caso. Pero en ningun caso delegaria las tareas de drag,
fisicas,...etc en clases externas a la de MovieClip.

Los mixins pueden ser la solucion tambi�n para peque�as funcionalidades (o
no tan peque�as, como el DataSelector que menciona Xavi)

En este caso yo haria algo asi:

class Menu extends MovieClip{
 private var __labels:Array;
 public function set labels(value:Array){
  this.__labels = value;
  this.redraw();
 }
 public function get labels():Array{
  return __labels;
 }
 private var __items:Array;
 public function get items():Array{
  return __items;
 }
 public function Menu(){
  __items = new Array();
 }
 public function clearItems():Void{
  for (var p in items){
   items[p].removeTextField();
  }
  __items = new Array();
 }
 public function redraw():Void{
  if(items.length>0){
   clearItems();
  }
  for (var i:Number=0;i<labels.length;i++){
   createTextField("item"+i,i,0,i*30,200,20);
   __items[i] = this["item"+i];
   __items[i].text = labels[i];
  }
 }
 public function addItem(label:String):Void{
  this.__labels.push(label);
  this.redraw();
 }
}

Dejo ficheros online:

http://www.sidedev.net/simplemenu.zip

es un asco leer codigo aqui xDDD

un saludo

Joseba Alonso
www.sidedev.net
www.5dms.com

----------------------------------
Lista ASNativos:[EMAIL PROTECTED]
http://www.5dms.com/listas
----------------------------------

Responder a