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...
