AS3 imagen cuestiones carrusel de posicionamiento

  • ew_holmes
  • Born
  • Born
  • No Avatar
  • Registrado: Dic 09, 2010
  • Mensajes: 4
  • Status: Offline

Nota Diciembre 9th, 2010, 5:47 pm

Hola a todos,

Recientemente he realizado un carrusel de imágenes, potenciadas por XML. Trabaja muy bien en la mayoría de navegadores, en la mayoría de las apariciones. Un tema que ha venido hasta principalmente en las versiones anteriores de IE, así como al azar en Firefox (aproximadamente una vez cada 30 actualiza la página) es que el archivo SWF parece hacer caso omiso de la posición que he descrito en el código.

En lugar de girar con una escala, y entre alfa, las imágenes sólo se siente en simpatia en la esquina superior izquierda del archivo SWF, pero todavía tienen en la escala, y alfa, y también parece que aparecen en la parte superior de la más grande entre si a fin de los más pequeños, que es como funciona el carrusel. Se hace caso omiso de la circunferencia de la trayectoria.



Este es el código en mi fla.:

importación flash.filters.BlurFilter;
importación flash.filters.BitmapFilterQuality;
importación fl.transitions.easing. *;
fl.transitions importación .*;
importación flash.filters.BlurFilter;

/ / PARAMETROS DE CARRUSEL

var RadiusX: Number = stage.stageWidth/2.5;
var RadiusY: Number = 20;
var CenterX: Number = stage.stageWidth/2.3;
var CenterY: Número stage.stageHeight = / 3;
var fade = 1; / / alfa modificar la imagen del carrusel [0,1]

useFixedImageSize var = 1;

/ / Cambiar la velocidad
var velocidad: Number = 0. 01;

mouse_acc var = 8000;

var contenedor: MovieClip = new MovieClip (); / / pulgares contenedor
this.addChild (contenedor);


/ / Conjunto de archivos de datos xml
xmlData var = "includes / XML / carousel_images.xml";

var xmlObj: XMLDocument;
nodos var = new Array ();
var mcArray: Array = new Array (); / / almacenar los artículos que los clasifique según su "profundidad" - ver sortBySize () función.


init (); / / llamada de inicio -> Carga de configuración XML y crear objetos

function init () {
xmlObj = new XmlDocument ();
xmlObj.ignoreWhite = true;

var loader: URLLoader = new URLLoader ();
var petición: URLRequest = new URLRequest (xmlData);
loader.load (petición);

loader.addEventListener ("completo", onComplete);
cargador. addEventListener ("ioError", onIOError);
}

onIOError función (event: Event): void {
trace ("IOError (puede que el archivo XML no sale o tiene un nombre incorrecto)");
}

función onComplete (event: Event): void
{
var loader: URLLoader = event.target como URLLoader;
si (cargador! = null)
{
xmlObj.parseXML (loader.data);
xmlHandler ();
}
más
{
trace ("El cargador no es un URLLoader! ");
}
}

xmlHandler function () {
addObjects ();
startEngine ();
}

startEngine function () {
container.addEventListener ("enterFrame", startMovie);
}


numItems var;
var los objetos;
var idx;

addObjects function () {/ / añadir objetos en la escena

objetos = xmlObj.firstChild.childNodes;
numItems = objetos. de longitud;

for (var i = 0; i <numItems; i + +) {

if (useFixedImageSize == 1) Source1 = "item"; / / imagen mc vinculación Identificación de la biblioteca
más Source1 = "item_01";
var sourceType1 = "biblioteca";
var regName1 = "p" + i; / / el registro del nombre usado en Flash


classDef var = getDefinitionByName (Source1);
menuItemMc var = classDef nueva;
. MenuItemMc name = regName1;
contenedor. addChild (menuItemMc);
currMc var = container.getChildByName (regName1);

var = currMc0 container.getChildByName ("p0");
idx = container.getChildIndex (currMc0);

/ / Trace (currMc nombre + "" + idx.);
mcArray empuje (currMc).;

currMc.buttonMode = true;
currMc.useHandCursor = true;
currMc.mouseChildren = false;

currMc ["Info"] = objetos [i];
currMc._load.alpha = desaparecer;
/ / CurrMc. addEventListener ("mouseover", mouseRollOver);
/ / CurrMc.addEventListener ("mouseOut", mouseRollOut);
/ / CurrMc.addEventListener ("mouseDown", mousePress);

currMc._angle = i * ((Math.PI * 2) / numItems);
}

}

mouseRollOver función (e: MouseEvent) {
/ / E.target._load.alpha = 1;
TransitionManager.start (e.target, {tipo: Fotos, dirección: Transición EN, duración: 0.5, facilitando:. Strong.easeOut});
e.target. addEventListener ("motionFinish", finishAnim);
}
finishAnim función (e: Event) {
e.target._load.alpha = desaparecer;
}
/ *
mouseRollOut función (e: MouseEvent) {
e.target._load.alpha = desaparecer;

}
* /
mousePress función (e: MouseEvent) {

/ / LoadBigImage (e.target);

}

releaseOutsideTarget var;



releaseHandler función (e: MouseEvent) {
stage.removeEventListener (MouseEvent. MOUSE_UP, releaseHandler);
releaseOutsideTarget = null;
}


startMovie función (e: Event) {
/ / Añadir objetos en la escena

for (var i = 0; i <numItems; i + +) {

var regName1 = "p" + i;
currMc var = container.getChildByName (regName1);
currMc.x = Math.cos (currMc._angle) * RadiusX + CenterX;
currMc.y = Matemáticas.Sin (currMc._angle) * RadiusY + CenterY;
var s: Número currMc.y = / (CenterY RadiusY +);

currMc.scaleX * s = 1;
currMc. scaleY = s * 1;
currMc._angle + = velocidad;
currMc.alpha s = s *;
currMc.filters = [nuevo BlurFilter (s [1 / s] * 25, s-[1 / s] * 25, 2)];


DPTH var = Math.round (currMc.scaleX) 120;

sortBySize ();

}

}

