Comunidad de diseño web y desarrollo en internet online

Duda sobre el correcto uso de ActionScript 3

Citar            
MensajeEscrito el 17 Nov 2007 12:36 am
Hola... soy nuevo por aqui... hace algunos años empece con esto de Flash cuando estaba de moda la version 5... poco a poco lo fui dejando y ahora estoy tratando de desenpolvarme... jejeje

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

Por zatarain

1 de clabLevel



Genero:Masculino  

opera
Citar            
MensajeEscrito el 17 Nov 2007 02:28 am
Sorry... :oops: en el segundo bloque de codigo hay un if que sale sobrando, de forma que quedaria simplemete ^^ :

Código :

letter.text = this.getChar();
this.showNext();
stop();

Por zatarain

1 de clabLevel



Genero:Masculino  

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.