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

Problema al crear Reflejo con una clase de carga Dinamica

Estas en el tema de Problema al crear Reflejo con una clase de carga Dinamica en el foro de Flash y Actionscript en Foros del Web. Buenos días , He conseguido realizar una clase que me genere la galería a través de un XML, que tenga el movimiento que quiero , ...
  #1 (permalink)  
Antiguo 28/08/2010, 06:25
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 0
Problema al crear Reflejo con una clase de carga Dinamica

Buenos días ,

He conseguido realizar una clase que me genere la galería a través de un XML, que tenga el movimiento que quiero , todo correcto.

Antes usaba la siguiente función para crear un reflejo :

Código as3:
Ver original
  1. function Reflejo(mc) {
  2.  
  3.  
  4.             //Creo un objeto Bitmap en el que esté dibujado el clip que paso como parámetro
  5.             //Le doy la vuelta indicando que scaleY = -1;
  6.  
  7.             trace("reflejo1");
  8.             trace(mc.width);
  9.             if (mc.width>2880||mc.height>2880) {
  10.                 throw new Error("La imagen supera los 2880 pixeles permitidos para BitmapData");
  11.                 return;
  12.             }
  13.             var bmd:BitmapData=new BitmapData(mc.width,mc.height);
  14.             trace("reflejo2");
  15.            
  16.             bmd.draw(mc);
  17.             trace("reflejo3");
  18.             var bm:Bitmap=new Bitmap(bmd);
  19.             bm.x=0;
  20.             bm.scaleY=-1;
  21.             bm.y=mc.height*2;
  22.             bm.cacheAsBitmap=true;
  23.             trace("reflejo4");
  24.             //Creo un degradado para la mascara por medio de createGradientBox. Jugando con los valores
  25.             //de alphas y ratios se puede ajustar la longitud del reflejo.
  26.             var mascara=new Sprite  ;
  27.             var tiporelleno:String=GradientType.LINEAR;
  28.             var colores:Array=[0x00000000,0x00000000];
  29.             var alphas:Array=[0.5,0];
  30.             var ratios:Array=[0,180];
  31.             var matr:Matrix=new Matrix  ;
  32.             matr.createGradientBox(mc.width,mc.height,Math.PI/2,0,0);
  33.             var spreadMethod:String=SpreadMethod.PAD;
  34.             mascara.graphics.beginGradientFill(tiporelleno,colores,alphas,ratios,matr,spreadMethod);
  35.             mascara.graphics.drawRect(0,0,mc.width,mc.height);
  36.             mascara.x=0;
  37.             mascara.y=mc.height;
  38.             mascara.rotation;
  39.             mascara.cacheAsBitmap=true;
  40.  
  41.  
  42.             //Aplico la máscara a la copia del clip, y añado ambos al clip
  43.  
  44.             bm.mask=mascara;
  45.             mc.addChild(bm);
  46.             mc.addChild(mascara);
  47.             var Anchobm:Number=new Number  ;
  48.             var anchomascara:Number=new Number  ;
  49.             Anchobm=bm.height;
  50.             anchomascara=mascara.height;
  51.             trace(" ancho bm " +Anchobm +"Ancho mascara"+ anchomascara);
  52.  
  53.  
  54.         }

Con una galeria generada desde el Flash no tenian ningun problema, ahora en cambio , me realiza el reflejo totalmente en blanco , ademas de ir escalando la y por cada imagen .

Entonces hice la prueba con esta otra :

Código as3:
Ver original
  1. function mirror(target:MovieClip, maskColor:String):void   {
  2.                  /*Este código copia el MovieClip al que queremos aplicar el reflejo y lo posiciona bajo el y lo invierte*/
  3.    
  4.             var targetClass:Class = Object(target).constructor;
  5.             var targetCopy:MovieClip = new targetClass();
  6.             targetCopy.y = target.y + target.height;
  7.             targetCopy.x = target.x;
  8.             targetCopy.scaleY = -1;
  9.             targetCopy.width = target.width;
  10.             targetCopy.height = target.height;
  11.             addChild(targetCopy);
  12.    
  13.             /*Este código construye un Gradient que será aplicado a la copia del MovieClip para que simule el reflejo*/
  14.    
  15.             var msk:MovieClip = new MovieClip();
  16.             var fillType:String = GradientType.LINEAR;
  17.             var colors:Array = [maskColor, maskColor];
  18.             var alphas:Array = [0, 1];
  19.             var ratios:Array = [0, 255];
  20.             var matrix:Matrix = new Matrix();
  21.             matrix.createGradientBox(target.width / 2, target.height / 2, Math.PI / 2, 0, 0);
  22.             var spreadMethod:String = SpreadMethod.PAD;
  23.             msk.graphics.beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod);
  24.             msk.graphics.drawRect(0, 0, target.width, target.height);
  25.             addChild(msk);
  26.             msk.x = targetCopy.x - targetCopy.width / 2;
  27.             msk.y = targetCopy.y - targetCopy.height / 2;
  28.         }

