Foros del Web » Creando para Internet » Flash y Actionscript »

¿Cómo duplicar 1 símbolo varias veces?

Estas en el tema de ¿Cómo duplicar 1 símbolo varias veces? en el foro de Flash y Actionscript en Foros del Web. Hola!! Debo duplicar más de 100 veces un botón... El tema es que hasta ahora debo hacerlo 1 por 1. ¿Se puede agilizar ese proceso? ...
  #1 (permalink)  
Antiguo 06/07/2005, 16:10
Avatar de Chuqui  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 149
Antigüedad: 16 años
Puntos: 3
¿Cómo duplicar 1 símbolo varias veces?

Hola!!

Debo duplicar más de 100 veces un botón... El tema es que hasta ahora debo hacerlo 1 por 1. ¿Se puede agilizar ese proceso?

Saludos,

Chuqui
__________________
Si la vida te da la espalda, agárrale el culo!
  #2 (permalink)  
Antiguo 07/07/2005, 06:03
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 13 años, 4 meses
Puntos: 13
Si se puede. Este código ponelo en un botón o algo

Código:
for(i=0; i<100; i++) {
	duplicateMovieClip(_root.boton,"boton" + i,i+1)
	_root["boton"+i]._x = i * 2 + 50 //estas lineas son para ubicar
	_root["boton"+i]._y = i * 2 + 50 //el nuevo clip, modificalas segun la necesidad
}
Espero que te sirva.

Saludos cordiales. Lucas
__________________
No sign...
  #3 (permalink)  
Antiguo 07/07/2005, 09:47
Avatar de Chuqui  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 149
Antigüedad: 16 años
Puntos: 3
Gracias, Lucas, pero unas dudas...

1.- ¿Dónde ubico ese código? ¿Al botón o en la línea de tiempo?
2.- ¿Es eso para duplicar instancias (o símbolos) en tiempo de ejecución?

Qué mal que Flash no tenga la posibilidad de hacer esto rápidamente a través de su interfaz.
__________________
Si la vida te da la espalda, agárrale el culo!
  #4 (permalink)  
Antiguo 07/07/2005, 09:55
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 13 años, 5 meses
Puntos: 53
lee este tema, que es practicamente lo mismo

http://forosdelweb.com/showthread.php?t=314410
  #5 (permalink)  
Antiguo 07/07/2005, 11:14
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 15 años, 1 mes
Puntos: 1
Con la interfas... marca el simbolo y luego le daz ctrl+c ... y luego ctrl+v ..luego marcas esos dos y lo mismo y luego los cuatro y luego los ocho y luego...


Salu2

.
  #6 (permalink)  
Antiguo 07/07/2005, 11:59
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 13 años, 4 meses
Puntos: 13
Cita:
Iniciado por Chuqui
Qué mal que Flash no tenga la posibilidad de hacer esto rápidamente a través de su interfaz.
Mmmm ¿Existe algun programa que permita eso? No manejo muchos programas de diseño, pero no se si existe alguno con esa opción que buscas. Por lo pronto la opción de Pulento es la más rápida...

Saludos. Lucas
__________________
No sign...
  #7 (permalink)  
Antiguo 07/07/2005, 13:03
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 5
Hola, con el ejercicio que habeis planteado me ha surgido unas preguntas.
Segun lo que habeis puesto ese simbolo (en mi caso un movieclip llamado bola) se duplica pero tan cerca unos de otros que parece que es como un trazo oblicuo desde la esquina superior izquierda a la esquina inferior derecha.
Yo lo que querria es que mi simbolo quedase en una colocacion parecido a un tablero de ajedrez, es decir que cuando hubiesen unos determinados simbolos en la primera fila pasase a la segunda y cuando en la segunda estuviesen la misma cantidad de simbolos que en la primera fila pasase a la tercera, y asi sucesivamente.
¿Como se puede hacer esto?.

Y otra cosa he visto que el duplicate movie clip tambien se puede usar con el termino "with" pero al ponerlo aqui no me funciona ¿alguien sabe por que?.
Este es el codigo con with

