Pues estoy publicando en AS2 pq utilizo campos de texto dinámicos con
textFormat y alguna otra cosilla. Tengo un poco de "batiburrillo", la
verdad.
Joseba ¿eval creo q no se puede usar en AS2? ¿podría sustituirlo por un
This? no lo había pensado. Lo intentaré.
Saludos
Mar
Mas INFO -->
Tengo un xml que parseo a pedales (esto es otra historia)y voy creando
clips (botones de un menu) a los que paso propiedades que guardo en dos
objetos. Uno define al botón y el otro a un submenú asociado (aquí es
donde salta el sapo).
La lógica que uso es recuperar desde cada botón (generado dinámicamente)
las propiedades del objeto que le he pasado al crearlo. Cada uno tiene las
suyas personalizadas.
Me dá no se que largaros de golpe el chorizo de código pq es algo largo (y
supongo que caótico), pero ahí va:
en la lt principal (de momento):
//para los botones principales
function itemMP (id, tit, fecha, imagenes){
this.id = id;
this.tit = tit;
this.fecha = fecha;
this.imagenes = imagenes;
}
//para los de cada submenú
function itemSubM (id, url, text){
this.id = id;
this.url = url;
this.text = text;
}
docXML = new XML();
docXML.ignoreWhite = true;
docXML.onLoad = function (){
pattern = docXML.childNodes;
XMLmenu = pattern[0].childNodes;
for (i=0;i<XMLmenu.length;i++){
var botName = "bot"+i;
_root.attachMovie("botMP",botName,i);
/*botName._x = 50; //¿¿no funciona esta sintaxis; no accede a la
propiedad??
botName._y = botName._height*i;*/
setProperty (botName,_x,50);
var Height = getProperty(botName,_height);
setProperty (botName,_y,100+Height*i);
XMLitem = XMLmenu[i].childNodes;
datos = new Array();
for (j=0;j<XMLitem.length;j++){
if(XMLitem[j].childNodes[0].nodeValue!=null){
datos.push(XMLitem[j].childNodes[0].nodeValue);
}
if (XMLitem[j].childNodes[0].childNodes){
imagenes = XMLitem[j].childNodes;
for(k=0;k<imagenes.length;k++){
set(botName+".itemSM"+k, new itemSubM
(imagenes[k].attributes.id,
imagenes[k].attributes.url, imagenes[k].firstChild));
}
}
}
set(botName+".itemMP", new itemMP (XMLmenu[i].attributes.id,
datos[0],
datos[1], imagenes.length));
}
}
this.docXML.load("estructuraPortfolio.xml");
========
en el boton:
on(release){
//Si ya existe uno anterior lo borro
if(SMh){
SMh.removeMovieClip();
}
_root.photoHolder.removeMovieClip();
_root.pieFoto.removeTextField();
//Creo los campos de texto dinámicos para titulo y fecha
var fmt:TextFormat = new TextFormat();
fmt.font = "miROTIS13";
fmt.color = 0xAA3333;
fmt.size = 13;
var fmt1:TextFormat = new TextFormat();
fmt1.font = "miLucida11";
fmt1.color = 0x333333;
fmt1.size = 11;
var fecha:TextField =
_root.createTextField("fecha_txt",10,150,120,100,20);
var titular:TextField =
_root.createTextField("titulo_txt",11,150,100,100,20);
titular.setNewTextFormat(fmt);
titular.embedFonts = true;
titular.textWidth = autoSize;
titular.text = itemMP.tit;
fecha.setNewTextFormat(fmt1);
fecha.embedFonts = true;
fecha.textWidth = autoSize;
fecha.text = itemMP.fecha;
//Construyo el Submenú
var SMh:MovieClip = _root.createEmptyMovieClip("SMholder",12)
for (i=0;i<itemMP.imagenes;i++){
var newSM:MovieClip = SMh.attachMovie("botSM","newSM"+i,i);
newSM._x = 250;
newSM._y = 100 + (newSM._height * i);
newSM.label_mc.label_txt.text = i+1;
//newSM.text = _root.bot0.itemSM0.text;
//newSM.url = _root.bot0.itemSM0.url;
//newSM.url = itemSM0.url;
//newSM.text = itemSM0.text;
//*****esto es lo que no funciona, si te fijas en el
anterior es una comprobación estática que si puedo
recuperar, aunque logicamente siempre igual
itemSM = "itemSM"+i;
trace (itemSM );
newSM.url = itemSM.url;
}
}
Finalmente lo recupero desde el clip de submenú
on(release){
var ph:MovieClip = _root.createEmptyMovieClip("photoHolder",100);
ph._x = 350;
ph._y = 100;
ph.loadMovie(url);
var pie:TextField =
_root.createTextField("pieFoto",105,270,100,75,300);
pie.text = text;
}
> ¿Para que versión del player publicas?
> Supongo que es en AS1, ¿puedes poner algo más de código?
>
>
> El día 21/08/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> escribió:
>>
>> Hola a [EMAIL PROTECTED],
>>
>> eeehhhooo
>>
>> ya de vuelta de las vacaciones, ¿alguien por ahí?
>>
>> este es uno de esos problemas de primero. Como siempre, lo he arreglado
>> con una ñapa, pero no tiene ningún sentido para mi. A ver si los que
>> sabeis más me lo podeis explicar, y así aprendo algo... :-)
>>
>> pues el caso es que intento recuperar, a través de un bucle, las
>> propiedades de una serie de instancias de un objeto para pasarlas a los
>> botones en un submenu.
>> En el depurador puedo ver las instancias declaradas correctamente dónde
>> las quiero. Cuando intento recuperar esto y pasarlo (i es la variable q
>> controla el bucle):
>>
>> itemSM = "itemSM"+i;
>> newSM.url = itemSM.url;
>>
>> si hago un:
>> trace (itemSM );
>> efectivamente nombro correctamente las instancias que quiero llamar pero
>> la expresión
>> itemSM.url
>> siempre resulta en undefined, o sea, que me la toma como un literal...
>>
>> ¿Esto sólo puede ser así al recuperar propiedades?
>> Seguro que se os ocurre alguna otra manera pero yo en este momento... na
>> de na :-/
>>
>> Saludos y que os sea leve el retorno.
>>
>> Mar
>>
>> -----------------------------------------------------
>> ASNativos
>> www.5dms.com
>> subscripciones/desubscripciones
>> http://asnativos.5dms.com
>> -----------------------------------------------------
>>
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------
>
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------