Comunidad de diseño web y desarrollo en internet online

Alpha en AS3

Citar            
MensajeEscrito el 09 Oct 2009 10:05 pm
Tengo esta variable en la que declaro el color de un rectangulo y quiero que el color negro que declaro sea transparente, alguien me puede ayudar el script es este:

Código ActionScript :

var bitmapData:BitmapData = new BitmapData(450, 450, false, 0x000000); 

Por marcelonologo

Claber

311 de clabLevel


2 articulos

 

Patagonia Argentina

firefox
Citar            
MensajeEscrito el 10 Oct 2009 03:32 am
Hola, para eso tendrías que crear un bitmap primero y luego modificar el alpha a este de esta manera.

Código ActionScript :

var bitmapData:BitmapData = new BitmapData(450, 450, false, 0x000000);
var bm:Bitmap = new Bitmap(bitmapData);
bm.alpha = 0.5
stage.addChild(bm);

Por GersonM_17

330 de clabLevel



Genero:Masculino   Héroes

Flash AS3 / PHP Developer

chrome
Citar            
MensajeEscrito el 10 Oct 2009 07:19 am
También puedes cambiar el tercer parámetro del constructor del BitmapData (que es el que indica la transparencia) a true:

Código ActionScript :

var bitmapData:BitmapData = new BitmapData(450, 450, true, 0x000000);
addChild(new Bitmap(bitmapData));

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Oct 2009 07:32 am
Pero de esa manera el cuadro se hace completamente transparente

Por GersonM_17

330 de clabLevel



Genero:Masculino   Héroes

Flash AS3 / PHP Developer

chrome
Citar            
MensajeEscrito el 10 Oct 2009 08:49 am
Claro, pero por la pregunta, creo que eso es lo que quiere hacer marcelonologo, definir un color de transparencia en un bitmap. Como en el código sólamente se dibuja un rectángulo negro, y hemos definido el color negro como color de transparencia, no se muestra nada, pero si dibujamos un rectángulo rojo sobre ese rectángulo negro, podemos ver la diferencia. Mira este ejemplo, y cambia el tercer parámetro del constructor por false:

Código ActionScript :

var bitmapData:BitmapData = new BitmapData(450, 450, true, 0x00000); 
var rectangle:Rectangle = new Rectangle(0, 0, 100, 100);
bitmapData.fillRect(rectangle, 0xFFFF0000);
addChild(new Bitmap(bitmapData));
trace(bitmapData.transparent);

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Oct 2009 04:17 pm
Les agradezco muchisimo su atención y les cuento de que se trata este script.

Código ActionScript :

   protected function drawReflection():void {
      if (reflection.bitmapData != null) { reflection.bitmapData.dispose(); }
      
      
      var bitmapData:BitmapData = new BitmapData(450, 450, false, 0x000000); 
      
         
      //Dibujar el mapa de bits, y el tinte ella.
      try {
         bitmapData.draw(_item, null, new ColorTransform(0.2,0.2, 0.2,1,0x00,0x00,0x00,0), null, new Rectangle(0,0,450,450));
      } catch (p_e:*) {
         bitmapData.draw(bg, null, new ColorTransform(0.2,0.2,0.2,1,0x0,0x0,0x0,0), null, new Rectangle(0,0,450,450));
         
      }
      
      reflection.bitmapData = bitmapData;
      reflection.x = -200;
      reflection.y = 700; // offset para tapa y la mitad de la altura de
      reflection.scaleY = -1; //    tapa y para compensar la mitad de la altura de
      
   }
}

Por marcelonologo

Claber

311 de clabLevel


2 articulos

 

Patagonia Argentina

firefox
Citar            
MensajeEscrito el 10 Oct 2009 04:28 pm
El scrpt de isidoro me soluciono el problema, re nuevo mis gracias!!!

Por marcelonologo

Claber

311 de clabLevel


2 articulos

 

Patagonia Argentina

firefox
Citar            
MensajeEscrito el 21 Oct 2009 10:35 pm
Hola he dejado la calse con la que estaba trabajando pra obtener algunas prestaciones más y me vuelvo a encontrar con el probalmea del fondo alfa. El script que uso ahora es el siguiente:

