Action Script es un muy buen programa para diseñar
Hoy me encontré este folleto en mi buzón (uno de tantos que meten en plan spam):

WTF adicional porque no dan clases en Castellano pero sí en chino.
Hoy me encontré este folleto en mi buzón (uno de tantos que meten en plan spam):

WTF adicional porque no dan clases en Castellano pero sí en chino.

He estado trabajando un poco con flash estos últimos días, y entre otras cosas, he encontrado una forma realmente sencilla de hacer un botón on de apagar y encender la música para un sitio flash (Usando ActionScript 2.0).
Lo haremos en unos sencillos pasos:
Paso uno: Estando situados en el Escenario principal, lo que haremos será importar el sonido. Eso se puede hacer arrastrando el archivo de sonido directamente a la biblioteca de flash. Para el ejemplo, he usado este loop.

Nota: Una vez tenemos el sonido importado, en sus propiedades, si deseamos, podemos variar su calidad para hacer que pese menos en la película final.
Paso dos: Cuando tengamos esto, creamos un nuevo MC vacío (Ctrl+F8). Este MC, por decir un nombre, lo llamaremos “sonido“:

Este MC, tendrá únicamente 2 fotogramas. Para crearlos, usaremos fotogramas clave (F6). Debe quedarnos de esta forma:

Paso tres: Una vez esto, añadiremos al primer fotograma la instancia de “off”, y en el segundo fotograma, le ponemos de instancia “on” (Ver imagen inferior). Imagino que ya puedes imaginarte para que son los 2 fotogramas. Uno representará el estado de “apagado” y el otro de “encendido” de la música.

Paso cuatro: Hacemos dos dibujos que representen estos estados en cada respectivo fotograma:
Fotograma 1:

Fotograma 2:

Nota: Si deseas que el icono representativo del estado sea una animación, inserta un MC con las animaciones que quieras (barras subiendo y bajando, o un espectro de sonido ficticio, etc.) en vez de un dibujo estático. Para el caso usaré un dibujo estático para hacerlo más simple.
Nota 2: De todas formas ten en cuenta que el dibujo mismo actuará como zona activa del botón, por lo que si lo haces invisible, luego no se podrá hacer clic y el inventó se joderá
Ahora es cuando empieza la magia.
Paso cinco: Seleccionamos el fotograma que corresponde a la música encendida (el 2 en nuestro caso), y en el panel propiedades le añadimos el sonido solamente a ese fotograma:

Y le asignamos que haga un loop continuado (esto es a vuestra discreción, según cuantas veces queréis que se reproduzca el sonido):

Paso seis: Perfecto, lo que queda ahora es solo el código, el cual es realmente sencillo. Tanto como esto:
De forma que al final tenemos:
Fotograma 1:
[as]//Fotograma 1
stop();
stopAllSounds();
[/as]
Fotograma 2:
[as]//Fotograma 2
stop();[/as]
Como pueden observar lo que hemos hecho hasta el momento no tiene misterio.
Paso siete: Ahora pongamos la parte de código principal, la que controla el MovieClip desde la escena principal. Nos ubicamos en el directorio raíz de la película (alias root), instanciamos a nuestro MC como “control“:

A continuación, en el fotograma en el que aparece nuestro control de sonido, le ponemos este código.
[as]var estado:Boolean = false
control.onPress = function() {
if(estado) {
control.gotoAndStop(“off”);
estado=false;
} else {
control.gotoAndStop(“on”);
estado=true;
}
}[/as]