/ / Establecer el índice de la lista de visualización (profundidad) de los artículos de acuerdo a sus
/ / ScaleX propiedad de modo que cuanto mayor sea el artículo, mayor es el índice (profundidad)
sortBySize function (): void {
/ / No es una matriz. a fin de utilizar la propiedad ASCENDENTE DESCENDENTE y reverse ()
mcArray.sortOn ("scaleX", Array.DESCENDING | Array.NUMERIC);
mcArray.reverse ();
for (var i: uint = 0; i mcArray.length <; i + +) {
container.setChildIndex (mcArray [i], i + idx);
}
}

stage.addEventListener ("mouseMove", rotateCar);

rotateCar función (e: MouseEvent)
{

/ / Velocidad = (this. mouseX - CenterX) / mouse_acc;
}



Gracias por tomarse el tiempo para mirar, y agradezco todas las respuestas!

Un cordial saludo,

Eric
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Diciembre 9th, 2010, 5:47 pm

  • IceCold
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Nov 05, 2004
  • Mensajes: 1254
  • Loc: Ro
  • Status: Offline

Nota Diciembre 10th, 2010, 4:45 am

esto me parece el caso de que su carga no se completa debido a la conexión a Internet. Para evitar esto, trate de añadir un preloader a su swf o mover el código para el marco de la segunda o tercera y añadir un "stop ();" al final de su código.

También es mejor para que el modo estricto para AS3, ya que tiene algunas advertencias / errores en el código.
es decir:
currMc.filters = [nuevo BlurFilter (s [1 / s] * 25, s-[1 / s] * 25, 2)];
debe ser:
currMc. filtros = [nuevo BlurFilter (s-(1 / s) * 25, s-(1 / s) * 25, 2)];

Para hacer un molde de un tipo a otro, Eiter uso Tipo (objeto), o un objeto de tipos como
es decir:
TransitionManager.start (e.target, {tipo: Fotos, dirección: Transition.IN, duración: 0.5, facilitando: Strong.easeOut});
se convertirá en:
TransitionManager.start (MovieClip (e.target), {tipo: Fotos, dirección: Transition.IN, duración: 0.5, facilitando: Fuerte. easeOut});


Para habilitar el modo estricto, vaya a Archivo-> Configuración de publicación-> en la ficha: Flash -> Configuración de botones (cerca de secuencias de comandos) -> Compruebe el modo estricto
“True mastery transcede any particular art. It stems from mastery of oneself - the ability, developed throgh self-discipline, to be calm, fully aware, and complety in tune with oneself and the surroundings. Then, and only then, can a person know himself. ”
  • ew_holmes
  • Born
  • Born
  • No Avatar
  • Registrado: Dic 09, 2010
  • Mensajes: 4
  • Status: Offline

Nota Diciembre 12th, 2010, 8:13 am

Gracias por su respuesta, Icecold. Me mudé el código al fotograma 3 y se agrega el stop (); línea.

Me encontré con algunos problemas con el modo estricto. Esta es la línea de eso me da un error, en el clip de película:

useBitmapSmoothing this.pare var = no. useBitmapSmoothing;

Además, el problema realmente sólo parece ocurrir en las versiones anteriores de IE. Voy a hacer un preloader y ver si tengo más suerte con eso, sin entrar en modo estricto.

Todo el código de clip de película:

var loaderRotationSpeed = 2;

useBitmapSmoothing this.pare var = no. useBitmapSmoothing;

/ / Var txt = esto ["Info"] attributes.title.;

/ / / Txt_name. texto = txt;

/ / Cargar la imagen
var url = esto ["Info"] attributes.thumb.;
var request1 = new URLRequest (url);
var loader1 = new Loader ();

loader1.load (request1); / / inicio de la carga img / swf
_load. addChild (loader1);

loader1. contentLoaderInfo.addEventListener (el "progreso", progress_loading);
loader1.contentLoaderInfo.addEventListener ("completo", finished_loading);


progress_loading función (e: Event) {

loaderanim.rotation + = loaderRotationSpeed;
}

finished_loading función (e: Event) {

/ / Conjunto de mapa de bits alisado
if (useBitmapSmoothing) e.target.content.smoothing = true;

/ / Eliminar preloader círculo
var la = esto. getChildByName ("loaderanim");
this.removeChild (la);
la = null;


}
  • IceCold
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Nov 05, 2004
  • Mensajes: 1254
  • Loc: Ro
  • Status: Offline

Nota Diciembre 13th, 2010, 2:31 am

como he dicho, necesita algunas piezas de fundición con el fin de que funcione correctamente.
de modo que la línea de los suyos a su vez en:
var useBitmapSmoothing = MovieClip (this.pare no) useBitmapSmoothing.;
“True mastery transcede any particular art. It stems from mastery of oneself - the ability, developed throgh self-discipline, to be calm, fully aware, and complety in tune with oneself and the surroundings. Then, and only then, can a person know himself. ”
  • ew_holmes
  • Born
  • Born
  • No Avatar
  • Registrado: Dic 09, 2010
  • Mensajes: 4
  • Status: Offline

Nota Diciembre 13th, 2010, 4:34 pm

Muchas gracias, Icecold! Realmente aprecio su tiempo y conocimiento.

Ahora está trabajando en su publicación tan estrictas. Yo voy a construir mi preloader en este momento. =]

Publicar Información

  • Total de mensajes en este tema: 5 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 36 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC