Y me tope con este sitio y me parecio muy bueno y decidi registrarme... lei el articulo sobre el correcto uso de Action Script 2 y creo que el autor tiene toda la razon en afirmar que a mucha gente le parece un cambio drastico la transicion de AS2 --> AS3 debido a que esa gente quiza no supo explotar o aprovechar todas las ventajas de AS2 con la Programacion Orientada a Objetos.
Actualmente estoy haciendo un crucigrama con AS3 y queria ver si estoy aplicando bien la metodología que me propone AS3. La estructura de mi pelicula es la siguiente:
Tengo un MovieClip en mi Libreria que se llama CasillaMovieClip este lo tengo exportado para AS. En el primer frame (layer de codigo) de este MovieClip tengo:
Código :
stop(); function showNext():void{ } function getChar():String{ return null; }
En el ultimo frame de este mismo MovieClip tengo:
Código :
letter.text = this.getChar(); if(this.getSiguiente() != this){ this.showNext(); } stop();
Tengo una clase en el archivo Casilla.as que es la siguiente:
Código :
package crossword{ import flash.display.DisplayObject; import flash.display.Sprite; public class Casilla extends CasillaMovieClip{ private var siguiente:Casilla; private var char:String; private var hidden:Boolean; public function Casilla(parent:Sprite){ parent.addChild(DisplayObject(this)); this.hidden = true; } public function show():void{ if(this.isHidden()){ this.gotoAndPlay(2); this.hidden = false; } } public function isHidden():Boolean{ return this.hidden; } public override function showNext():void{ if(this.getSiguiente() != this){ this.getSiguiente().show(); } } public function setChar(ch:String):void{ this.char = ch; } public override function getChar():String{ if(this.char == null){ this.char = ""; } return this.char; } public function setSiguiente(sig:Casilla):void{ this.siguiente = sig; } public function getSiguiente():Casilla{ if(this.siguiente == null){ this.siguiente = this; } return this.siguiente; } } }
Por ultimo en el primer y unico frame de mi fla tengo lo siguiente:
Código :
var word:String = "HIDROGENO"; var chars:Array = new Array(word.length); for(var k:int = chars.length - 1; k >= 0; k--){ chars[k] = new Casilla(this); chars[k].x = 32*(k + 1); chars[k].y = 32; chars[k].setChar(word.charAt(k)); chars[k].setSiguiente(chars[k + (k < chars.length - 1 ? 1 : 0)]); } chars[0].show();
Esto ultimo lo hice solo para ver el avance que llevaba y decidi postearlo en este foro para corroborar si estoy avanzando bien. El resultado hasta el momento es el siguiente:
De ante mano agradesco su respuesta

Saludos...