Comunidad de diseño web y desarrollo en internet online

FlashDevelop problema con MC

Citar            
MensajeEscrito el 30 Ene 2008 10:37 am
muy buenas. tengo un programa creado principalmente por 3 clases: rectangulo, menu y main.
desde el main creo menus con comportamientos onRollOver, onRollOut, onPress, onRelease y onReleaseOutside, metodos "get and set" y funciones propias como la funcion draw, que dibujan rectangulos con unas dimensiones y un color determinado. bien hasta ahi todo bien. mis "menus-rectangulos" son arrastrables, con dimensiones variables, pero cuando a un menu, que es un MC intento cambiarle la anchura, me desaparece el color, vamos, desaparece del lienzo el elemento y no se porque y si en vez de ponerle un color, le quiero cargar un JPG, directamente no puedo ni posicionarlo ni arrastrarlo ni siquiera detecta cuando hago onRollOver, soo me dibuja el JPG con sus dimensiones en las coordenadas 0,0 y de ahi no se mueve... ojala alguien pueda ayudarme. Aqui pego el codigo de las clases para que echeis un vistazo.

Main.as

Código :

import flash.geom.ColorTransform;
import flash.geom.Point;
import flash.geom.Transform;
import com.mosesSupposes.fuse.*;

class Main
{
   //constantes de la clase
   private static var ANCHURA = 100;
   private static var ALTURA = 100;
   private static var MARGENPANTALLA = 15;
   private static var BORDE = 5;
   public static var NUMMENUS = 3;
   
   public static var mcLienzo:MovieClip;
   public static var fondo:MovieClip;
   
   public static var crearBarraMenu:Barra;
      
   public static var menu0:Menu;
   public static var menu1:Menu;
   public static var menu2:Menu;
   
   private static var colorMenu0:ColorTransform = new ColorTransform(0,0,0,0,255,0,0,0);
   private static var colorMenu1:ColorTransform = new ColorTransform(0,0,0,0,0,255,0,0);
   private static var colorMenu2:ColorTransform = new ColorTransform(0,0,0,0,0,0,255,0);
   
   //variables de la clase
   private static var distanciaVertical:Number = Stage.height / (NUMMENUS + 1);
   private static var posXini:Number = Stage.width - ANCHURA - MARGENPANTALLA;
   
   public static function main():Void
   {
      mcLienzo = _root.createEmptyMovieClip("lienzo", _root.getNextHighestDepth());

      fondo = mcLienzo.createEmptyMovieClip("fondo", mcLienzo.getNextHighestDepth());
      Rectangulo.draw(fondo, new ColorTransform(0, 0, 0, 0, 200, 200, 200, 0), Stage.width, Stage.height, 0, 0);
      
      crearBarraMenu = new Barra(mcLienzo);
      
      menu0 = new Menu(mcLienzo, ANCHURA, ALTURA, posXini, 0, colorMenu0);
      menu1 = new Menu(mcLienzo, ANCHURA, ALTURA, posXini, 0, colorMenu1);
      menu2 = new Menu(mcLienzo, ANCHURA, ALTURA, posXini, 0, colorMenu2);
      
      menu0.setX(posXini);
      menu1.setX(posXini);
      menu2.setX(posXini);
      menu0.setY(distanciaVertical - (ALTURA/2));
      menu1.setY(distanciaVertical*2 - (ALTURA/2));
      menu2.setY(distanciaVertical*3 - (ALTURA/2));
      
      trace(posXini);
      trace(menu0.getX());
      
      menu0.dibujarMenu();
      //menu1.dibujarMenu();
      //menu2.dibujarMenu();
   
   }
}


Menu.as

Código :

import flash.geom.ColorTransform;
import flash.geom.Point;
import flash.geom.Transform;
import com.mosesSupposes.fuse.*;
import mx.effects.Tween;


class Menu extends MovieClip{
   
   //elementos de la clase
   private var menuCrear:MovieClip;
   private var lienzo:MovieClip;
   
   private var ancho:Number;
   private var alto:Number;
   private var posicionX:Number;
   private var posicionY:Number;
   private var id:Number;
   
   private static var contID:Number = 0
   
   private var colorMenu:ColorTransform;
   
