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