Comunidad de diseño web y desarrollo en internet online

BlurFilter no funciona sobre movieclip cargado externamente en action

Citar            
MensajeEscrito el 21 Jul 2015 09:27 am
Hola a todos:
Tengo una película principal. En un movieclip vacío cargo otro externamente. El movi externo consta de 19 imágenes, cada una en un frame. Al ejecutar la peli principal aparece cargado el movi externo (la primera imagen del primer frame) y lo debería hacer desenfocado un valor 6, pero no funciona el tipo BlurFilter. Tampoco me funciona el drag. Si ese movi externo se encontrara en la peli principal BlurFilter y dragg funcionan perfectamente. Alguien me puede indicar cómo resolver el problema? Ya he colocado en la peli principal la sentencia mc_imagenLoader._lockroot = true;
Gracias de antemano.

Por cmarcos

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Sep 2015 12:50 pm
¿Lo estás aplicando por código una vez que ha terminado de cargar?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Sep 2015 03:51 pm
Hasta ahora entendía que el movieclip externo ya se había cargado y las siguientes sentencias harían su efecto. Con tu pregunta me planteo si efectivamente no se ha cargado al completo el movieclip externo y por eso no le hacen efecto las sentencias referentes al enfoque y arrastre. Qué orden puedo escribir para que esas acciones hagan su efecto una vez se ha cargado al completo el movieclip externo?

Por cmarcos

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Sep 2015 05:43 pm
Tienes que hacer un preloader o precarga, busca en este mismo por precarga

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Sep 2015 05:46 pm
Muchas gracias. Haré lo que me indicas

Por cmarcos

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2016 12:34 pm
Continuo con el tema del no funcionamiento de BlurFilter sobre un movi cargado externamente en otro. Ya hice un preloader o precarga. Funciona, pero en el momento en que aparece cargado debería tener un blur de 6 y no le hace efecto.
Las sentencias que uso son:

import flash.filters.BlurFilter;
var blur:BlurFilter = new BlurFilter();
blur.blurX = blur.blurY = 6;
enfoque.text=blur.blurX;
mc_imagen.filters = [blur];

Por cmarcos

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2016 02:47 pm
El filtro lo estas poniendo cuando termina la precarga?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Ene 2016 04:24 pm
Si

Por cmarcos

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2016 04:34 pm
No lo veo en el código, no hay callback, solo un aplicación directa del filtro ... please pon lo que falta para que podamos evaluar mejor el problema

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Ene 2016 04:37 pm

Código ActionScript :

var precarga:MovieClipLoader = new MovieClipLoader();
precarga.addListener(this);
function onLoadStart(clip:MovieClip)
{
   clip._visible = false;
   clip.stop();
}
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
   porcentaje = Math.round(bytesLoaded / bytesTotal * 100);
   porcentajeTotal = Math.round(porcentaje / list_swfs.length + 100 / list_swfs.length * cargando);
   preload.gotoAndStop(porcentajeTotal);
   preload.cargando.text = "Loading: " + list_nombres[cargando];
}
function onLoadInit(clip:MovieClip)
{
   cargando++;
   cargaMultiple();
}
//--------------------------
function cargaMultiple(queX:Number, queY:Number)
{
   if (!cargando) {
      cargando = 0;
      this.attachMovie("preload", "preload", this.getNextHighestDepth());
      preload._x = queX;
      preload._y = queY;
   }
   if (cargando < list_swfs.length) {
      precarga.loadClip(list_swfs[cargando], list_contenedor[cargando]);
   } else {
      for (i = 0; i < list_swfs.length; i++) {
         this[list_contenedor[i]]._visible = true;
         this[list_contenedor[i]].play();
      }
      removeMovieClip(preload);
   }
}
//--------------------------
var list_swfs:Array = ["arsenopirita_normal.swf", "arsenopirita_des_der.swf", "arsenopirita_des_iz.swf"];//
var list_contenedor:Array = ["mc_imagen", "mc_imagen_der", "mc_imagen_iz"];//
var list_nombres:Array = ["arsenopirita", "arsenopirita_des_der", "arsenopirita_des_iz"];//
cargaMultiple(200, 150);//200, 150
//--------------------------
import flash.filters.BlurFilter;
var blur:BlurFilter = new BlurFilter();
blur.blurX = blur.blurY = 6;
enfoque.text=blur.blurX;
mc_imagen.filters = [blur];
trace(mc_imagen.filters);
mc_imagen_der.filters = [blur];
mc_imagen_iz.filters = [blur];