   //constructor
   public function Menu(mcLienzo:MovieClip, anchura:Number, altura:Number, posX:Number, posY:Number, color:ColorTransform) {
      
      lienzo = mcLienzo;
      menuCrear = lienzo.createEmptyMovieClip("menuCrear", lienzo.getNextHighestDepth());
      
      
      id = contID;
      contID++;
      
      ancho = anchura;
      alto = altura;
      posicionX = posX;
      posicionY = posY;
      colorMenu = color;
      
      //menuCrear.loadMovie("\\pictures\\prueba.JPG");
      
      menuCrear.onPress = arrastrarMenu;
      menuCrear.onRelease = soltarMenu;
      menuCrear.onReleaseOutside = soltarMenu;
      
      menuCrear.onRollOver = function() {
         trace("sobre el menu");
      }
      menuCrear.onRollOut = function() {
         trace("fuera del menu");
      }
         
   }
   //dibuja el menu en la posicion seleccionada y con el color seleccionado
   public function dibujarMenu() {
      Rectangulo.draw(menuCrear, colorMenu, ancho, alto, posicionX, posicionY);
   }
   //funcion encargada de ajustar los elementos del menu dependiendo del tamaño de este
   private function ajustarElementosMenu() {
      trace("ajustarElementosMenu");
   }
   //funcion encargada de comprobar las posiciones x_mouse, y_mouse y el estado del puntero del raton
   public function comprobarPuntero() {
      trace("comprobarPuntero");
   }
   //funcion encargada de hacer drag en nuestro menu
   private function arrastrarMenu() {
      this.startDrag(false);
   }
      //funcion encargada de hacer drop en nuestro menu
   private function soltarMenu() {
      this.stopDrag();
   }
   //funcion encargada de redimensionar el menu y llamar a la funcion de ajustarElementosMenu()
   private function redimensionarMenu() {
      trace("redimensionarMenu");
   }
   //funcion llamada al release del raton que gira con un angulo aleatorio el menu
   private function girarMenu() {
      trace("girarMenu")
   }
   //funcion quwe endereza la rotacion del menu y lo deja encuadrado a la ventana
   private function enderezarMenu() {
      trace("enderezarMenu")
   }
   
   //GETS
   public function getX():Number {
      return posicionX;
   }
   public function getY():Number {
      return posicionY;
   }
   public function getAlto():Number {
      return alto;
   }
   public function getAncho():Number {
      return ancho;
   }
   public function getID():Number {
      return id;
   }

   //SETS
   public function setX(nuevaX:Number) {
      posicionX = nuevaX;
   }
   public function setY(nuevaY:Number) {
      posicionY = nuevaY;
   }
   public function setAncho(nuevoAncho:Number) {
      ancho = nuevoAncho;
   }
   public function setAlto(nuevoAlto:Number) {
      alto = nuevoAlto;
   }
   
   //actualiza el menu
   public function actualizaMenu() {
      
      this._x = posicionX;
      this._y = posicionY;
      this._height = alto;
      this._width = ancho;
      
   }
}


Rectangulo.as

Código :

import flash.geom.ColorTransform;
import flash.geom.Point;
import flash.geom.Transform;
import com.mosesSupposes.fuse.*;


class Rectangulo extends MovieClip
{
   
   public static function draw(mv:MovieClip, color:ColorTransform, anchura:Number, altura:Number, x:Number, y:Number) {
      with(mv){
         lineStyle(1, color.rgb, 255);
         beginFill(color.rgb, 255);
         moveTo(x, y);
         lineTo(anchura + x, y);
         lineTo(anchura + x, altura + y);
         lineTo(x, altura + y);
         lineTo(x, y);
         endFill();
      }
   }
   
}


para probar el codigo de loadMovie, en la carpeta donde creeis los *.as, deberiais crear una carpeta llamada pictures y dentro de ella un archivo prueba.jpg

espero que este todo el codigo claro y que podais ayudarme
muchas gracias de antemano
atentamente
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 30 Ene 2008 05:02 pm
Puedes poner en algún lado el swf? o el fla?. para poder ayudarte mejor.

Por gustavogarzon

166 de clabLevel



 

msie7
Citar            
MensajeEscrito el 30 Ene 2008 10:34 pm
oka, ahora mismo no puedo, pero mañana por la mañana cuelgo los archivos. al hacerlo con FlashDevelop los archivos que tengo son .as y es todo programacion orientada a objetos con AS2 dividida en clases.
mañana mismo lo subo a algun servidor y linkeo la ulr :-) gracias gustavo por el interes

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 30 Ene 2008 10:54 pm
Ok, todo bien parce XD. lol ghetto style XD.

Por gustavogarzon

166 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Ene 2008 05:57 pm
bueno, al final me he retrasado un poquito, pero con el tema del desfase horario entre Bucaramanga y Valladolid, no se nota tanto :P

esta es la URL donde he colgado los .as para que puedas echarles un vistazo
http://maije2.iespana.es/classes/

por si quieres compilar el programa, he subido tambien las librerias que utilizo generalmente para mis proyectos para que las bajes y las metas en la carpeta que corresponda dentro del proyecto para que las encuentren las clases.

muchas gracias por adelantado
atentamente
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 31 Ene 2008 07:13 pm
Ok maije, tan pronto mi jefe "me lo saque" un poquito, te trato de ayudar. :P

Por gustavogarzon

166 de clabLevel



 

msie7

 

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