0

私はショーケースをやっています.XMLからロードされる4つの写真があります.すべての写真には説明があります.フレーム内のすべての写真のテキストを読み込もうとしますが,説明の1つだけを読み込んでください.画像を読み込むことができます.しかし、それらすべての説明を読み込めません。

私を助けてください、私は3日間働いていますが、答えが見つかりません.

import flash.display.Loader;
import flash.net.URLRequest;

import fl.controls.ProgressBar;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var columnas:Number;
var xml_x:Number;
var xml_y:Number;
var miniatura_ancho:Number;
var miniatura_alto:Number;
var imagenes:XMLList;
var total_xml:Number;

var link:String;

var i:Number=0; 

var contenedor_mc:MovieClip;
var precargar_mc:MovieClip;
var todo_mc:MovieClip;

var contador_x:Number = 0;
var contador_y:Number = 0;

var interpolaciones:Array = [];
var contenedor_mc_interpolacion:Tween;
var todo_interpolaciones:Tween;

var texto:TextField = new TextField();


import flash.display.Loader;
import flash.net.URLRequest;

var colchon_XMLCargador:URLLoader = new URLLoader();
colchon_XMLCargador.load(new URLRequest("swf/ortopedico/ortopedicos_sencillo.xml"));
colchon_XMLCargador.addEventListener(Event.COMPLETE, procesarXML);

function procesarXML(e:Event):void
{
    var colchon_XML:XML = new XML(e.target.data);

    columnas = colchon_XML. @ COLUMNAS;
    xml_x = colchon_XML. @ POSICIONX;
    xml_y = colchon_XML. @ POSICIONY;
    miniatura_ancho = colchon_XML. @ ANCHO;
    miniatura_alto = colchon_XML. @ ALTO;

    imagenes = colchon_XML.imagen;
    total_xml = imagenes.length();

    crearContenedor();
    llamarMiniatura();

    colchon_XMLCargador.removeEventListener(Event.COMPLETE, procesarXML);
    colchon_XMLCargador = null;

}

function crearContenedor():void
{
    contenedor_mc = new MovieClip();
    contenedor_mc.x = xml_x;
    contenedor_mc.y = xml_y;
    addChild(contenedor_mc);
    }

function llamarMiniatura():void
{
    for (var i:Number = 0; i < total_xml; i++)
    {

        var miniatura_url = imagenes[i]. @ miniatura;

        var miniatura_cargador = new Loader();

        miniatura_cargador.load(new URLRequest(miniatura_url));
        miniatura_cargador.contentLoaderInfo.addEventListener(Event.COMPLETE, miniaturaCargada);

        miniatura_cargador.name = i;

        miniatura_cargador.x = (miniatura_ancho+8)*contador_x;
        miniatura_cargador.y = (miniatura_alto+8)*contador_y;

        texto.htmlText = imagenes[i].descripcion.toString();

        if (contador_x + 1 < columnas)
        {
            contador_x++;
        }
        else
        {
        contador_x = 0;
        contador_y++;
        }

        if (contador_x <= 1)
        {
            contenedor_mc.x = (stage.stageWidth - miniatura_cargador.width -140)/2;
            contenedor_mc.y = (stage.stageHeight - miniatura_cargador.height -48)/2;
        }

        if (total_xml <= 4)
        {
            contenedor_mc.x = (stage.stageWidth - (total_xml*miniatura_ancho)-(8+total_xml))/2;
            contenedor_mc.y = xml_y;
        }
        else
        {
            contenedor_mc.x = xml_x;
            contenedor_mc.y = xml_y;
        }

    }
}

function miniaturaCargada(e:Event):void
{
    var miniatura:Loader = Loader(e.target.loader);
    contenedor_mc.addChild(miniatura);

    addChild (texto);
    interpolaciones[Number(miniatura.name)] = new Tween(miniatura,"alpha",Strong.easeIn,0,1,0.5,true);

    miniatura.contentLoaderInfo.removeEventListener(Event.COMPLETE, miniaturaCargada);
}



//Vinculo;
texto.addEventListener(TextEvent.LINK, vinculo_texto);

function vinculo_texto(te:TextEvent):void
{
    navigateToURL(new URLRequest(link));
}


function interpolacionFin(e:TweenEvent):void
{
    var cargador:Loader = Loader(e.target.obj);
    cargador.unload();
    todo_mc.removeChild(cargador);
    removeChild(todo_mc);

    todo_mc = null;

    var interpolacion:Tween = Tween(e.target);
    interpolacion.removeEventListener(TweenEvent.MOTION_FINISH, interpolacionFin);
}
4

1 に答える 1

0

The_asManは正しいです。テキストフィールドが 1 つあり、ループごとにその値を再割り当てしていますllamarMiniatura()。ループごとに値を連結するか、新しいテキストフィールドを作成して追加することを検討してください。


連結:

texto.htmlText = texto.htmlText + "\n" + imagenes[i].descripcion.toString();


新しいテキストフィールド:

var txt:TextField = new TextField();
txt.addEventListener(TextEvent.LINK, vinculo_texto);
txt.htmlText = imagenes[i].descripcion.toString();
addChild(txt);
于 2012-06-01T16:16:22.273 に答える