Comunidad de diseño web y desarrollo en internet online

Ayuda con movieclips en Flashdevelop sin IDE

Citar            
MensajeEscrito el 20 Oct 2013 03:02 am
Ando siguiendo un tutorial que se ve desde YouTube pero empieza creando documento flash ide y quisera saber la forma de aparecer un movieclip al stage usando swc en documento AS3. Ya prove addChild con la declaración var en varias formas solo para aparesca en blanco al compilar proyecto, bueno aquí esta el código sin addchild lo que es aceptable asi usando el flash ide.


package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.KeyboardEvent;

/**
* ...
* @author nombre de autor
*/
public class firstGame extends MovieClip
{
private var leftKeyIsDown:Boolean;
private var rightKeyIsDown:Boolean;
public var mcPlayer:MovieClip;
//setup game loop event listener
stage.addEventListener(Event.ENTER_FRAME, private function gameLoop():void
{

// if left key is currently down
if (leftKeyIsDown == true)
{
//move player left
mcPlayer.x -= 5;
}
// if right key is currently down
if (rightKeyIsDown)
{
//move player right
mcPlayer.x += 5;
}
}


public function firstGame()
{
//set up listeners for when keys are pressed and released
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
}

private function keyUp(e:KeyboardEvent):void
{
trace(e.keyCode)
if (e.keyCode == 37)//if right key is released
{
//right key is released
leftKeyIsDown = false;
}
if (e.keyCode == 39)
{
rightKeyIsDown = false;
}

}
private function keyDown(e:KeyboardEvent ): void
{
if (e.keyCode == 37)//if right key is pressed
{
//right key is released
leftKeyIsDown = true;
}
if (e.keyCode == 39)
{
rightKeyIsDown = true;
}
}
}
}

}



Arriba esta el movimiento de movieclip que se llama mcPlayer solo falta llamar al mcPlayer al stage algo que imagino es simple pero sigo sin lograr.

Por zjepz

0 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Oct 2013 09:14 am
BuenAS:

El código que has puesto tiene bastantes errores tipográficos. Prueba con este.

Código ActionScript :

package 
{
   import flash.display.MovieClip;
   import flash.events.Event;
   import flash.events.KeyboardEvent;
   
   /**
    * ...
    * @author nombre de autor
    */
   public class FirstGame extends MovieClip 
   {
      private var leftKeyIsDown:Boolean;
      private var rightKeyIsDown:Boolean;
      public var mcPlayer:MovieClip;
      //setup game loop event listener
      
      public function FirstGame() 
      {
         //set up listeners for when keys are pressed and released
         if (stage)
            initStage()
         else
            addEventListener(Event.ADDED_TO_STAGE, initStage);
      }
      
      private function initStage(event:Event = null):void
      {
         if (event)
            removeEventListener(Event.ADDED_TO_STAGE, initStage);
         
         stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
         stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
         stage.addEventListener(Event.ENTER_FRAME, gameLoop);
      }
      
      private function gameLoop(e:Event):void 
      {
         
         // if left key is currently down
         if (leftKeyIsDown == true)
         {
            //move player left
            mcPlayer.x -= 5;
         }
         // if right key is currently down
         if (rightKeyIsDown)
         {
            //move player right
            mcPlayer.x += 5;
         }
      }
      
      private function keyUp(e:KeyboardEvent):void 
      {
         trace(e.keyCode)
         if (e.keyCode == 37)//if right key is released
         {
            //right key is released
            leftKeyIsDown = false;
         }
         if (e.keyCode == 39)
         {
            rightKeyIsDown = false;
         }
         
      }
      private function keyDown(e:KeyboardEvent ): void
      {
         if (e.keyCode == 37)//if right key is pressed
         {
            //right key is released
            leftKeyIsDown = true;
         }
         if (e.keyCode == 39)
         {
            rightKeyIsDown = true;
         }
      }
   }
}


Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 21 Oct 2013 09:22 am
Por otro lado hablas de "mcPlayer ". Imagino que tienes un swc que contiene ese MovieClip. En FlashDevelop ve a donde está ese archivo swc y añadelo al proyecto ( la seleccionas con el botón derecho y en el menú que aparece seleccionas "Add to Library. Debes ver el archivo con el texto de color azul).

Una vez que has añadido tu swc al proyecto ya puedes instanciar este MovieClip. Si por ejemplo quieres crear uno llamado "movie":

var movie:mcPlayer = new mcPlayer();
addChild(movie);

Por otro lado, es bueno cuando exportes un MovieClip para ActionScript llamarlo en Mayúsculas; o sea, McPlayer (las clases es costumbre nombrarlas con mayúsculas). Esto te permite haber utilizado un código (no utilices este, ya que tu clase no la has exportado con este nombre):

var mcPlayer :McPlayer = new McPlayer();
addChild(mcPlayer );

Las instancias de una clase deben empezar con minúscula, y las clases con mayúscula, para diferenciarlas.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 21 Oct 2013 09:25 am
...se me ha pasado. Como verás he llamado a la clase FirstGame en lugar de firstGame. Acuerdate de cambiar el archivo firstGame.as por FirstGame.as

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome

 

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