for(i=0; i<100; i++) {
with(root.bola){
duplicateMovieClip(bola,"bola" + i,i+1)
["bola"+i]._x = i * 2 + 50 //estas lineas son para ubicar
["bola"+i]._y = i * 2 + 50 //el nuevo clip, modificalas segun la necesidad
}
}
  #8 (permalink)  
Antiguo 07/07/2005, 13:23
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 13 años, 4 meses
Puntos: 13
Con respecto al With, no estoy seguro. Casi nunca lo uso. Lo que decis es cierto, que quedan muy cerca. Yo lo hice asi para mostrar la acción de duplicar. Cada uno adaptará el código a sus necesidades. Para eso tenes que modificar las lineas:

_root["boton"+i]._x = i * 2 + 50 //define el eje X
_root["boton"+i]._y = i * 2 + 50 //define el eje Y

Eso dependerá del tamaño de tu objeto, y de cuanto lo quieras alejar con respecto a su vecino.

Saludos. Lucas
__________________
No sign...
  #9 (permalink)  
Antiguo 07/07/2005, 13:27
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 15 años, 11 meses
Puntos: 193
Puedes usar algo asi:

Código PHP:
var columnas:Number 10;
var 
numItems:Number 50;
var 
basex:Number 0;
var 
basey:Number 0;
var 
count:Number 1;
var 
board:MovieClip;
function 
init() {
    
board this.createEmptyMovieClip("big"1);
    for (var 
0a<numItemsa++) {
        var 
clip_mc:MovieClip makeBox(5050boarda+10);
        
clip_mc.id a;
        
clip_mc.onRelease itsMe;
        
clip_mc._x basex;
        
clip_mc._y basey;
        if (
count == columnas) {
            
basex 0;
            
basey += Math.round(clip_mc._height-2);
            
count 1;
        } else {
            
basex += Math.round(clip_mc._width-2);
            
count++;
        }
    }
}
function 
itsMe() {
    
trace("Yo soy el Cuadro #"+this.id);
}
function 
makeBox(altoanchoclipprof) {
    var 
clip_mc:MovieClip this.createEmptyMovieClip("temp"+profprof);
    
clip_mc.beginFill(0xCCCCCC100);
    
clip_mc.lineStyle(10x666666);
    
clip_mc.moveTo(00);
    
clip_mc.lineTo(0ancho);
    
clip_mc.lineTo(altoancho);
    
clip_mc.lineTo(alto0);
    
clip_mc.lineTo(00);
    return 
clip_mc;
}
init(); 
En lugar de utilizar la funcoin makeBox

Código PHP:
var clip_mc:MovieClip makeBox(5050boarda+10); 
Puedes usar attachMovie para que puedas utilizar cualquier clip que quieras..

  #10 (permalink)  
Antiguo 07/07/2005, 13:49
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 5
a lucasiramos

Bueno, hasta ahi entiendo, lo que no se es como debo modificar el valor _y para conseguir lo que yo quiero.

a TMeister

Igual me explique mal con lo del tablero de ajedrez, no obstante te agradezco el codigo, gracias por invertir el tiempo en intentar hacerlo te lo agradezco, pero creo que lo que quiero es algo mas sencillo.
Me he creado un movieclip que es una bola y le he puesto de nombre de instancia bola, pues lo que queria era esa bola duplicarla tantas veces como para hacer un cuadrado, es decir que quede algo asi

X=bola original

XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
...ETC
siendo el numero de x las bolas a poner, yo lo he llamado intervalo, y mi idea es que cuando se cumpla un determinado intervalo, pasa de bolas empiece a rellenar la linea siguiente.
Aqui pongo un boceto del codigo que he ido perfecccionando, obviamente igual da un error y no me sale lo que quiero, pero haber si con esto, podeis sacar algo.

