Comunidad de diseño web y desarrollo en internet online

Pregunta del Millon

Citar            
MensajeEscrito el 28 May 2007 01:59 pm
Aloha Clab

tengo muchos muchos muchos (321) MC que hacen de boton y necesito que se les active un valor de alpha segun unos datos que le envio desde php.

el caso es puedo desde algun lado modificar los valores de los MC directamente?

por otro lado como los mc no son uniformes debi crear cada uno de forma manual e independiente (como un mapa!), por lo que no puedo crear y asignar los mc con un script!

gracias y no es mas chaop

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 28 May 2007 02:27 pm

jpcw escribió:

por otro lado como los mc no son uniformes debi crear cada uno de forma manual e independiente (como un mapa!), por lo que no puedo crear y asignar los mc con un script!
Apostaría el brazo izquierdo a que se podía hacer de otra manera....

De todos modos, tu solución sería recorrerlos con un for..in buscá en la ayuda de Flash.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 28 May 2007 03:45 pm
querido amigo no ponga en juego su brazo... seguramente lo pierde!

gracias por el datos de recorerlos con un for, pero me podria decir donde coloco el for!?

para que quede mas claro tengo :

vector a(1,0,1,1,1,1,1,0,1,1,0,00,0,0,0,1);

y mis mc se llaman mc1,mc2,mc3... etc lo del for lo tengo claro

for ( i=0 ; i<=longitudVector ; i++ ){
_root.mc1.aplha = a[i];
}

creo que deberia ser asi, si no porfavor me dicen, pero donde debo colocar eso?
mil gracias

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 28 May 2007 03:49 pm

Código :

_root["mc"+i]=a[i];

(dentro de tu for anterior) U_U

Por Bleend

Claber

3385 de clabLevel

10 tutoriales
4 articulos

Genero:Masculino   Héroes

Barcelona

firefox
Citar            
MensajeEscrito el 28 May 2007 04:10 pm

Bleend escribió:

Código :

_root["mc"+i]=a[i];

(dentro de tu for anterior) U_U



?????????

y el alpha????? :? no es lo que pregunto !

Gracias

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  



Ultima edición por jpcw el 28 May 2007 05:55 pm, editado 1 vez

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 28 May 2007 05:02 pm

jpcw escribió:

lo del for lo tengo claro

for ( i=0 ; i<=longitudVector ; i++ ){
_root.mc1.aplha = a[i];
}
No, no lo tenés claro. Lo que decía era que usaras un for in. Buscalo en la ayuda de Flash.

Además, lo del alpha lo manejás usando la estructura que posteó Bleend.


Por último, insisto en que no perdería mi brazo. Si no me equivoco con lo de mapa, te referís a un grafo. Entonces, usando Arrays y fors supongo que podrías hacerlo en pocas líneas.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 28 May 2007 07:55 pm
:oops:
Sry jpcw, me lo dejé el alpha. :P

No acabo de ver como quieres asignar el alpha a tus mc's... Según entendí, el problema lo tienes en que tienes muchos MovieClips y no quieres una linea de código para cada asignación de alpha. Por eso te proponía esto:

Código :

_root["mc"+i]
, para referirte el mc1 cuando i=1; al mc2 cuando i=2, etc...

¿Esa así?

Por Bleend

Claber

3385 de clabLevel

10 tutoriales
4 articulos

Genero:Masculino   Héroes

Barcelona

firefox
Citar            
MensajeEscrito el 28 May 2007 08:04 pm
es asi _root["mc_i"+i]._alpha =arregloI[i];

solo hacia falta el alpha

Me disculpo por el mensaje anterior, gracias bleend, pero la pregunta se extiende mas alla de eso, lo que necesito es tambien colocarle la misma funcionalidad a cada mc

es decir todos mis mc deben tener por ejemplo

on(release){
if(this._alpha==0){
import mx.controls.Alert;
Alert.show("NO!", "Recuerde", Alert.OK , _root, "prueba", Alert.OK);
}else if(this._alpha==50){
this._alpha = 100;
}else{
this._alpha = 50;
}
}

y otra cosa seria si se puede recibir un arreglo con las loadVars?

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  



Ultima edición por jpcw el 28 May 2007 08:36 pm, editado 1 vez

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 28 May 2007 08:36 pm
Por eso digo yo que no escribas código en los MovieClips, debes ponerlo en los fotogramas y referirte a ellos con nombres de instancia:

Código :

for(i=0;i<321;i++){
mc_a=_root["mc"+i];
//-------tu codigo(adaptando los eventos)--------
mc_a.onRelease=function(){
if(this._alpha==0){
import mx.controls.Alert;
Alert.show("NO!", "Recuerde", Alert.OK , _root, "prueba", Alert.OK);
}else if(this._alpha==50){
this._alpha = 100;
}else{
this._alpha = 50;
}
}
mc_a.onRollOver=function(){
this._x++;
this._y++;
}
mc_a.onRollOut=function(){
this._x--;
this._y--;
}//------------fin----------
}//end for


