Comunidad de diseño web y desarrollo en internet online

Duda simple

Citar            
MensajeEscrito el 29 May 2006 11:02 pm
Holass, bueno una pregunta que imagino de respuesta sencilla, pero al menos necesaria para mi. Gracias a quien la responda.

Tengo agregados un monton de MC's mediante AS en el fotograma 1 de una escena, cuando paso (mediante AS también) al fotograma 15 esos MCs siguen ahi, no como cuando simplemente arrastro y suelto desde la biblioteca al stage. ¿Se supone que he de limpiar el fotograma 1 (usando removeClip) antes de pasar al 15 para que estos MCs no sigan ahi?.

Gracias de antemano.

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 30 May 2006 08:39 am
Bueno, supongo que es una pregunta increiblemente estúpida o de muuuuuy novato, ¿pero podría alguien decirme si hay que hacerlo?

Gracias de antemano.

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 30 May 2006 08:56 am
no, los movieClips que arrastras desde la biblioteca a modo de drop and drag, o sea que los arrastras manualmente de la biblioteca NO pueden ser removidos por medio de actionscript, eso solo se puede hacer con clips que arrastras de forma dinamica

forma dinamica? si

Código :

attachMovie('tu_pelicula","tu_nuevo_nombre",_root.getNextHigestDepth());

para poder hacer eso solo seleccion tu movie clip en la biblioteca ve sus propiedades, seleccionas linkage y le das un nombre, y con ese nombre entonces ya lo puedes remover cuando asi lo desees, suerte

Por jaimoco

299 de clabLevel



Genero:Masculino  



Ultima edición por jaimoco el 30 May 2006 09:01 am, editado 1 vez

choya bay , mexico

firefox
Citar            
MensajeEscrito el 30 May 2006 08:59 am
hmm, creo que no me he explicado bien. Yo atacheo un monton de mc's mediante action script (attachMovie) al root en el fotograma 1, pero cuando (debido a una pulsacion en un boton) salto al frame 15 , estos (los que cargué en el frame 1) siguen ahí. ¿se supone que he de quitarlos (con removeClip) antes de saltar al frame 15 para que no sigan ahí?, ¿o hago algo mal?

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 30 May 2006 09:03 am
, cuando pulses el boton puedes llamar una funcion que te remueva todos los clips antes de ir al fotograma que desees.

Por jaimoco

299 de clabLevel



Genero:Masculino  

choya bay , mexico

firefox
Citar            
MensajeEscrito el 30 May 2006 09:52 am
"hmm, creo que no me he explicado bien. Yo atacheo un monton de mc's mediante action script (attachMovie) al root en el fotograma 1, pero cuando (debido a una pulsacion en un boton) salto al frame 15 , estos.." deben de desaparecer.

Como dices has cometido seguramente varios errores, para la proxima vuelca el código:

1._ Puede ser que no hayas creado el ft 15 (como ft clave). por tanto no puede ir a dicho fotograma

2._Has creado el ft 15 como ft clave y te ha copiado los elementos, por tanto los mc están insertados en el ft 15

3._ Y esta que es lo más probable, te desplazas con gotoAndPlay(); por lo que una vez va al ft15 este vuelve al 1. Si es esto utiliza gotoAndStop();

Si no es ninguno de estos tres casos, SEGURO que tienes algún error en código o alguna acción que te vuelve a cargar los mc.

Un saludo.

Por Silvestre_

391 de clabLevel

1 tutorial

 

"un simple aficionado", pero acepto propuestas de trabajo

firefox
Citar            
MensajeEscrito el 30 May 2006 10:50 am
Extrañamente no funciona, no me los quita. Este es el codigo que tengo:

Código :

stop();
_global.selectedGallery;
_global.total;
_global.albums;
var   xmlData:XML=new XML();
xmlData.ignoreWhite=true;

xmlData.load("gallery1.xml");

xmlData.onLoad=function(ok){
   if(ok){
      _global.total= xmlData.firstChild.childNodes.length;//total de albumes
      _global.albums = xmlData.firstChild.childNodes;//datos de los albumes
      var posCol1:Number = 1.0;
      var posCol2:Number = 300.0;
      for(var i:Number=0;i<total;i++){
         _root.attachMovie("gAll","gAll"+i,getNextHighestDepth());
         _root["gAll"+i].mc.galTitle_txt.text=albums[i].attributes.title;
         _root["gAll"+i].mc.galDesc_txt.text=albums[i].attributes.description;
         
         /*Las dos líneas que siguen, calculan la posición en la que deben
         aparecer los movieClips de las galerías*/
         _root["gAll"+i]._x=posCol1*Math.abs((i%2)-1)+posCol2*(i%2);
         _root["gAll"+i]._y=120.0*(i-(i%2))/2;
         
         /*Asignamos a todos los botones del mc de galeria, la funcion 
         de saltar al frame de visualizacion y marcar la galería seleccionada*/
         _root["gAll"+i].btn.onPress=function(){
            _global.selectedGallery=String(this._parent).substr(-1);
            
            for(var x:Number=0;x<_global.total;x++){
               trace(_root["gAll"+x]);
               _root["gAll"+x].removeMovieClip();}
                  
            _root.gotoAndStop("photos");
            }
         }
      }
   else{
      trace("Error loading XML");}
   }

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 30 May 2006 11:40 am
Visto lo visto no es duda sencilla... tal vez si pero algo compleja.
Por lo visto (vaya!! me repito), has hecho un copy paste sino me equivovco.
No obstante a simple vista, parece que el mismo código dispone de la instrucción ya que estás trabajando con variables globales etc etc...
creo que el secreto puede estar por aquí:

Código :


            for(var x:Number=0;x<_global.total;x++){
               trace(_root["gAll"+x]);
               _root["gAll"+x].removeMovieClip();}
                  
            _root.gotoAndStop("photos");


Esto esta en la parte final, en donde remove clips, y nos lleva al ft denominado "photos". Tendría que mirar el código detenidamente y realizar pruebas. Pero lamentablemente no tengo de momento ese tiempo. Si conoces algo de AS es un código relativamente sencillo y puedes ir desgranándolo por partes. Si hiciste un Copy/Paste, tal vez te falte denominar los fotogramas como los tenias en el ejemplo. Siento no poder ayudarte más.
No obstante le iré dando vueltas a la cabeza, ¿¿quién sabe??.

Por Silvestre_

391 de clabLevel

1 tutorial

 

"un simple aficionado", pero acepto propuestas de trabajo

firefox
Citar            
MensajeEscrito el 30 May 2006 12:08 pm
No , esto no es copy-paste, vamos que lo he hecho yo (salvo la parte de posicionar los clips) que me ayudó ICEM4N. Uno de los problemas que veo, es que el propio boton (que forma parte del MC "gAll") que llama a la función de borrado también se borra, ya que lo que intento hacer es borrar el clip que lo contiene. Pero tampoco se me ocurre otra forma de hacerlo (vamos que el clip que llama a la funcion de borrado, también se tiene que borrar).

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 30 May 2006 02:23 pm
bueno.... pero no decias que no se borraban??,
bien entonces si no es copy/paste dime.
1._ que quieres que se vea. Bamos lo que sería el resultado de la presentación.

2._concreta que es lo que no consigues que se haga

Por Silvestre_

391 de clabLevel

1 tutorial

 

"un simple aficionado", pero acepto propuestas de trabajo

firefox
Citar            
MensajeEscrito el 30 May 2006 05:48 pm
vamos a ver, lo que quiero hacer, es tener en el frame 1 tantos "gAll" como _global.total indique, (eso funciona bien), y en el frame 15 debería haber solamente un Loader y unas cuantas cosas más, pero cuando hago click en alguno de los botones para que salte al frame 15 (o "photos") , no aparece el loader, ni nada, sino que siguen ahí los MCs (gAll) así que no se que estoy haciendo mal.

P.D.: gAll, es un MC que está compuesto por un rectanculo, 2 cajas de texto dinámico y un boton, transparente (btn).

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 30 May 2006 08:11 pm
disculpa, pero comprende que así a ciegas es dificil.
me ha intrigado el tema, a mi me ocurrio algo parecido.
Estoy seguro que el problema viene aquí:

_root["gAll"+i].btn.onPress=function(){
_global.selectedGallery=String(this._parent).substr(-1);

for(var x:Number=0;x<_global.total;x++){
trace(_root["gAll"+x]);
_root["gAll"+x].removeMovieClip();}

_root.gotoAndStop("photos");

Yo hice algo parecido, deben de haber dos cosas a tener en cuenta.
1._ si realmente la ruta es la correcta this._parent

2._ y si es la correcta prueba lo siguiente.

coloca esta función fuera de la función onLoad=function(ok)

colocala en el keyframe (en el primer frame junto con el código que tienes).
llamala por ejemplo MyBoton.

así:

Código :

         function MyBoton(){   
            for(var x:Number=0;x<_global.total;x++){
               trace(_root["gAll"+x]);
               _root["gAll"+x].removeMovieClip();}
                  
            _root.gotoAndStop("photos");
           }

y el código que tienes quedará de la siguiente manera:

Código :

...........
         /*Asignamos a todos los botones del mc de galeria, la funcion 
         de saltar al frame de visualizacion y marcar la galería seleccionada*/
         _root["gAll"+i].btn.onPress=function(){
            _global.selectedGallery=String(this._parent).substr(-1);
            _root.MyBoton()
            }
         }
      }
   else{ .......

conforme estoy escribiendo me parece que el problema lo tendrá en _root["gAll"+i].btn.onPress, yo al final opté por crear dos MC independiente el texto dinámico y el boton transparente. Te paso el código tal cual lo tengo

Código :

   NumeroDeLineas=_root.MiV.NumeroDeVar //el dato está dentro de la variable NumeroDeVar
   
   for(a=1;a<=NumeroDeLineas;a++){
      
            
      MiText="Text"+a   //esto nos sirve para crear el texto
         _root.createEmptyMovieClip(MiText,a); //creo un nuevo MC
               with(_root[MiText]){ //ref al nuevo MC
                  attachMovie("TextoOrigen","Texto_"+a,a); //le añado simbolo
                  contenedorTXT=_root.MiV["T"+a]//cargamos el texto
                  EspacioY+=(_height+InterEspacio)
                  TEMPMiTamText=length(contenedorTXT) //busco la longitud del texto
                  TEMPMiTamText=(TEMPMiTamText>21) ?(20.9):TEMPMiTamText
                  
                  _x=EspacioX
                  _y=EspacioY
               }
      MiBoto="Boto"+a //esto nos creará el boton que se acciona
         _root.createEmptyMovieClip(MiBoto,a+20);
               with(_root[MiBoto]){
                  attachMovie("BotonOrigen","Boto_"+a,a+20);
                  _root[MiBoto].DestinoLink="JavaScript:ifra("+_root.MiV["HT"+a]+")"//guardo el destino en cada boton
                  _x=EspacioX
                  _y=EspacioY
                  _alpha=0
                  _width=TEMPMiTamText*(12) //TAMAÑO DEL BOTON
               
               }

         _root[MiBoto].onRollOver=function(){AccionOver(this._name)}
         _root[MiBoto].onRelease=function(){getURL(this.DestinoLink);}
   
   }//bucle por linea

..les coloco la misma x e y así se superponen, además busco la longitud de entrada para adaptar el boton al tamaño del texto y por último añado las funciones al BOTON.

Por Silvestre_

391 de clabLevel

1 tutorial

 

"un simple aficionado", pero acepto propuestas de trabajo

firefox
Citar            
MensajeEscrito el 30 May 2006 08:23 pm
Hola Cybrid, tu código está bien, creo que el error está en tu MC. Checa que al botón que colocaste dentro le hayas asignado un nombre en el panel de propiedades <nombre de instancia> y que sea precisamente btn, no en las propiedades de vinculación de la instancia, ya que estas sirven para llamarle de la biblioteca en forma independiente.
Te lo comento porque lo que estás haciendo es "mandarle" una instrucción a un botón que se encuentra dentro de cada uno de los MC (gAll) que creaste y no al que se encuentra en la biblioteca de la película y por lo tanto debe tener un nombre dentro del MC.
Entra al MC de tu biblioteca (gAll), selecciona el botón y checa que tenga nombre, de no tenerlo ponle el que estas usando "btn", así cuando lo dupliques con AS cada una de sus copias tendrá dentro un botón "btn" y entenderá la instrucción.
Espero te sirva y sea la solución, por aqui estamos si se te ofrece algo más.
Saludos
Rafael

Por RafaelTol

33 de clabLevel



Genero:Masculino  

México

msie
Citar            
MensajeEscrito el 30 May 2006 09:21 pm
Rafael, eso ya está hecho, lo hice siguiendo el tutorial de CL para crear botones con fade in-out animados, así que el boton dentro de gAll tiene su propio nombre de instancia, no estoy usando el nombre de linkage para AS. Aunque también lo he comprobado de otra forma, ya que el trace dentro del for si que se muestra cuando clickeo, así que estoy referenciando bien.

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 30 May 2006 09:32 pm
Silvestre_ he hecho el cambio en codigo que me has sugerido y sigue igual.

P.D.: Esto empieza a ser desesperante, y tengo que entregar esta práctica el viernes, o me suspenderán la asignatura. ¿Porqué me meteré yo solo en estos fregados XD ?

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 30 May 2006 11:53 pm
Me puedes enviar a [email protected] tu fla y el XML que usas para checarlo y asi decirte que es lo que pasa? saludos

Por heberto

263 de clabLevel

1 tutorial

1 ejemplo

 

Morelia, Michoacán

firefox
Citar            
MensajeEscrito el 31 May 2006 10:17 am
no creo que te lo solucione yo antes del viernes, pero el problema de ve ser como bien dice: RafaelTol. Ya te he chequeado lo que yo hice para no comerme la cabeza, y es en vez de crear un MC que contenga el TXTDinamic y el BOTON. crearlos independientemente:Y superponerlos con X e Y.

Soy un simple aficionado, pero creo que te equivcocas cuando dices: ..así que el boton dentro de gAll tiene su propio nombre de instancia.., cuando tu estas ''attachando'', colocas un mc, y nombras esa instancia con= gAll+i, asi cada instancia del MCprincipal tiene un nombre diferente: gAll1;gAll2;gAll3;etc. pero los elementos internos no tienen nombre de INSTANCIA.

En el trance ( trace(_root["gAll"+x]);) que se vé en el código lo que te dá es el nombre de la instancia del MCprincipal no del BOTON.

Asi queda lo siguiente, AS trabaja con las instancias, ya que sino el nombre de los simbolos al ser iguales no sabría a cual te estás refiriendo.
ejemplo gráfico:

Código :

                       Nobre del símbolo          Instancia
MC principal                       gAll                   gAll +i
TXT dinámico                     Tx                      nulo
BOTON                               bt                      nulo


un saludo, si no encuentras otra solución intenta a porobar con el código que te postee, prueba a crearlos por separado.

Por Silvestre_

391 de clabLevel

1 tutorial

 

"un simple aficionado", pero acepto propuestas de trabajo

firefox
Citar            
MensajeEscrito el 31 May 2006 01:46 pm
Si el boton dentro de gAll no tuviera nombre de instancia, el trace que ejecuto en

Código :

_root["gAll"+i].btn.onPress 
no funcionaría, ¿no?. Vamos creo que es así, y tampoco funcionaria el añadir el texto en

Código :

_root["gAll"+i].galDesc_txt = xmlData.....
[/code]

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 31 May 2006 02:16 pm
Eso ya lo sé, pero como te comento arriba, ya me volví loco intentando entender una vez eso... y no conseguí saber porque no funcionaba, si la lógica dice que sí, como buen consejo de programación, cuando estás en un callejón sin salida o te vas a dormir y ya lo cogerás o empiezas de nuevo por otro lado, y eso hice opté por crear los MC en el momento, creando el txt y su boton, y así si que funcinaba. Mi menu es parecido a lo que tu has hecho lo único es que además incluía una direcc http, ya que es un menu para una pág web.

Te comprendo lo que dices pero no creo que te pueda ayudar más, ya que como bién dices no tiene mucha lógica.

Como te comenté no tengo mucho tiempo ahora y siento no ayudarte más, sino lo hubiera montado yo haber como resultaba. No obstante tienes a heberto, que se ha ofrecido.

Por Silvestre_

391 de clabLevel

1 tutorial

 

"un simple aficionado", pero acepto propuestas de trabajo

firefox
Citar            
MensajeEscrito el 31 May 2006 02:30 pm
Hola,

A simple vista me parece que el bucle que utilizas para meter las acciones a cada botón está dentro del mismo bucle que utilizas para attachar los MC.....creo vaya, echando un ojo rápido (es que estoy en la ofi y no quiero abusar....)......

Por LK

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2006 03:34 pm
LK, lo que dices es correcto

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 31 May 2006 04:23 pm
...por lo tanto...... le dices, por ejemplo al primer clip que attachas, que al evento press tiene que remover clips que no existen.......

...creo que por ahí debe de estar el fallo porque no está claro......

Por LK

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 May 2006 04:30 pm
No debería, ya que la funcion se activa solo con el evento, así que para cuando lo haces los clips ya han sido attacheados. O al menos eso creo.

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 31 May 2006 05:35 pm
Cybrid, vamos a simplificar un poco tu ejercicio para que veas que está fallando, ya que no hay problema en lo del XML sino en el manejo de MC.
Primero crea un nuevo documento y abre la libreria, que debe estar vacia.
dibuja un circulo sin relleno, sólo con contorno, seleccionalo y con F8 conviertelo en instancia MC, con el nombre de circulo, activa la opción de exportar para AS y conserva el nombre por defecto (circulo). Borralo del escenario y en la libreria debes tener la instancia circulo, el escenario está vacio.
Dá doble click sobre la instancia de la biblioteca para entrar a ella.
Estamos dentro del MC "circulo", ahora dibuja un cuadrado con relleno y sin bordes, con F8 conviertelo en botón y llámalo así "boton", aqui no es importante el activar la exportación para AS, te sugiero no hacerlo para que notes el comportamiento. En el cuadro de propiedades asígnale <nombre de instancia>, que sea "btn". Regresa a escena 1.
El escenario está vacio y en la libreria tienes las dos instancias que creaste, el MC "circulo" y el botón "boton", es una buena práctica no usar acentos ni letras tildadas para nombrar instancias, variables, constantes, funciones, etc.
En el fotógrama 20 (el que quieras), crea un fotógrama clave vacio F7, y asígnale la etiqueta "fin", escribe algún mensaje como "exito" o lo que quieras en el escenario.
Ahora en el primer fotógrama de tu película, escribe el siguiente código:

Código :

// La función que se va a encargar de borrar todos los MC e ir a dónde tú quieres
function borrar(){
     for(m=0;m<15;m++){
   _root["circulo"+m].removeMovieClip();
   _root.gotoAndStop("fin");
     }
}
// Vamos a duplicar el MC
for(i=0,i<15,i++){
    _root.attachMovie("circulo";"circulo"+i;getNextHighestDepth());
    // ya están las copias en el escenario, vamos a modificar sus propiedades
    with(_root["circulo"+i]){
      _x= _root["circulo"+(i-1)]._x + 10;
      _y= _root["circulo"+(i-1)]._y + 10;
      btn.onPress = function(){
         _root.borrar();
      }
    }
}
stop();


Bueno, esto funciona, con "with" puedes modificar todas las propiedades de la instancia, chécalo y ve dónde puede estar la falla.
Espero te sirva.
Rafael

Por RafaelTol

33 de clabLevel



Genero:Masculino  

México

msie
Citar            
MensajeEscrito el 31 May 2006 05:40 pm
Bueno, eso de borrar clips yo lo hago a lo bruto, que a no ser que quieras conservar alguno es la mejor manera.

Código :

for (a in _root) {
               _root[a].removeMovieClip();
            }

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 31 May 2006 05:52 pm
Fé de érratas, disculpa pero cometí un error por andar haciendo dos cosas a la vez
Dice:
for(i=0,i<15,i++){
_root.attachMovie("circulo";"circulo"+i;getNextHighestDepth());
Debe decir:
for(i=0;i<15;i++){
_root.attachMovie("circulo","circulo"+i,getNextHighestDepth());

Saludos
Rafael

Por RafaelTol

33 de clabLevel



Genero:Masculino  

México

msie
Citar            
MensajeEscrito el 31 May 2006 06:11 pm
Rafael, no veo exactamente el fallo, ¿donde dices que está?, ¿es por linkear para AS el boton y las cajas de texto dentro de gAll?

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 31 May 2006 06:26 pm
Por ahi va el asunto, sólo que como no tengo tu fla no te podría decir exactamente dónde está el problema, te sugiero que hagas el ejercicio que te puse y veas el comportamiento, tu código está bien, sólo que no has considerado que cuando borras directo del botón y no una función como te lo propongo, cuando desaparece esa instancia del escenario tambien se deja de ejcutar el bucle que borra, es decir, si pulsas el botón 15, se borran todos, pero si pulsas el uno, se borra sólo ese, si pulsas el 8 se borran del 1 al 8, etc.
Adecúa un poco tu código y vas a ver que funciona, y checa mucho lo de las instancias, realiza el ejemplo que es muy fácil y vas a ver que te das cuenta de ese algo que te está fallando.
Si quieres enviar el fla, a [email protected].
Saludos
Rafael

Por RafaelTol

33 de clabLevel



Genero:Masculino  

México

msie
Citar            
MensajeEscrito el 31 May 2006 06:50 pm
ya te lo he enviado Rafael, he probado lo que me has dicho y nada, no se ya que pensar :(

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox
Citar            
MensajeEscrito el 31 May 2006 08:47 pm
A ver, Rafael ha solucionado el problema, ahora lo estoy mirando, dadme 5 minutillos y posteo lo que estaba mal, que parece que hay bastante gente con curiosidad ;)

Por Cybrid

30 de clabLevel



Genero:Masculino  

Bilbao (Spain)

firefox

 

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