Vale así?

Por cmarcos

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Ene 2016 04:49 pm
Ok, no estas esperando a que carguen, con lo cual es lógico lo que te ocurre. No recuerdo mucho de MovieClipLoader (hace 10 años que no uso AS2) pero supongo que es onLoadInit (chequea la documentación). Si es así, ese es el callback donde sabes que un MC ha sido cargado y allí puedes aplicar el filtro. Pero tienes una complicación extra: cargas 3 y no uno solo, entonces en el onLoadInit debes identificar cual de las pelis ha sido cargada (lamentablemente no siempre se cargan en orden, eso depende del peso de cada una) para aplicarle el filtro al contenedor de ese MC, o mas simple si se puede, lo aplicas directamente al MC cargado, que te viene como parámetro en el onLoadInit

De paso, ten en cuenta que poner un código debajo de una llamada a una función asíncrona no garantiza que se ejecutará después, siempre tienes que utilizar un callback

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Ene 2016 04:53 pm
La primera peli se carga al ejecutar el swf. Las otras dos se cargan cuando lo requiere el usuario una o las dos, primero una y luego la otra.

Por cmarcos

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2016 04:43 pm
Ya cambié como me dijiste y, efectivamente, funciona perfectamente y con las 3 cargas. Gracias

Por cmarcos

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2016 05:19 pm
Buenísimo !

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Ene 2016 05:22 pm
Continúo. Ya me surgirán nuevas cosillas a resolver. Espero me des la pauta a seguir. Hasta ahora me vas ayudando mucho. Gracias nuevamente.

Por cmarcos

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Feb 2016 07:01 pm
Bueno....ya me surgió el problema.
Sé que los MC cargados externamente tienen el punto de anclaje arriba a la izquierda y siempre giran desde allí. Para simular que giran desde desde el centro, podría situar un MovieClip vacío dentro de otro, y poner un desfase. Pero no sé como hacerlo, con lo que ya tengo realizado:
----------------------------------

Código ActionScript :

var precarga:MovieClipLoader = new MovieClipLoader();
precarga.addListener(this);
function onLoadStart(clip:MovieClip)
{
   clip._visible = false;
   clip.stop();
}
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
   porcentaje = Math.round(bytesLoaded / bytesTotal * 100);
   porcentajeTotal = Math.round(porcentaje / list_swfs.length + 100 / list_swfs.length * cargando);
   preload.gotoAndStop(porcentajeTotal);
   preload.cargando.text = "Loading: " + list_nombres[cargando];
}

function onLoadInit(clip:MovieClip)
{
   cargando++;
   cargaMultiple();
}
function cargaMultiple(queX:Number, queY:Number)
{
   if (!cargando) {
      cargando = 0;
      this.attachMovie("preload", "preload", this.getNextHighestDepth());
      preload._x = queX;
      preload._y = queY;
   }
   if (cargando < list_swfs.length) {
      precarga.loadClip(list_swfs[cargando], list_contenedor[cargando]);
   } else {
      for (i = 0; i < list_swfs.length; i++) {
         this[list_contenedor[i]]._visible = true;
         this[list_contenedor[i]].play();
      }
      removeMovieClip(preload);
   }
}
//--------------------------
var list_swfs:Array = ["arsenopirita_normal.swf", "arsenopirita_des_der.swf", "arsenopirita_des_iz.swf"];//
var list_contenedor:Array = ["mc_imagen", "mc_imagen_der", "mc_imagen_iz"];//
var list_nombres:Array = ["arsenopirita", "arsenopirita_des_der", "arsenopirita_des_iz"];//
cargaMultiple(200, 150);

----------------------------------------------------------------

Por otro lado tampoco me funciona bien lo de arrastrar el MovieClip

Gracias

Por cmarcos

46 de clabLevel



 

firefox

 

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