Código PHP:
var intervalo=5
_root
.bola._xscale=50 // esto es simplemente para reducir algo la bola
_root.bola._yscale=50 // esto es simplemente para reducir algo la bola
_root["bola"+i]._y=0
for(i=0i<100i++) {
    
duplicateMovieClip(_root.bola,"bola" i,i+1)
    
_root["bola"+i]._x 50 50 //estas lineas son para ubicar
    
if(root.bola._x>=550 && intervalo){
    for(
x=0;i<100;intervalo++){
    
_root["bola"+i]._y = (0) + 50  //el nuevo clip, modificalas segun la necesidad
    
}
    }

Otra cosa, si teneis algun tutorial o algo asi para principiantes con cosas practicas que poder hacer y a ser posible que te digan para que sirve cada linea de codigo lo agradeceria.
Gracias de todos modos.
Saludos
  #11 (permalink)  
Antiguo 07/07/2005, 15:30
Avatar de Chuqui  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 149
Antigüedad: 16 años
Puntos: 3
Cita:
Iniciado por lucasiramos
Mmmm ¿Existe algun programa que permita eso? No manejo muchos programas de diseño, pero no se si existe alguno con esa opción que buscas. Por lo pronto la opción de Pulento es la más rápida...

Saludos. Lucas
Es cierto, Lucas, pero Flash ni siquiera te deja, hasta donde sé, duplicar varias capas a la vez (ej: crear 20 a partir de una). En cambio en Fireworks puedes agregar la cantidad de Fotogramas que quieras de un solo click...(ya lo sé, no es lo mismo que capas pero sólo a modo de ejemplo de lo que critico).

Bueno, siguiendo con el tema... te agradezco mucho tu ayuda! Lo único es que no sé aún dónde colocar el código; en el botón o en la línea de tiempo, y si el resultado sólo se ve en tiempo de ejecución (Control + Enter).

Gracias Pulento por la info también.
__________________
Si la vida te da la espalda, agárrale el culo!
  #12 (permalink)  
Antiguo 07/07/2005, 15:46
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 5
El codigo, diria que es en la linea de tiempo ya que desde el propio codigo referencias al objeto asi que no creo que sea en el boton, aunque yo probaria los dos casos.
Para escribir el codigo en la linea de tiempo yo me creo una capa llamada AS (el nombre es lo mismo) y lo pego ahi.
Pruebalo
  #13 (permalink)  
Antiguo 08/07/2005, 09:18
Avatar de Chuqui  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 149
Antigüedad: 16 años
Puntos: 3
Cita:
Iniciado por pulento
Con la interfas... marca el simbolo y luego le daz ctrl+c ... y luego ctrl+v ..luego marcas esos dos y lo mismo y luego los cuatro y luego los ocho y luego...


Salu2

.
Hola amigo. Con eso duplico instancias, pero sigo teniendo la misma cantidad de símbolos. Insisto en que es un gran defecto de Flash, entre tantos otros...


¿Cuáles otros defectos?

Ejemplo 1: Estoy trabajando en la Biblioteca (Library panel); grabo mi documento en Flash MX Format (estoy trabajando en MX 2004), e inmediatamente después de grabar, se cierra mi panel de Biblioteca... Debo volver a abrirlo...

Ejemplo 2: Tengo mi panel de escenas minimizado... cambio de ventana a otra aplicación (navegador Web) mediante Alt-Tab, y al volver a Flash aparece el panel abierto... vuelta a minimizarlo!

Y así podríamos seguir, pero no es el objetivo de este foro. Lo que pasa es que estoy con rabia porque llevo horas duplicando símbolos
__________________
Si la vida te da la espalda, agárrale el culo!
  #14 (permalink)  
Antiguo 08/07/2005, 12:43
Avatar de Chuqui  
Fecha de Ingreso: diciembre-2001
Ubicación: Santiago, Chile
Mensajes: 149
Antigüedad: 16 años
Puntos: 3
Asunto solucionado!!

Hola gente!! Cuando ya estaba por comenzar a programar mi propia extensión para lograr duplicar rápidamente mis botones, se me ocurrió "¿no habrá en Macromedia Exchange alguna extensión para esto?"

Bingo!! La extensión se llama Duplicate Library Folder y hace justamente eso: duplicar carpetas completas. Sólo debo tener mi botón dentro de una carpeta y comenzar a duplicar...

Gracias a todos por las colaboraciones.
__________________
Si la vida te da la espalda, agárrale el culo!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:08.