Comunidad de diseño web y desarrollo en internet online

Como saber si una variable esta vacía en AS3?

Citar            
MensajeEscrito el 14 Jul 2011 12:32 am
Hola, quiero hacer que mi swf cargue imagenes de un xml. Funciona bien pero en el xml no todos los elementos tienen imagen, así que este es el valor que tiene flash en estos casos: <imagen></imagen>

Quiero poner un if para decirle a flash que cuando se encuentre un campo de imagen vacío utilice una URL predeterminada. Como puedo hacer esto?

Intente esto pero no me funciono.

Código ActionScript :

if(songlist[currentIndex].image != null){
   ldr.source= songlist[currentIndex].image;
   }else{
      ldr.source= "/img/default-medium.jpg";
   }



Me puede Ayudar?

Por aldebaran88

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Jul 2011 06:03 am
Agradecería mucho si alguien me pudiera ayudar por que me urge.
No se si estoy utilizando la función correcta ( != null ) o se necesita
otra cosa.

Espero que alguien sepa, no debería de ser complicado pero no se cuales son los operadores que debería de usar.

Por aldebaran88

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Jul 2011 04:22 pm
como llegaste a tener songlist[currentIndex] ? en que formato estás pidiendo el xml? puedes poner un ejemplo del xml o un pedazo más grande para entender mejor?

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

chrome
Citar            
MensajeEscrito el 18 Jul 2011 01:19 pm
No estoy puesto en AS3, pero me parece que lo que haces es pasar una URL al loader diciéndole qué imagen cargar; si esa URL no está en tu array, entonces le cargas una imagen predefinida.

Bien, en principio yo metería en el array las URL en formato String, con lo que el array cargado sería algo como esto:

songList("/img/imagen1.jpg","/img/imagen2.jpg",....) hasta el nº de imágenes que tuvieras cargado.

Si en algún caso la canción en concreto no tuviera una imagen asociada, este valor dentro del array sería "", o sea:

songList("/img/imagen1.jpg","/img/imagen2.jpg","","/img/imagen4.jpg",....)

De esta forma, lo que tienes que preguntar es si el item del índice[x] está en "":

Código :

if(songlist[currentIndex] != ""){
   ldr.source= songlist[currentIndex];
   }else{
      ldr.source= "/img/default-medium.jpg";
   }


Otro caso sería que no hubiese en el array tantos elementos como el número de índice que pides, esto es, que el número de índice que solicitas es el 5 y el array sólo tiene 3 elementos. Para eso, e incluyendo la aproximación que te he puesto antes, yo escribiría el siguiente código:

Código :

var totalList:int = songlist.length;
if(currentIndex < totalList && songlist[currentIndex] != ""){
   ldr.source= songlist[currentIndex];
   }else{
      ldr.source= "/img/default-medium.jpg";
   }


De esta manera compruebas, por un lado, que el índice sea correcto, y por otro, que haya una URL en el índice solicitado.

No sé si la solución es muy ortodoxa, pero en cualquier caso espero que te sirva de ayuda o te dé una pista de cómo hacerlo correctamente.

Un saludo

Por CidDeMizar

81 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Jul 2011 05:02 am
Gracias por la ayuda.
CidDeMizar estoy pasando mis datos con un xml que se conecta a una base de datos. Como pueda haber muchas imágenes y no tienen un id sucesivo no se si pueda hacer lo que comentas como la segunda opción.
En cuanto a la primera lo voy a intentar. Alguna vez creo haberlo hecho así y no funcionó pero no pierdo nada con intentarlo otra vez. Lo que no sé es si flash interpreta los datos obtenidos del xml como strings. Y en caso de que no, sabes como puedo convertirlos en strings?

Por aldebaran88

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Jul 2011 09:23 am

Código ActionScript :

ldr.source = songlist[currentIndex].image || "/img/default-medium.jpg"; 

Eso es todo ;)
Ahi dice, si songlist[currentIndex].image existe, pues toma ese valor, sino, usa la otra imagen.
Por cierto, para convertir cualquier objeto en String puedes usar fundición (es lo que google tradujo del ingles 'casting'):

Código ActionScript :

var miVariable : String = valorNumerico as String;
// o asi:
var miVariable : String = String(valorNumerico);

Por ultimo, que yo sepa todo lo que viene de un xml es 'string' por defecto.

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 04 Ago 2011 06:13 pm
Muchas Gracias, lo probaré ahora mismo por que la otra opción no funciono bien, no se por que.

Por aldebaran88

10 de clabLevel



 

chrome

 

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