Código ActionScript :

package jel.com.display
{
   import flash.display.DisplayObject;
   import flash.display.Sprite;
   import flash.display.StageAlign;
   import flash.display.StageScaleMode;
   import flash.events.Event;

   public class SpriteCenter extends Sprite
   {
      protected var _width:Number;
      protected var _height:Number;
      
      private var background:Sprite;
      private var container:Sprite;
      
      public function SpriteCenter(_width:Number, _height:Number, _background:Sprite = null)   {
         this._width = _width;
         this._height = _height;
         
         if (_background){
            this.background = _background;
         } else {
            background = new Sprite();
         }
         container = new Sprite();
         super.addChild(background);
         super.addChild(container);
         
         addEventListener(Event.ADDED_TO_STAGE, addedToStage);
      }
      
      private function addedToStage(evt:Event):void {
         
         stage.scaleMode = StageScaleMode.NO_SCALE;
         stage.align = StageAlign.TOP_LEFT;
         
         update(container);
         stage.addEventListener(Event.RESIZE, resizeStage);
      }
      
      private function update(target:DisplayObject):void {
          background.width = stage.stageWidth;
         background.height = stage.stageHeight;
         var _x:Number = 0.5*(stage.stageWidth - _width);
         //var _y:Number = 0.5*(stage.stageHeight - _height);
         (_x<0)?target.x = 0:target.x=_x;
         //(_y<0)?target.y = 0:target.y=_y;
         target.y = 0;
       }
      
      private function resizeStage(evt:Event):void {
         update(container);
      }
      
      public override function addChild(child:DisplayObject):DisplayObject {
         return container.addChild(child);
      }
      
      public override function removeChild(child:DisplayObject):DisplayObject {
         return container.removeChild(child);
      }
      
      public override function addChildAt(child:DisplayObject, index:int):DisplayObject {
         return container.addChildAt(child, index);
      }
      
      public override function removeChildAt(index:int):DisplayObject {
         return container.removeChildAt(index);
      }
      
   }
}


Si me pueden dar una mano con este se los agradezco.

Saludos

Por marcelonologo

Claber

311 de clabLevel


2 articulos

 

Patagonia Argentina

firefox
Citar            
MensajeEscrito el 22 Oct 2009 08:09 am
Hola,
¿cuál es exactamente el problema? Por lo que veo en tu clase no hay ningún BitmapData al que aplicar la transparencia.
Si te refieres a tu sprite background, lo que tienes que hacer es crear el BitmapData con la transparencia, añadirlo a un sprite (por ejemplo: backgroundSprite.addChild(new Bitmap(bitmapData));), y ese backgroundSprite será el que pases como parámetro al constructor de tu clase.

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Oct 2009 11:20 am
Me podes pasar el código de lo que decis?

Gracias Isidoro nuevamente.

Por marcelonologo

Claber

311 de clabLevel


2 articulos

 

Patagonia Argentina

firefox
Citar            
MensajeEscrito el 22 Oct 2009 02:28 pm
Claro, la idea es crear el BitmapData transparente en el lugar donde vayas a instanciar a SpriteCenter. Para probar, puedes crear un nuevo fla y pones en las acciones del primer fotograma:

Código ActionScript :

import jel.com.display.SpriteCenter;

//Creamos el bitmapdata con transparencia:
var bitmapData:BitmapData = new BitmapData(450, 450, true, 0x00000);
var rectangle:Rectangle = new Rectangle(0, 0, 100, 100);
bitmapData.fillRect(rectangle, 0xFFFF0000);

//Creamos el sprite que se pasará como parámetro:
var sprite:Sprite = new Sprite();
sprite.addChild(new Bitmap(bitmapData));

//Creamos la instancia de SpriteCenter:
var spriteCenter:SpriteCenter = new SpriteCenter(100, 100, sprite);
addChild(spriteCenter);

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Oct 2009 08:38 pm
Sos groso Jorge, gracias por seguir contestando, anduvo todo perfecto.


Saludos!!

Por marcelonologo

Claber

311 de clabLevel


2 articulos

 

Patagonia Argentina

firefox

 

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