Comunidad de diseño web y desarrollo en internet online

mm..problema con xml o array..depende :D

Citar            
MensajeEscrito el 15 Sep 2008 12:39 am

ironeric23 escribió:

otra cosa para que sirve el fondo?
si lo saco queda todo exactamente igual :)


El fondo seria la zona activa supongo, prueba el codigo original y posiciona el puntero sobre los botones y ahora cambia esto


Código :

   ancho = texto._width; 

por esto

Código :

   ancho = texto._width+60; 


y veras como la zona activa cambia.


por que dices que no me dieron las gracias en esa pagina, no entendi.. :?

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 15 Sep 2008 12:50 am
hola en cuanto a la zona activa habia pensado que era obvio pero como el fondo no se veia y sacando el fondo la zona activa empezaba desde el mismo lugar pregunte xD ..x aora lo dejo sin fondo..q no molesta
y lo de que no te dijieron gracias...pues vos hiciste una especie de libro en el post que me pasaste...
y bueno ahi hay uno igual
pense que no podria ser tanta coincidencia

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

chrome
Citar            
MensajeEscrito el 15 Sep 2008 04:08 am

ironeric23 escribió:

hola en cuanto a la zona activa habia pensado que era obvio pero como el fondo no se veia y sacando el fondo la zona activa empezaba desde el mismo lugar pregunte xD ..x aora lo dejo sin fondo..q no molesta
y lo de que no te dijieron gracias...pues vos hiciste una especie de libro en el post que me pasaste...
y bueno ahi hay uno igual
pense que no podria ser tanta coincidencia



no lo ves por que esta en cero el alpha

cambialo asi:

Código :

beginFill(0xffffff, 100); 


sobre el libro ... yo te enseñe una tienda no un libro. :? , y no vi ningun libro en la web que me mandaste solo un pdf.

a saber que ya no se que es lo que estas haciendo con tu codigo ya me perdi.
:music:

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 15 Sep 2008 01:02 pm
hola gracias no lo habia visto el alpha en 0 :oops:
y lo del libro es esto que pusiste alguna vez:
El efecto libro aqui lo pueden descargar Actionscript 1 .

http://www.pageflip.hu/free.php

ó

http://rapidshare.com/files/130449305/pageflip.zip.html

//------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------
eso es tuyo xD

y lo que te pase era esto
http://www.tagheuer.com/the-collection/the-cat/download/index.lbl
que hicieron algo igual... anyway xD
por ahora solo queda esa pregunta que hice sobre el getnexthigestdepht
gracias salu2

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 15 Sep 2008 02:03 pm
@ironeric23, getNextHighestDepth toma el valor más alto de profundidad (depth) que haya en un MovieClip, de esta forma te evitas cada vez que crees un objeto nuevo tener que especificarle la profundidad ya que si pones dos objetos en la misma profundidad el último elimina al primero, así de esta manera puedes cambiar el código más fácil si te hiciera falta mover el orden de los objetos que creas, pues no tendrías que cambiar el valor de la profundidad:

Si quisiera poner el objeto 4 por detrás del 1 tendría que cambiar todos los valores de profundidad

Código ActionScript :

this.createEmptyMovieClip("obj1", 0);
this.createEmptyMovieClip("obj2", 1);
this.createEmptyMovieClip("obj3", 2);
this.createEmptyMovieClip("obj4", 3);


Sin embargo de la otra forma solo tengo que cambiar la cuarta línea para el principio

Código ActionScript :

this.createEmptyMovieClip("obj4", this.getNextHighestDepth());
this.createEmptyMovieClip("obj1", this.getNextHighestDepth());
this.createEmptyMovieClip("obj2", this.getNextHighestDepth());
this.createEmptyMovieClip("obj3", this.getNextHighestDepth());

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 15 Sep 2008 02:15 pm
perfecto...la ultima explicacion fue muy clara gracias...ahora termine de probar y quedo algo ..
lo subi aca para que veas porque tiene una fallita...
lo que se ve al costado no es el array added sino lo que tendrian que ser los btoones que obviamente no son xD
no se porqye :cry:
el codigo es este y te explico ahi adentro