Espero que este bien.
Salu2

Por Bleend

Claber

3385 de clabLevel

10 tutoriales
4 articulos

Genero:Masculino   Héroes

Barcelona

firefox
Citar            
MensajeEscrito el 28 May 2007 10:02 pm
bleend.... GRCIAS

me ha ayudado mucho!!!

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 30 May 2007 05:53 pm
jpcw escribió:

jpcw escribió:

querido amigo no ponga en juego su brazo... seguramente lo pierde!


Saldré en defensa del brazo de Hernanrivas :wink: y diré que SI, hay "otra manera" de hacer eso.

Se pueden crear multiples MC sin tener que dibujarlos uno a uno ( como convertir las provincias de un mapa tomando un simple jpg de la nación y hacerlas botones independientes)
Lo postearé como tip dentro de poco pues es parte de un montón de efectos y utilidades que tengo preparadas ( casi una aplicación completa).

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

firefox
Citar            
MensajeEscrito el 30 May 2007 07:17 pm
me seria muy util, ya que estoy diseñando muchos mapas y es tedioso dibujarlos uno por uno

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 31 May 2007 08:14 am
Por ahora no puedo desvincular eso solo del programa general, sería complejo de explicar.
Pero hay un método sencillo que si puedes usar:
En este enlace hay un "busca bordes" donde puedes bajar el FLA.
http://www.cristalab.com/foros/viewtopic.php?t=33964

Cómo hacer con ese código mapas?
En lugar de "pinocho" , usa de imagen un mapa ( con algunos retoques simples previos).
Ese programa crea un array de "contornos" y a cada array le asocia un MC. También puse por algún lado un script de compresión y descompresión de la forma).

Aparte de todo eso. El método más correcto y general se basa en el uso de relleno de color de cada zona.
Estos son los pasos para hacer un script que lo realice:

1) tenemos un mapa, (mejor si tiene calidad y contornos suficientemente difrenciados). Le aplicamos un poco de tratamiento previo de edición de imagen conveniente a nuestros propósitos
2) Lo importamos a la biblioteca como imagen y le damos un nombre para vincular con AS

Consideraremos que el mapa tiene fronteras de un color ( o rango corto de color)
3) El script:
a/ Importamos con attach el bitmap de la biblioteca y le damos un nombre (mapa)
b/ Bucle de barrido doble en X e Y y buscando ese rango con color = mapa.getPixel(x,y);
Si el color de las "fronteras" está un rango ( por ejemplo negro hasta gris oscuro) 0 a
0x101010. Lo cambiamos a uno completo a nuestro gusto ( usaremos un AZUL: 0x0000ff
como ejemplo) y lo pondremos de ese color con mapa.setPixel(x, y , AZUL);
Al terminar tenemos un mapa NITIDO de bordes azules. y el resto de la imagen sin cambiar.
c/ Le hacemos un threshold de tipo excluyente :
mapa.threshold(mapa, mapa.rectangle, new Point(), "!=",AZUL, 0);
Eso nos eliminará del mapa "todo lo que no es azul pasa a transparente".
d/ Ahora de nuevo un doble blucle en X e Y le incluimos un contador y el condicional de
busqueda será ( usando getPixel también):
Si AZUL, cuento y sigo,
Si no AZUL y el contador en mayor que 0:
Hago un clón del mapa : mapa2 = mapa.clone();
Rellenamos ees clón de un colorA( pondré ROJO: 0xff0000) en ese punto:
mapa2.floodFill(x, y , ROJO);
Y un threshold de nuevo al clón con ese color:
mapa2.threshold(mapa2, mapa2.rectangle, new Point(), "!=", ROJO, 0);
y ahora al mapa base un relleno de esa zona con el color azul puesto que ya está
tomada y asignada:
mapa.floodFill(x, y , AZUL);
Creamos un clip vacio, recortamos con getColorBoundsRect el mapa2 y su salida la
atachamos al MC creado ( conveniente que sea un array de MC´s).
Ponemos a 0 en contador de AZUL y aumentamos en 1 contador del array de MC´s
(provincias).
Cuando el bucle termina..............tenemos n MC´s con una forma ROJA (provincia) en cada elemento del array de MC´s y cada uno contiene una zona del mapa.

Este es el "logical" básico con algunas de las instrucciones ya indicadas en negrita.Se puede optimizar mucho para mayor velocidad. Si lo realizas y tienes algún problema, postea y te ayudo.

PD.....Hernanrivas da un corte de mangas con su brazo izquierdo intacto. ^^

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

firefox
Citar            
MensajeEscrito el 31 May 2007 01:59 pm

Teseo escribió:

PD.....Hernanrivas da un corte de mangas con su brazo izquierdo intacto. ^^
^^ ^^ ^^ Gracias Teseo

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox

 

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