Foros del Web » Creando para Internet » Flash y Actionscript »

problema usando colorTransform

Estas en el tema de problema usando colorTransform en el foro de Flash y Actionscript en Foros del Web. Buenas tardes. Estoy trabajando con un archivo de flash que lo que hace cada 4 segundos es llevarse el dato de color de uno de ...
  #1 (permalink)  
Antiguo 15/12/2012, 14:25
 
Fecha de Ingreso: septiembre-2012
Ubicación: Argentina
Mensajes: 43
Antigüedad: 11 años, 7 meses
Puntos: 0
problema usando colorTransform

Buenas tardes. Estoy trabajando con un archivo de flash que lo que hace cada 4 segundos es llevarse el dato de color de uno de los pixeles de lo que está siendo capturado por la webcam y pasarselo a un movieclip que tomará dicho color.

Lo pude conseguir, pero ahora estoy tratando de hacrlo mediante una transicion para que el cambio no sea tan brusco lo cual me está trayendo complicaciones.

Código :

Código:
import fl.transitions.*;
import fl.transitions.easing.*;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.*;
import flash.display.Shape;
import flash.events.Event;

import VariableGlobal;
VariableGlobal.vars.root = this;

const WIDTH:Number = 600;
const HEIGHT:Number = 450;
var cam:Camera;
var vid:Video;

cam = Camera.getCamera();
         cam.setMode(WIDTH,HEIGHT,15);
         vid = new Video(WIDTH,HEIGHT);
         
         if (cam!=null){ //Si cam no es null (que está funcando)
         vid.attachCamera(cam);
         }else{
            trace("FAVOR DE CONECTAR SU WEBCAM Y SETEARLA");
         }
         vid.filters = [new BlurFilter(10,10,1)];
         var videoContainer:Sprite= new Sprite();
         videoContainer.x= 0;
         videoContainer.y= 0;
         videoContainer.addChild(vid);
         /*addChild(videoContainer);*/

var empieza2:Timer = new Timer (4000);
empieza2.addEventListener(TimerEvent.TIMER, dale);
empieza2.start();

function dale(e:TimerEvent):void{ 
   var miColor:ColorTransform=transform.colorTransform;
   if (!VariableGlobal.vars.colorGlobal){
miColor.color=0xFF0000;
}else{
   miColor.color=VariableGlobal.vars.colorGlobal;
}   
clip.transform.colorTransform=miColor;      

   var _stageBitmap:BitmapData;    
   _stageBitmap = new BitmapData(stage.width, stage.height);
   _stageBitmap.draw(vid);

   var pix:uint = _stageBitmap.getPixel(300,300);
trace(pix.toString(16)); // me sirve para entender

var color0x:String = "0x" + pix.toString(16);
VariableGlobal.vars.colorGlobal = color0x;
var color2:uint = uint(color0x);
VariableGlobal.vars.color2 = color2;
trace(color2);
function interpolateColor(start:ColorTransform, end:ColorTransform, t:Number):ColorTransform {
   var result:ColorTransform = new ColorTransform();
   result.redMultiplier = start.redMultiplier + (end.redMultiplier - start.redMultiplier)*t;
   result.greenMultiplier = start.greenMultiplier + (end.greenMultiplier - start.greenMultiplier)*t;
   result.blueMultiplier = start.blueMultiplier + (end.blueMultiplier - start.blueMultiplier)*t;
   result.alphaMultiplier = start.alphaMultiplier + (end.alphaMultiplier - start.alphaMultiplier)*t;
   result.redOffset = start.redOffset + (end.redOffset - start.redOffset)*t;
   result.greenOffset = start.greenOffset + (end.greenOffset - start.greenOffset)*t;
   result.blueOffset = start.blueOffset + (end.blueOffset - start.blueOffset)*t;
   result.alphaOffset = start.alphaOffset + (end.alphaOffset - start.alphaOffset)*t;
   return result;
}

var startColor:ColorTransform = new ColorTransform();  
var endColor:ColorTransform = new ColorTransform();
endColor.color = color2; // end color of red

var tween:Tween = new Tween(clip, "", Strong.easeOut, 0, 1, 50);
tween.addEventListener(TweenEvent.MOTION_CHANGE, tweenTransform);

function tweenTransform(event:TweenEvent):void {
   // use tween position for interpolation of
   // start and end colors (value 0 - 1)
   clip.transform.colorTransform = interpolateColor(startColor, endColor, tween.position);
}
}


Con este codigo lo que me ocurre es que funciona bien excepto que vuelve siempre al color por default del simbolo movieclip que está en el stage cuyo nombre de instancia es 'clip' el cual es azul.. y lo que yo pretendo es que el color de inicio sea el último color adquirido.
¿En qué me estoy equivocando?

Etiquetas: flash, movie, usando, clips
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:42.