Con esto consigo que por lo menos, la forma del reflejo sea el de la galeria creada, pero no hay reflejo solo el recuadro del mismo tamañao que el moviclip escaldo de y a -1 y totalmente en blanco.Creo que no detecta los thumbnails, no puedo hacer el reflejo del Loader, y si lo hago del mc donde añado el thumbnail(loader) sale en blanco.

Mi lógica me dice que el reflejo del mc está vacio por que no detecta los thumbnails, pero si los veo en pantalla, porque no es capaz de realizar el reflejo ?

Alguien sabe por donde podría tirar ??

muchas gracias de antemano
  #2 (permalink)  
Antiguo 28/08/2010, 12:05
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema al crear Reflejo con una clase de carga Dinamica

Solo por aclararme, siempre que he preguntado algo.. complicado nunca he obtenido respuesta, es por que realizo algun acción incorrecta en el foro ? He intentado explicarme lo mejor posible, puedo mejorarlo seguro, solo necesito saber si alguien se lo mirará o ... no sigo comprobando si tengo respuesta. No es ni por exigir, ni por poner prisa al asunto, sólo para no quedarme mirando la web esperando una respuesta que no va a llegar sea por que he realizado mal mi pregunta, o porque en este foro no se responden preguntas de este tipo.

Muchas gracias,
  #3 (permalink)  
Antiguo 28/08/2010, 15:56
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: Problema al crear Reflejo con una clase de carga Dinamica

lee esto

http://help.adobe.com/es_ES/AS3LCR/F...ay/Bitmap.html

en concreto esto
Cita:
Si carga un objeto Bitmap de un dominio que no sea el del objeto Loader empleado para cargar la imagen y no hay ningún archivo de política de URL que permita el acceso al dominio del objeto Loader, un script de dicho dominio no podrá obtener acceso al objeto Bitmap ni a sus propiedades y métodos. Para más información, consulte las siguientes secciones:

* El capítulo de seguridad de la guía Programación con ActionScript 3.0 y los últimos comentarios realizados en LiveDocs
* Tema en el centro de desarrolladores de Flash Player: Seguridad
posibles soluciones

1.- Crossdomain.xml http://www.cristalab.com/tips/flash-...n.xml-c65633l/

2.- No coloques la ruta completa de la imagen; es decir si lo pones

http://www.miweb.com/tumb/img.jpg

por

/tumb/img.jpg

suerte
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #4 (permalink)  
Antiguo 29/08/2010, 11:46
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema al crear Reflejo con una clase de carga Dinamica

Con esto entiendo que debo poner el archivo crossdomain , para realizar pruebas en mi pc? en la carpeta raiz del proyecto, correcto ?

Osea, para poder trabajar con archivos cargados en otra clase de nuestro proyecto, y tratarlos en la clase Main, se usa el archivo crossdomain.

Muchas gracias por tus comentarios, ya me he copiado el archivo y puesto en la raiz, acabo de dar los retoques que estoy haciendo y lo pruebo enseguida, insisto, muchas gracias.
  #5 (permalink)  
Antiguo 29/08/2010, 17:51
 
Fecha de Ingreso: mayo-2010
Mensajes: 49
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema al crear Reflejo con una clase de carga Dinamica

He copiado el archivo, y he vuelto a probar las 2 funciones, y he obtenido el mismo resultado.

Las rutas de las imagenes ya las tenia directamente listando desde raiz, tal y como me indicabas.

Me he leido la ayuda de adobe, pero ... no veo por donde coger mi problema, no acabo de entender a que dominio se refiere, si estoy intentando abrir imagenes desde otro servidor, o si habla de diferentes carpetas dentro del mismo servidor.

En todo caso las pruebas las estoy realizando en mi PC domestico , ya que tan solo estoy aprendiendo , asi que las imagenes las tengo en c\proyecto , el cross domain dentro de la misma carpeta, y las clases en com.clases.

Agradezco tus comentarios para despejar mis dudas,

Etiquetas: carga, clase, dinamica, reflejo
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 05:42.