Código :

//---Arreglo con el valor de cada movie 
import flash.filters.GlowFilter;
var boton:MovieClip; 
var fondo:MovieClip; 
var texto:TextField;
var estilo:TextFormat = new TextFormat();
var ancho:Number; 
var alto:Number; 
var posY:Number = 0;
var posX:Number = 400;
with(estilo){ 
    
   font = "Arial"; 
   size = 15; 
   color = 0x666666; 
    
} 
//aca use el mismo array para los valores del carrito y lo que seria el array que decia secciones que me pasaste
//no se si esta bien hecho eso.
var valores:Array = new Array("1", "2", "3", "4", "5", "6"); 
 
//---Arreglo que guarda los valores añadidos al carrito 
var added:Array = new Array(); 
 
//---Acciones de los movies 
for(var i:Number = 0; i < valores.length; i++){
    
   this["articulo" + i].numero = i;
   this["articulo" + i].onRelease = function():Void{
      added.addToArray(valores[this.numero]);
//aca le puse boton" +[this.numero]..en cambio si le ponia "boton" + i..me daba undifined al costado
     boton = this.createEmptyMovieClip("boton" +[this.numero], this.getNextHighestDepth()); 
   fondo = boton.createEmptyMovieClip("fondo", boton.getNextHighestDepth()); 
   texto = boton.createTextField("texto", boton.getNextHighestDepth(), 0, 0, 0, 0);
   with(texto){ 
       
      autoSize = true; 
      selectable = false; 
      text = valores[this.numero]; 
      setTextFormat(estilo); 
       
   } 
   ancho = texto._width; 
   alto = texto._height; 
   with(fondo){ 
       
      beginFill(0x000000, 0); 
      moveTo(-2, -2); 
      lineTo(ancho + 4, -2); 
      lineTo(ancho + 4, alto + 4); 
      lineTo(0, alto + 4); 
      lineTo(0, 0); 
      endFill(); 
       
   } 
       
   
   //---Situar los botones 
   boton._y = posY; 
   boton._x = posX;
   posY += boton._height; 
   boton.onRollOver = function():Void{ 
       
      var glow:GlowFilter = new GlowFilter(0xFFFFFF, 100, 3, 3, 1, 1); 
       
      var filterArray:Array = new Array(); 
      filterArray.push(glow); 
       
      this.texto.filters = filterArray; 
       
       
   } 
    
   boton.onRollOut = function():Void{ 
       
      this.texto.filters = []; 
       
       
   } 
    
   boton.onPress = function():Void{ 
       
      this.texto.filters = []; 
      this.texto.textColor = "0x99FFFF"; 
       
       
   } 
    
   boton.onRelease = function():Void{ 
       
      this.texto.filters = []; 
      this.texto.textColor = "0x666666"; 
       
       
   } 
    
   boton.onReleaseOutside = function():Void{ 
       
      this.texto.filters = []; 
      this.texto.textColor = "0x666666"; 
       
       
   }
    trace(added); 
   } 
   
} 
//---Prototype de añadir 
Array.prototype.addToArray = function(valor):Void{ 
    
   if(this.indexOf(valor) < 0){ 
       
      this.push(valor); 
       
   } 
    
} 
 
//---Prototype de eliminar 
Array.prototype.deleteToArray = function(valor):Void{ 
    
   var index:Number = this.indexOf(valor); 
    
   if(index >= 0){ 
       
      this.splice(index, 1); 
       
   } 
    
} 
 
//---Prototype de indexOf 
Array.prototype.indexOf = function(search):Number{  
     
   var total:Number = this.length;  
   var index:Number = -1;  
   var item:Number = 0;  
   var finded:Boolean = false;  
     
   while(item < total && !finded){ 
        
      if(this[item] == search){            
         index = item;  
         finded = true;            
      }else{            
         item++;            
      }         
   }  
     
   return index;  
     
} 