Este código va en el fotograma donde estará el MC.
Aquí varios ejemplos:
Ahí llego de la universidad y me conecto al Gtalk. En esas que sale One pidiéndome esto:
One: Bleend
estás?Bleend: No, fui a suicidarme, regreso en 10 minutos
One: okBleend: XD
One: xDsi te aburres muuuuuuuuuuuuuuuuucho
pero muuuuuuuuuuuuuucho muuuuuuuuuuuuuchoBleend: no creo que sea el caso..
One: necesito hacer el algoritmo que genere esto
http://es.wikipedia.org/wiki/Sistema_de_todos-contra-todos#Algoritmos_de_selecci.C3.B3nBleend: en C++¿
One: http://www.cristalab.com/foros/t52450.html
en lo que sea, actionscript me vale
Así que me puse manos a la obra. Programar en POO me costará mucho, pero en hacer secuencias , de eso si se bastante
Este fue el resultado, lo pongo porque no está en la wikipedia, pero como el código no contempla el caso de los impares no quiero ponerlo, ya que no es 100% funcional; pero tampoco quiero que caiga en saco roto.
Espero a alguien le resulte útil. (Si mas no, ya no habrá que pensar tanto para los torneos de SC
, recuerdo que fael, tuvo que hacer él los grupos, ya que yo no lo pillaba como funcionaba
)
[as]var N:Number = 14;//ATENCIÓN!! “N” DEBE SER PAR! (2,4,8,12,20,…)
var g1:Array = new Array();
var g2:Array = new Array();
//crea los grupos
for (var i = 0; i<((N-1)/2); i++) {
g1.push([i]);
g1[i] = i;
//
g2.push([i]);
g2[i] = N-i-1;
}
for (var j = 0; j //anuncia los grupos //hace girar los grupo para el siguiente round }[/as] Por cierto, la charla la he recortado en la parte interesante, no es que trabaje parta One y le haga los códigos
trace("Round "+j);
trace(g1);
trace(g2);
var temp1 = g2[0];
var temp2 = g1[(N/2)-1];
for (var k = 0; k
g1[1] = temp1;
g2[(N/2)-1] = temp2;
} else {
g1[(N/2)-1-k] = g1[(N/2)-1-k-1];
g2[k] = g2[k+1];
}
}
Era solo un favor… ¬¬
Ahora abre el Inspector de componentes y selecciona el combo box:

Como puedes ver, en mi caso tengo 4 elementos en el combo:
[Hélice,Hipocicloide,Hepicicloide,F.Lissajous]
Los puedes ver donde pone “labels”, y aparecen en forma de matriz (array).
Si te fijas, verás que hay otro campo muy parecido llamado “data”, donde aparece otro array:
[f1,f2,f3,f4]
Ok, estos valores los puse yo, igual que los anteriores. Es decir, igual que pone eso, podría poner:
[qwe,asd,zxc,jkl]
Pero no lo pongo, pues este array será el que identifica la posición actual del combo box, así que usamos nombres sencillos para evitar errores

Una vez visto esto, vayamos a lo que interesa: El código para acceder al valor actual del combo box.
Para acceder al array de data: (campos mas sencillos)
[as]box.getSelectedItem().data[/as]
Para acceder al array de labels: (nombre que le pusiste a cada campo)
[as]box.getSelectedItem().label[/as]Estos códigos tiene un valor concreto, que varía según el elemento en el que esté actualmente el combo:
|
COMBO BOX
|
box.getSelectedItem().data
|
box.getSelectedItem().label
|
|
Hélice
|
f1
|
Hélice
|
|
Hipocicloide
|
f2
|
Hipocicloide
|
|
Hepicicloide
|
f3
|
Hepicicloide
|
|
F.Lissajous
|
f4
|
F.Lissajous
|
Lo que hagas a partir de aquí ya depende de ti y para que lo quieras.
Por ejemplo, puedes crear una función parecida a esta, si lo que quieres es que cada vez que se cambia el valor en el combo box, automáticamente reaccione y haga algo:
[as]function change(evt){
trace(evt.target.selectedItem.data);
//ha cambiado el valor actual del combo
//hace un trace del valor en el que se ha posicionado
//aquí es donde van tus acciones (puedes eliminar el trace)
}
box.addEventListener(“change”, this);
/crea el listener de la función[/as]
Por otra parte, si quieres que aunque haya cambiado, no haga nada hasta que pulses un botón de nombre de instancia “go“, puedes usar un código como éste:
[as]go.onPress = function() {
acciones();
};
function acciones() {
switch (box.getSelectedItem().data) {
case “f1″ :
trace(“Has pulsado
break;
case “f2″ :
trace(“Has pulsado
break;
case “f3″ :
//asdf
break;
case “f4″ :
//asdf
break;
}
}[/as]
Espero les haya ayudado