obviamente esta mal xq al csotado me aparecen esos numeros en vez de los botones :S que encima lo unico que hacen es crear otros numeros y yo no se lo dije en ningun lado :S

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 15 Sep 2008 03:28 pm
Aqui en esta parte:

Código ActionScript :

this["articulo" + i].onRelease = function():Void  {
   added.addToArray(valores[this.numero]);

   //Exactamente aqui

   boton = this.createEmptyMovieClip("boton" + this.numero, this.getNextHighestDepth());


Cuando te refieres a "this", te refieres al botón que le estás realizando el onRelease, por lo tanto estás creando un botón dentro del botón que presionas, es por eso que adquiere acciones, los botones los tienes que crear fuera del botón:

Código ActionScript :

boton = this._parent.createEmptyMovieClip("boton" + this.numero, this._parent.getNextHighestDepth());

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 15 Sep 2008 04:10 pm
perfectirijillo ^^
xD
faltan dos cosas pero son mas cortitas
una:

Código :

boton.onPress = function():Void{ 
      added.deleteToArray(valores[this.numero]);
      this.texto.filters = []; 
      this.texto.textColor = "0x99FFFF"; 
       
       
   } 

puse eso para borrar los articulos que se iban agregando pero no borra nada
dos:
una vez que agrego un objeto al carrito si apreto otra vez el botoncito de agregar no se agrega al arreglo added pero si
aparece otra vez el botoncito para borrar abajo del otro exactamente igual....igual el link es este x si qres probar pero creo que entendiste......y bueno...no se me ocurre ninguna idea para eso..osea..para q cuando se agregue no se siga agregando :D

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 15 Sep 2008 05:58 pm
me olvide de algo xD perdon.... cuando los articulos sean mas de 11 ya no aparecen porque se acaba el escenario....osea que tendria que haber un scroll......pero los botones los pongo directamente en el root asi que eso es imposible :D
y el input de cantidad simplemente lo creo dinamicamente y le pongo posX u poco mas que el del boton y ya esta no? intentare eso
creo que abuse de borrar el ultimo mensaje ...bueno apenas termino con estas cosas que me faltan posteo el codigo entero para otros que necesiten

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 15 Sep 2008 10:59 pm
ok el problema de quye se sigue agregando a la derecha esta resuelto...agregando un fotograma vacio y que cuando apretas va ai y no aparece nda y no podes apretar....ya sabia que iba a terminar haciendo eso...solo queria saber si ahbia una manera mas ...sexy digamos xD
lo otro no resolvi nda

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 15 Sep 2008 11:36 pm
hola volvi...no se molesten xD
es qu posteo las dudas a medida que van surgiendo y arreglandose ..en fin
en los botones negros ahora les puse this.gotoAndStop(2);....y se borra...ok...ahora.....
en los botones creados dinamicamente les puse...

Código :

removeMovieClip(this);

lo que falta es ....que cuando apreto los botones dinamicos...que vendrian a ser los que sirven para borrar.....vuelva a aparecer el boton negrito ..especifico......y cuando aprieto otro boton el boton dinamico aparezca en la primera posicion posible...
porque sino se saltea el espacio que dejo el que se borro

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 16 Sep 2008 09:41 am
@ironeric23, volviste a hacer lo mismo más de cinco preguntas seguidas.
Postea en lo que tengas dudas ahora, porque realmente no se que has resuelto y que no.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 16 Sep 2008 02:09 pm
hola perdon no fui muy claro xD
1_ la sintaxis correcta para asignarles a los botones creados dinamicamente para que borren del arreglo added con el deletetoarray.
2_ cada vez que se apreta uno de esos botones que los negros de la izquierda, que son los que se apretan al principio para que agregue al carrito, vuelvan al fotograma 1.
3_ una vez que apreto los botones de borrar , estos se borran porque en el release les puse deletemovieclip(this),pero si agrego otro el boton de borrar aparece pero salteando el lugar que ocupaba el que se borro..como si todavia estuviera.
y creo que es todo xD
soy una maquina de hacer preguntas :oops:

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 16 Sep 2008 06:37 pm
Para hacer lo primero lo mejor es introducir la variable del número al que corresponde dentro del botón creado:

Código ActionScript :

var valores:Array = new Array("1", "2", "3", "4", "5", "6"); 

this["articulo" + i].onRelease = function():Void  { 

   added.addToArray(valores[this.numero]);  
   boton = this.createEmptyMovieClip("boton" + this.numero, this.getNextHighestDepth());
   //---De esta forma
   boton.item = valores[this.numero];


Así de esta forma puedes borrar del arreglo el valor que el tiene guardado adentro como "item" en el momento que lo borras a él.

Para hacer los segundo de la misma manera que guardamos la variable "item" también puedes guardar dentro del botón el número que tienes guardado previamente (this.numero) para que cuando lo elimines tome al botón que le corresponde a ese número y lo regrese al frame 1.

Lo tercero no lo entiendo muy bien, debes explicarlo mejor.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 17 Sep 2008 03:18 pm
hola.....muy gracias por la ayuda Sonrisa
que raro no me llego el aviso de respuesta al mail Aw Crap..bueno
lo primero lo intente y puse lo que me dijiste y en el boton en la parte de onrelease le puse esto

Código :

added.deleteToArray(valores[this.numero]);


creo que me falla algo en la cabeza u_u
para lo segundo no me anime ya que no habia entendido lo anterior muy bien porque no funciono asi que de mucho no iba a servir que tirara numeros..Sonrisa
y el tercero me referia a esto:
hay dos tipos de botones los de agregar al carrito y los de borrar que son los creados dinamicamente;cuando apretas uno de los de borrar este tiene que desaparecer y si despues de eso agregas un objeto al carrito el boton no aparece abajo del ultimo sino se saltea el lugar del boton que recien se borro Riendo es dificl de explicar
una vez mas gracias u_u

edito: la primera pregunta entendi ahora que decias que solo borrando el boton ya se tiene que borrar el item del array...pero no funcion :D

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 17 Sep 2008 04:38 pm
Lo que te intenté explicarte era esto:

Código ActionScript :

var valores:Array = new Array("1", "2", "3", "4", "5", "6");  
 
this["articulo" + i].onRelease = function():Void  {  
 
   added.addToArray(valores[this.numero]);   
   boton = this.createEmptyMovieClip("boton" + this.numero, this.getNextHighestDepth());
   
   boton.item = valores[this.numero]; 
   
   //---Si cuando lo presionamos queremos quitarlo del arreglo
   boton.onRelease = function():Void{
      
     added.deleteToArray(this.item);
     this.removeMovieClip();
      
   }

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 17 Sep 2008 08:22 pm
claro!! eso faltaba yo ponia this.numero en vez de item xD
bueno ahora falta esas dos ultimas cosas y termina la tortura xD
que vuelva el boton...todavia no intente ahora lo voy a intentar y esto mira aver si me logro explicar mejor
agregar borrar
agregar borrar
agregar borrar
asi estan los botones cuando apreto uno de borrar se elimina el boton pero necesito que cuando se agregue otro no aparezca asi
borrar1
borrar4
//espacio que dejo el que se borro
borrar5
sin asi
borrar1
borrar3
borrar4
espero me hayas entendido xDçy sobre todo que estes
gracias salu2

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 18 Sep 2008 03:04 am
holaaaa :) me fui un rato para despejarme y al volver ya habia entendido como haces para llamar funciones como la que hiciste de item
ahora lo tengo mas claro u_u :)
asi que hice esto

Código :

boton = this._parent.createEmptyMovieClip("boton" +[this.numero], this._parent.getNextHighestDepth());
     boton.item =valores[this.numero];
//concretamente esto=
     boton.borrado = this.numero;
   fondo = boton.createEmptyMovieClip("fondo", boton.getNextHighestDepth()); 
   texto = boton.createTextField("texto", boton.getNextHighestDepth(), 0, 0, 0, 0);


y esto en el onrelease esto

Código :

_root["articulo"+this.borrado].gotoAndStop(1);


y fue como magia :)
ahora queda solo eso de los espacios que seguro es una boludez y no me doy cuenta
un beso

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 18 Sep 2008 09:34 am
Esta función creo que hará lo que necesitas:

Código ActionScript :

//---Función de alinear los botones
function alignButtons(nombre:String, contenedor:MovieClip, begin:Number, distance:Number):Void{
   
    var posY:Number = begin;
   
    for(var obj in contenedor){
       
        if(contenedor[obj] instanceof MovieClip && contenedor[obj]._name.indexOf(nombre) >= 0){
           
            contenedor[obj]._y = posY;
           
            posY += contenedor[obj]._height + distance;
           
        }
       
    }
   
}


Se debe llamar de esta forma:

Código ActionScript :

alignButtons(nombreBoton:String, contenedor:MovieClip, inicioEnY:Number, distance:Number)


Donde "nombreBoton" es el nombre común entre los botones sin el número, "contenedor" es el movieClip donde están los botones, "inicioEnY" es donde debe comenzar el primer botón y "distance" es la distancia a la que deben estar separados cada uno de los botones. En tu caso, como tienes los botones en la escena creo que podrías hacer esto:

Código ActionScript :

alignButtons("boton", this, 0, 10);


De esta forma trabajarás con los movies que tengan de nombre "boton" + numero, que se encuentren en la escena, situando el primer botón en 0 en las "_y" y separándolos a 10 píxeles de distancia.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Sep 2008 01:09 pm
mm lo intente pero no me funciono....entoncse intente modificar lo de posy que habia antes acorde a esto pero tampoco :S
y se me ocurrio otra cosa....como ya te dije va a haber como 250 articulos.....y si (no creo, pero igual) el cliente va y compra todos los articulos...o con que compre 50 ya, no van a entrar en el escenario, tengo que ponerlo en un scroll o que aparezcan pagina 1 pagina 2 pero eso ya es muy complicado :S. te surge una idea mas facil?

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 18 Sep 2008 01:17 pm
creo que este el post mas alrgo que hay en el que solo una persona tiene duda xD
no tendria que estar orgulloso de eso :S

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 18 Sep 2008 01:23 pm
Acabo de probar la función y funciona de maravilla, no lo debes estar haciendo de la forma correcta.
Después haces lo del scroll, primero resuelve una cosa y después pasas a la otra.
No has tenido una duda, sino un montón, lo que te has mantenido en un mismo post porque todas parten de un problema principal.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Sep 2008 01:29 pm
supongo que eso de te has mantenido en un mismo post es algo como un cumplido no? xD
si es asi gracias...y si es un reto pues...perdon :(
OK te digo como lo estuve implementando
primero apenas terminan las variables de los botones y empieza el for "i" pongo esto :

Código :

function alignButtons(nombre:String, contenedor:MovieClip, begin:Number, distance:Number):Void{ 
    
    var posY:Number = begin; 
    
    for(var obj in contenedor){ 
        
        if(contenedor[obj] instanceof MovieClip && contenedor[obj]._name.indexOf(nombre) >= 0){ 
            
            contenedor[obj]._y = posY; 
            
            posY += contenedor[obj]._height + distance; 
            
        } 
        
    } 
    
} 

y despues abajo donde decia

Código :

boton._y = posY; 
   boton._x = posX;
   posY += boton._height + 15; 

y antes que empiezen las funciones rollover y eso de los botones le puse esto
alignButtons("boton", this, 0, 10);
pense que iba a funcionar y no funciono entonces saque lo de

Código :

 posY += boton._height + 15; 

y fue de mal enpeor

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 18 Sep 2008 02:10 pm
Debes alinear los botones después que borres alguno que es cuando ocurre el problema, no debes alinearlo en el momento en que los creas, ahora no se donde comienzan en las _y tus botones, me parece que es en 0 por la variable "posY" del principio y por lo que veo la separación que les das es de 15, además de que donde se encuentran los botones es en la raiz por lo tanto no te puedes referir a "this", ya que esta se refiere a los botones en si. Seguiré con el mismo código con el que te he venido explicando:

Código ActionScript :

var valores:Array = new Array("1", "2", "3", "4", "5", "6");

this["articulo" + i].onRelease = function():Void  {

   added.addToArray(valores[this.numero]);
   boton = this.createEmptyMovieClip("boton" + this.numero, this.getNextHighestDepth());

   boton.item = valores[this.numero];

   //---Si cuando lo presionamos queremos quitarlo del arreglo 
   boton.onRelease = function():Void  {

      added.deleteToArray(this.item);
      this.removeMovieClip();
      alignButtons("boton", _root, 0, 15); 

   };

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Sep 2008 02:29 pm

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 18 Sep 2008 02:44 pm
Creo que se por qué pasa. posta como ha quedado tu código. Le falta poco para arreglarlo

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Sep 2008 02:48 pm

Código :

function alignButtons(nombre:String, contenedor:MovieClip, begin:Number, distance:Number):Void{ 
    
    var posY:Number = begin; 
    
    for(var obj in contenedor){ 
        
        if(contenedor[obj] instanceof MovieClip && contenedor[obj]._name.indexOf(nombre) >= 0){ 
            
            contenedor[obj]._y = posY; 
            
            posY += contenedor[obj]._height + distance; 
            
        } 
        
    } 
    
} 
import flash.filters.GlowFilter;
var boton:MovieClip; 
var fondo:MovieClip; 
var texto:TextField;
var estilo:TextFormat = new TextFormat();
var ancho:Number; 
var alto:Number; 
var posY:Number = 40;
var posX:Number = 400;
with(estilo){ 
    
   font = "Arial"; 
   size = 15; 
   color = 0x666666; 
    
}
var valores:Array = new Array("articulo1", "articulo2", "articulo3",
                       "articulo4", "articulo5", "articulo6"); 
var added:Array = new Array(); 
 
for(var i:Number = 0; i < valores.length; i++){
    
   this["articulo" + i].numero = i;
   this["articulo" + i].onRelease = function():Void{
      this.gotoAndStop(2);
      added.addToArray(valores[this.numero]);
     boton = this._parent.createEmptyMovieClip("boton" +[this.numero], this._parent.getNextHighestDepth());
     boton.item =valores[this.numero];
     boton.borrado = this.numero;
   fondo = boton.createEmptyMovieClip("fondo", boton.getNextHighestDepth()); 
   texto = boton.createTextField("texto", boton.getNextHighestDepth(), 0, 0, 0, 0);
   
   with(texto){ 
       
      autoSize = true; 
      selectable = false; 
      text = valores[this.numero]; 
      setTextFormat(estilo); 
       
   } 
   ancho = texto._width; 
   alto = texto._height; 
   with(fondo){ 
       
      beginFill(0x000000, 10); 
      moveTo(-2, -2); 
      lineTo(ancho + 4, -2); 
      lineTo(ancho + 4, alto + 4); 
      lineTo(0, alto + 4); 
      lineTo(0, 0); 
      endFill(); 
       
   } 
       
   
   boton._y = posY; 
   boton._x = posX;
   posY += boton._height + 15; 
   boton.onRollOver = function():Void{ 
       
      var glow:GlowFilter = new GlowFilter(0xFFFFFF, 100, 3, 3, 1, 1); 
       
      var filterArray:Array = new Array(); 
      filterArray.push(glow); 
       
      this.texto.filters = filterArray; 
       
       
   } 
    
   boton.onRollOut = function():Void{ 
       
      this.texto.filters = []; 
       
       
   } 
    
   boton.onPress = function():Void{
      this.texto.filters = []; 
      this.texto.textColor = "0x99FFFF"; 
       
       
   } 
    
   boton.onRelease = function():Void{
      added.deleteToArray(this.item);
      _root["articulo"+this.borrado].gotoAndStop(1);
      alignButtons("boton", _root, 0, 15);  
      this.removeMovieClip();
      this.texto.filters = []; 
      this.texto.textColor = "0x666666"; 
       
       
   } 
    
   boton.onReleaseOutside = function():Void{ 
   
       this.texto.filters = []; 
      this.texto.textColor = "0x666666"; 
       
       
   }
    trace(added); 
   } 
   
} 
Array.prototype.addToArray = function(valor):Void{ 
    
   if(this.indexOf(valor) < 0){ 
       
      this.push(valor); 
       
   } 
    
} 
 
Array.prototype.deleteToArray = function(valor):Void{ 
    
   var index:Number = this.indexOf(valor); 
    
   if(index >= 0){ 
       
      this.splice(index, 1); 
       
   } 
    
} 

Array.prototype.indexOf = function(search):Number{  
     
   var total:Number = this.length;  
   var index:Number = -1;  
   var item:Number = 0;  
   var finded:Boolean = false;  
     
   while(item < total && !finded){ 
        
      if(this[item] == search){            
         index = item;  
         finded = true;            
      }else{            
         item++;            
      }         
   }  
     
   return index;  
     
}  

the complete code :)

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 18 Sep 2008 03:08 pm
La nueva función será esta, remplázala por la anterior:

Código ActionScript :

function alignButtons(nombre:String, contenedor:MovieClip, begin:Number, distance:Number, excludeButton:MovieClip):Void {

   var posY:Number = begin;
   var botones:Array = new Array();
   var numero:Number;

   //---Guardar los movies en un arreglo
   for (var obj in contenedor) {

      if (contenedor[obj] instanceof MovieClip && contenedor[obj]._name.indexOf(nombre) >= 0) {

         numero = Number(obj.slice(nombre.length, obj.length));

         botones.push({nombre:obj, numero:numero});

      }
   }
   //---Ordenar los movies
   botones.sortOn("numero",Array.NUMERIC);

   //---Posicionar los movies
   for (var i:Number = 0; i < botones.length; i++) {

      if (contenedor[botones[i].nombre] != excludeButton) {

         contenedor[botones[i].nombre]._y = posY;
         posY += contenedor[botones[i].nombre]._height + distance;

      }
   }
}


Y en la acción de los botones:

Código ActionScript :

boton.onRelease = function():Void  {
   
   added.deleteToArray(this.item);
   _root["articulo" + this.borrado].gotoAndStop(1);
   alignButtons("boton", _root, 0, 15, this);
   this.removeMovieClip();

};


No hace falta que le cambies el color al texto y esas cosas si al final estás eliminando el botón.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Sep 2008 03:45 pm
ok quedo mejor :) gracias
ahora el problema masomenos sigue igual pero de diferente manera
mira
proba a agregar todos y despues borralos todos
al agregar solo uno mas se agrega abajo

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 18 Sep 2008 04:14 pm
A la hora de borrar funciona bien, pero no a la hora de añadir, borra la parte de:

Código ActionScript :

boton._y = posY;  
boton._x = posX; 
posY += boton._height + 15;  


Y al final del ciclo justo despues de:

Código ActionScript :

boton.onReleaseOutside = function():Void{   
      this.texto.filters = []; 
      this.texto.textColor = "0x666666";       
}


Sitúa el orden de los botones:

Código ActionScript :

alignButtons("boton", _root, 0, 15, null);

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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