1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

[Practicas] Desifra el codigo

Tema en 'Imagen Digital y Video' iniciado por kitsch, 2 Sep 2006.

  1. kitsch

    kitsch Nuevo usuario

    Bueno este post salio a peticion de algunos usuarios y la verdad que creemos que puede ser bastante util. La mecanica es la siguiente:

    Se escribira un codigo de ActionScript en este post, los usuarios trataran de traducir para que sirve, es decir que accion ejectura, es en teoria bastante simple pero nos pondra a investigar para que funciona y de paso aprendemos un poco de este maravilloso mundo del ActionScript.

    Comezaremos con algo bastante simple, para abrir juego y como me autonombre el moderador estrella del area flas :D :D :D (jejejejeje) yo empiezo:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->function g() {
    &nbsp;&nbsp;&nbsp;&nbsp;var total:Number, cargados:Number, porcentaje:Number;
    &nbsp;&nbsp;&nbsp;&nbsp;total = _root.getBytesTotal();
    &nbsp;&nbsp;&nbsp;&nbsp;cargados = _root.getBytesLoaded();
    &nbsp;&nbsp;&nbsp;&nbsp;porcentaje = Math.floor((cargados*100)/total);
    &nbsp;&nbsp;&nbsp;&nbsp;porcentaje_txt.text = porcentaje+" %";
    &nbsp;&nbsp;&nbsp;&nbsp;barra_mc.gotoAndStop(porcentaje);
    &nbsp;&nbsp;&nbsp;&nbsp;if (cargados == total) {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Ejecutando programa";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearInterval(hiloPrecarga);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;play();
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;switch (porcentaje) {
    &nbsp;&nbsp;&nbsp;&nbsp;case 10 :
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Iniciando descarga";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace(cargados);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
    &nbsp;&nbsp;&nbsp;&nbsp;case 20 :
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Descargado imagenes";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
    &nbsp;&nbsp;&nbsp;&nbsp;case 30 :
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Descargando XML";
    &nbsp;&nbsp;&nbsp;&nbsp;case 40 :
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Cargando scripts";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
    &nbsp;&nbsp;&nbsp;&nbsp;case 50 :
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Leyendo XML";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Interpretando scripts";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
    &nbsp;&nbsp;&nbsp;&nbsp;case 60 :
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Ejecutando XML";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
    &nbsp;&nbsp;&nbsp;&nbsp;case 70 :
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Detectanto resolucion";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
    &nbsp;&nbsp;&nbsp;&nbsp;case 80 :
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Iniciando sub programa";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
    &nbsp;&nbsp;&nbsp;&nbsp;case 90 :
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Terminando pre carga";
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;_root.total_txt.text = total;
    &nbsp;&nbsp;&nbsp;&nbsp;_root.cargados_txt.text = _root.getBytesLoaded();
    }
    var hiloPrecarga = setInterval(cargando, 1);
    stop();
    <!--c2--></div><!--ec2-->

    Este codigo se escribe en el primer fotograma y define algunas varias creadas desde el entorno grafico.
     
  2.  
  3. lexxex

    lexxex Nuevo usuario

    Hi, bueno resumiendo, lo que veo es una pregarga multiple...
    La verdad es la 1ra vez que veo este tipo de juego--> interesante...

    No describo el funcionamiento total pues no soy experto... por el mismo motivo no propongo algun script
     
  4. kitsch

    kitsch Nuevo usuario

    Pues si mas o menos es un cargador, pero la idea es explicar en consiste cada funcion y de ser posible cada instruccion; asi que este codigo aun no esta completamente descifrado asi que continua:
     
  5. SAPINTO

    SAPINTO Nuevo usuario

    ok, voy a poner uno 10 años luz mas simple que el tuyo kitch, pero que es muuuy util y que varios novatos han preguntado:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    this.onEnterFrame = function(){
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc.gotoAndStop(mc._currentframe -1);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(mc._currentframe == 1){
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete this.onEnterFrame;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
    }
    <!--c2--></div><!--ec2-->
     
  6. elQuique

    elQuique Usuario activo

    Bueno voy a tratar de responder la pregunta de Kitsch asi no queda pendiente :sm021: lo hare definiendo globalmente lo que hace y no explicando cada comando y linea.

    Bien en lineas generales es un script de precarga, pero con la funcionalidad de ir anunciando el progreso de la misma con diferentes mensajes

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    function g() {
    &nbsp;&nbsp;&nbsp;&nbsp;var total:Number, cargados:Number, porcentaje:Number;&nbsp;&nbsp;// por buena costumbre se declaran las variables a utilizar
    &nbsp;&nbsp;&nbsp;&nbsp;total = _root.getBytesTotal(); // obtiene la cantidad total del bytes de la pelicula
    &nbsp;&nbsp;&nbsp;&nbsp;cargados = _root.getBytesLoaded();&nbsp;&nbsp; // obtiene la cantidad de bytes cargados hasta el momento
    &nbsp;&nbsp;&nbsp;&nbsp;porcentaje = Math.floor((cargados*100)/total); // calcula el porcentaje de carga con una regla de tres
    &nbsp;&nbsp;&nbsp;&nbsp;porcentaje_txt.text = porcentaje+" %"; // muestra el porcentaje cargado
    &nbsp;&nbsp;&nbsp;&nbsp;barra_mc.gotoAndStop(porcentaje); // avanza en el dibujo de la barra de carga segun el porcentaje
    ...
    <!--c2--></div><!--ec2-->

    Hasta aqui es la inicializacion obligada de esta funcion, comenzando por la declaracion de su nombre. Luego la declaracion de variables lo cual previene errores futuros y es una de las mejores costumbres de los programadores. Y luego tal y como esta explicado linea a linea se obtienen el peso total de la pelicula, lo cargado actualmente y se muestra el porcentaje en numeros % y dibujando la barra de carga correspondiente.

    <b>Seguimos:</b>

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    &nbsp;&nbsp;&nbsp;&nbsp;if (cargados == total) {&nbsp;&nbsp; // controla si la cantidad cargada es igual al total
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carga_txt.text = "Ejecutando programa";&nbsp;&nbsp;// si fue igual al total indica esto con el correspondiente mensaje
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearInterval(hiloPrecarga);&nbsp;&nbsp;// elimina de la memoria la funcion de control de carga
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;play(); // ejecuta el resto de la pelicula que estaba detenida hasta que se cargue
    &nbsp;&nbsp;&nbsp;&nbsp;}
    <!--c2--></div><!--ec2-->

    Bien en esta parte se controlo si estaba totalmente cargada la pelicula, de no ser asi continuaria con lo siguiente, y de ser asi se ejecuta lo que esta dentro del if { y el } haciendo lo que se explico en cada linea.

    Seguimos:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    &nbsp;&nbsp;&nbsp;&nbsp;switch (porcentaje) {&nbsp;&nbsp;// esto abre bifurcaciones (diferentes caminos) para realizar diversas acciones y/o escribir un mensaje segun la cantidad cargada en %
    &nbsp;&nbsp;&nbsp;&nbsp; case 10 :&nbsp;&nbsp; // cuando llevemos cargados un 10% se ejecutaran estas lineas
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Iniciando descarga"; // indicando cuanto se cargo
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trace(cargados);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
    &nbsp;&nbsp;&nbsp;&nbsp; case 20 : // cuando llevemos cargados un 20% se ejecutaran estas lineas
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Descargado imagenes";&nbsp;&nbsp;// indicando que se estan descargando las imagenes
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
    &nbsp;&nbsp;&nbsp;&nbsp; case 30 : // cuando llevemos cargados un 30%&nbsp;&nbsp;se ejecutaran las siguiente lineas
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Descargando XML"; // indicando que se estan cargando los archivos XML (con datos)
    &nbsp;&nbsp;&nbsp;&nbsp; case 40 :&nbsp;&nbsp;// cuando llevemos cargados un 40%
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Cargando scripts";&nbsp;&nbsp;// se indicara que se estan cargando los script de la pelicula
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
    &nbsp;&nbsp;&nbsp;&nbsp; case 50 :&nbsp;&nbsp;// cuando llevemos cargados un 50%
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Leyendo XML"; // se indicara que se esta interpretando el XML leido hace unos momentos
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Interpretando scripts";&nbsp;&nbsp;// esta linea no se ejecuta jiji ya que esta el break anterior, seguro fue un error de kitsh y el lo enmendara editando su post y luego yo edito este.
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
    &nbsp;&nbsp;&nbsp;&nbsp; case 60 : // cuando llevamos cargados el 60%
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Ejecutando XML";&nbsp;&nbsp;// indicara que se esta ejecutando el XML
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
    &nbsp;&nbsp;&nbsp;&nbsp; case 70 : // cuando llevamos un 70%
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Detectanto resolucion";&nbsp;&nbsp;// indicara que se esta detectando la resolucion
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
    &nbsp;&nbsp;&nbsp;&nbsp; case 80 : // cuando llevamos un 80%
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Iniciando sub programa";&nbsp;&nbsp;// indicara que se esta iniciando un subprograma
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
    &nbsp;&nbsp;&nbsp;&nbsp; case 90 : // cuando llegamos al 90%
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; carga_txt.text = "Terminando pre carga";&nbsp;&nbsp;// indicara que la carga se esta terminando
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
    &nbsp;&nbsp;&nbsp;&nbsp; }
    <!--c2--></div><!--ec2-->

    La orden switch, nos permitio entonces establecer diferente bifurcaciones o caminos que seguira el script segun el valor de la variable procentaje.
    En el ejemplo de kitsch fueron simples mensajes, pero podrian haberse puesto por ejemplo cualquier otra orden necesaria, en este caso un mensaje, pero pudo ser ir cambiando de color la barra de carga, mostrar otra imagen, lanzar la carga de otro swf, etc

    <b>Seguimos:</b>

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    &nbsp;&nbsp;&nbsp;&nbsp;_root.total_txt.text = total;&nbsp;&nbsp;// mostrara el total de bytes que se deben cargar
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.cargados_txt.text = _root.getBytesLoaded();&nbsp;&nbsp;// muestra los bytes que se llevan cargando
    &nbsp;&nbsp;}
    <!--c2--></div><!--ec2-->

    Estas dos lineas permiten ver el total de bytes necesarios a cargar, asi como los que se llevan cargando. Esto es informacion complementaria al % que vimos lineas mas arribas y al grafiquito de la barra creciendo.

    <b>Seguimos:</b>

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    var hiloPrecarga = setInterval(cargando, 1);&nbsp;&nbsp;// Carga en memoria una funcion que se ejecutara cada determinado tiempo, en este caso el tiempo es 1
    &nbsp;&nbsp; stop();&nbsp;&nbsp;// detiene la carga de la pelicula
    &nbsp;&nbsp; <!--c2--></div><!--ec2-->

    Estas dos lineas son sumamente importantes, ya que son las que permiten lograr este efecto de precarga, explico...

    Por defecto cualquier swf se va cargando y ejecutando esto es leyendose los bytes y mostrandose de a poco, lo cual puede lograr el feo efecto de elentesimiento o mostrarse cuadro a cuadro lo cual a veces pierde el sentido.

    El invento maravilloso que evita esto es la Pre Carga, una precarga como su nombre lo indica es cargar todo antes de comenzar a mostrarse nuestra pelicula o animacion. Para esto es que se declara una funcion que se ejecutara mientras se este cargando. Normalmente esto es una simple barrita avanzando, en este caso de kitsch fue una completa barra de carga y mensajes segun la cantidad cargada.
    No solo basta con definir la funcion si no que tenemos que decirle a Flash que la ejecute, para esto fue que usamos la linea:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    var hiloPrecarga = setInterval(cargando, 1);
    &nbsp;&nbsp;&nbsp;&nbsp;<!--c2--></div><!--ec2-->

    dandole a entender que eso se debe ejecutar en cada segundo.

    Si solo hacemos esto la pelicula continuara con los feos cuadro a cuadro, por eso igual de importante para lograr nuestro cometido es el STOP que pusimos en la siguiente linea:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    stop();
    &nbsp;&nbsp;&nbsp;&nbsp;<!--c2--></div><!--ec2-->

    Este simple stop(); hace que lo que se lleva cargado y ejecutado de la pelicula se detenga en este punto. De esta forma con la funcion del hiloPrecarga definida por el setInterval y con el stop() logramos que flash repita esto tantas veces como sea necesario, el flash se volvera loco repitiendo esto hasta que sea conveniente.

    Cuanto es conveniente ?? hasta cuando se repite esto ??

    Bien eso lo vemos casi al comienzo en el if { } que controla si cargados == total en cuyo caso elimina con clearInterval la funcion que estaba en memoria; y como teniamos todo detenido por el stop; hace un play de manera que siga de ahi en adelante

    :)

    :banana: :clapping:

    sinceramente espero esto se encuentre bien explicado y los anime a leerlo y tratar de entender este apasionante mundo de la programacion en este caso con el lenguaje Action Script de Macromedia Flash
     
  7. kitsch

    kitsch Nuevo usuario

    Bravo, bravo, bravo yo no pude explicarlo mejor!!! El error en el switch fue intencional, pues queria ver si en verdad estaban leyendo el codigo.. :p

    Bueno quique, te toca tu script :)
     
  8. elQuique

    elQuique Usuario activo

    Respondan primero el de Sapinto asi no queda nada colgado y se entrevera la cosa :p
     
  9. kitsch

    kitsch Nuevo usuario

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    this.onEnterFrame = function(){
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc.gotoAndStop(mc._currentframe -1);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(mc._currentframe == 1){
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete this.onEnterFrame;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
    }
    <!--c2--></div><!--ec2-->

    Bueno, Quique respondio el mio; yo ahora respondo el de nuestro amigo Sapinto.

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->this.onEnterFrame = function(){<!--c2--></div><!--ec2-->
    Con esta linea definimos primero la ruta de destino de nuestra fucion con el operador "this" y concatenamos la funcion onenterFrame, la cual afecta al fotograma afectado y se ejecuta antes que cualquier otra linea de codigo escrita al mismo fotograma. Despues creamos una funcion global (porque no se define, entonces se convierte en insutruccion global).

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->mc.gotoAndStop(mc._currentframe -1);<!--c2--></div><!--ec2-->
    Aqui defimos la primera instruccion de nuestra funcion y es: al objeto (MovieClip casi siempre) "mc" se le concateno la funcion de control de tiempo "gotoAndStop" la cual lleva la linea tiempo a un fotograma determinado; en este caso es "currentFrame" el que devuelve el número del fotograma en el que está situada la cabeza lectora en la línea de tiempo del clip de película y se le resta 1.

    Esta instruccion es la que evita que arranque nuestra pelicula, ya que regresara un fotograma hasta que se complemente el total de bytes del archivo.
    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    if (mc._currentframe == 1) {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete this.onEnterFrame;
    &nbsp;&nbsp;&nbsp;&nbsp;}<!--c2--></div><!--ec2-->
    Despues se crea un codicional if, en el cual le decimos al flash que "mc._currentFrame" es estrictamente igual (porque usa doble signo de equidad '=') a 1 (recordemos que la anterior instruccion no deja pasar de 1 a nuestra linea de tiempo), entonces: que borre la funcion "this.onEnterframe"; esto es algo asi como auto destruirse :p
     
  10. Scriptmaster

    Scriptmaster Guest

    jajajajaja perfecto, perfecto..... me alegro que se haya llevado a cabo tan genial idea como este juego...
    pero bueno a lo que escribo.....tengo una nueva pregunta:

    aqui va!!!!

    Pregunta:

    Despues de poner atencion en el sgte script que es una parte de un reproductor MP3 para nuestras web`s diga:

    1-En que boton del reproductor se coloca este script (play, stop, anterior, siguiente, alzar volumen, bajar bolumen), argumente su afirmación describiendo el Script que se representa....

    <div align="center">on (release) {

    stopAllSounds();

    _root.musica1=new Sound(this);

    _root.musica1.loadSound("cancion"+a+".mp3", true);

    _root.musica1.setVolume(i);

    _root.musica1.onSoundComplete = function() {

    if (a<5) {

    a=a+1;

    _root.musica1.loadSound("cancion"+a+".mp3", true);

    _root.musica1.setVolume(i);

    } else {

    a=1

    _root.musica1.loadSound("cancion"+a+".mp3", true);

    _root.musica1.setVolume(i);

    }



    }

    } </div>

    espero les resulte interesante :arriba:

    Salu2::::::: Scriptmaster :)
     
  11. kitsch

    kitsch Nuevo usuario

    No se si este bien que yo responda este script, porqu el codigo es mio, jejejeje; es del tutorial de como crear un reproductor de audio publicado en Solophotoshop... :D

    Pero bueno, respondo el script, este se aplica al boton siguiente y a continuacion lo desgloso <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    on (release) { //declaramos la funcion de boton y la codicion de al activar
    &nbsp;&nbsp;&nbsp;&nbsp;stopAllSounds(); //Detiene cualquier otro sonido
    &nbsp;&nbsp;&nbsp;&nbsp;_root.musica1 = new Sound(this); //re definimos la variable musica1
    &nbsp;&nbsp;&nbsp;&nbsp;/* musica1 ya estaba definida previamente en el script general;
    &nbsp;&nbsp;&nbsp;&nbsp;en el primer fotograma y se declaro asi:
    &nbsp;&nbsp;&nbsp;&nbsp;var musica1:Sound */
    &nbsp;&nbsp;&nbsp;&nbsp;_root.musica1.loadSound("cancion"+a+".mp3", true);
    &nbsp;&nbsp;&nbsp;&nbsp;/*cargamos un sonido definido por la palabra cancion mas
    &nbsp;&nbsp;&nbsp;&nbsp;el valor de la varible "a" la cual tambien definimos en el script
    &nbsp;&nbsp;&nbsp;&nbsp;global: var a:Number = 1; y le agregamos la extencion ".mp3" para
    &nbsp;&nbsp;&nbsp;&nbsp;crear una ruta de archivo en este caso:
    &nbsp;&nbsp;&nbsp;&nbsp;loadSound("cancion2.mp3", true);*/
    &nbsp;&nbsp;&nbsp;&nbsp;_root.musica1.setVolume(i);
    &nbsp;&nbsp;&nbsp;&nbsp;/* le asignamos el volumen al sonido cargado en musica1, y este esta
    &nbsp;&nbsp;&nbsp;&nbsp;tambien definido por una variable global: var i:Number = 60;
    &nbsp;&nbsp;&nbsp;&nbsp;*/
    &nbsp;&nbsp;&nbsp;&nbsp;_root.musica1.onSoundComplete = function() {
    &nbsp;&nbsp;&nbsp;&nbsp;/* le agregamos una funcion a la variable musica1, que se ejecutara cuando
    &nbsp;&nbsp;&nbsp;&nbsp;la funcon onSoundComplete se ejecute */
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (a<5) {//Creamos una condicional que evaluara si a es menor a 5
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a = a+1; //si esta condicion se cumple, se incremente el valor de a en 1
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.musica1.loadSound("cancion"+a+".mp3", true);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//repetimos el proceso de cargar canciones
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.musica1.setVolume(i);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//le asignamos el valor de volumen
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a = 1;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.musica1.loadSound("cancion"+a+".mp3", true);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.musica1.setVolume(i);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;};
    }
    <!--c2--></div><!--ec2-->

    Explico el codigo en los comentarios :p
     
  12. Scriptmaster

    Scriptmaster Guest

    jajajaj bien Kirtsch, pero la idea era que tu no lo respondieras sino otros.... jajajajaj disculpame si te "ofendi" cogiendo un pedazo de tu Script.... Estoy preparando uno mio que no vas a poder decifrar....ES SORPRESA!!!

    jajajaja :clapping:

    Salu2>>>>>> Scriptmaster :arriba:
     
  13. DragonX

    DragonX Guest

    a ver que les parace....... entre nos, me costo un poco....

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    finder.onRelease = function() {
    &nbsp;&nbsp;&nbsp;&nbsp;Selection.setFocus("_root.textInstance");
    &nbsp;&nbsp;&nbsp;&nbsp;var inputterString:String = _root.inputter;
    &nbsp;&nbsp;&nbsp;&nbsp;var inputLength:Number = inputterString.length;
    &nbsp;&nbsp;&nbsp;&nbsp;textStart = textVar.indexOf(inputter, 0);
    &nbsp;&nbsp;&nbsp;&nbsp;if (inputLength>0) {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textEnd = textStart+inputLength;
    &nbsp;&nbsp;&nbsp;&nbsp;} else {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textEnd = 0;
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;if (textStart>=0) {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selection.setSelection(textStart, textEnd);
    &nbsp;&nbsp;&nbsp;&nbsp;} else {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selection.setSelection(0, 0);
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;_root.textEnd = textEnd;
    };
    findNext.onRelease = function() {
    &nbsp;&nbsp;&nbsp;&nbsp;Selection.setFocus("_root.textInstance");
    &nbsp;&nbsp;&nbsp;&nbsp;var inputterString:String = _root.inputter;
    &nbsp;&nbsp;&nbsp;&nbsp;var inputLength:Number = inputterString.length;
    &nbsp;&nbsp;&nbsp;&nbsp;textStart = textVar.indexOf(inputter, _root.textEnd);
    &nbsp;&nbsp;&nbsp;&nbsp;if (inputLength>0) {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textEnd = textStart+inputLength;
    &nbsp;&nbsp;&nbsp;&nbsp;} else {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textEnd = 0;
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;if (textStart>=0) {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selection.setSelection(textStart, textEnd);
    &nbsp;&nbsp;&nbsp;&nbsp;} else {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selection.setSelection(0, 0);
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;_root.textEnd = textEnd;
    };
    <!--c2--></div><!--ec2-->

    Abrazo DX
     
  14. salvadoresc

    salvadoresc Nuevo usuario

    yo quiero preguntar un detalle espero se valga.... es que no entiendo en el codigo de sapinto el if.... porque como se determina de que el valor va a ser = 1 entiendo que cuando eso suceda se detiene por que se borra la variable pero no me queda clara la condicion plz grax
     
  15. kitsch

    kitsch Nuevo usuario

    Bueno aqui mi explicacion, leer los comentarios ahi lo explico:
    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->finder.onRelease = function() {
    //finder sobre entiendo que es una variable o nombre de instancia, seguramente un boto o MC
    &nbsp;&nbsp;&nbsp;&nbsp;Selection.setFocus("_root.textInstance");
    /*
    La clase Selection le permite establecer y controlar el campo de texto en el que se
    encuentra el punto de inserción (es decir, el campo seleccionado).
    setFocus es una propiedad heredada de la clase y devuelve una cadena que especifica la ruta
    de destino del objeto que está seleccionado con el teclado.
    Para este ejemplo "_root." y el objeto "textInstance".
    */
    &nbsp;&nbsp;&nbsp;&nbsp;var inputterString:String = _root.inputter;
    //Se decalara una variable de tipo "CADENA" y es igual a la varible "inputter";
    //seguramente un campo de instroduccion de texto
    &nbsp;&nbsp;&nbsp;&nbsp;var inputLength:Number = inputterString.length;
    //Se declara otra variable inputLength con una propiedad numerica la cual es igual al numero
    //de caracteres especificado o asignado a la varible Strign de inputterString.
    &nbsp;&nbsp;&nbsp;&nbsp;textStart = textVar.indexOf(inputter, 0);
    //textStar es otra variable sin una propiedad asignada, la cual devolvera un valor identico
    //al de textVar y se indexara desde inputter (contando desde 0) en el nivel 0
    &nbsp;&nbsp;&nbsp;&nbsp;if (inputLength>0) {
    //Creamos una condicional donde asignamos que si inputLength es igual a 0 entonces
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textEnd = textStart+inputLength;
    //textEnd debera ser igual a textSatar mas los valores de inputLength
    &nbsp;&nbsp;&nbsp;&nbsp;} else {
    //si esta condicion no se cumple textEnd es igual a 0
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textEnd = 0;
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;if (textStart>=0) {
    //Existe aqui otra condicional donde textStar debe ser igual a 0, si se cumple
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selection.setSelection(textStart, textEnd);
    //Se selecionara textStart y textEnd, con los valores recibidos
    &nbsp;&nbsp;&nbsp;&nbsp;} else {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Selection.setSelection(0, 0);
    //si la condicion no se cumple se escribiran estas variables con valor de 0
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;_root.textEnd = textEnd;
    //el nivel principal y afectando de manera global (mala forma de hacerlo :p pues es una varible privada)
    //la varialbe textEnd tendra el mismo valor de textEnd despues de las instrucciones recibidas
    };<!--c2--></div><!--ec2-->

    El siguiente bloque de codigo ya no lo describo, porque es exactamnte igual al anterior finder, (buscar) solo que afectara un cambio a los valores para que registre el siguiente dato seguen el valor de indexacion...

    Es correcto????
     
  16. DragonX

    DragonX Guest

    clap.....clap....clap.......kitsch no se te escapa una!!!!!!

    muy bien!
     
  17. SAPINTO

    SAPINTO Nuevo usuario

    <!--quoteo(post=142692:date=Sep 18 2006, 03:32 PM:name=salvadoresc)--><div class='quotetop'>CITA(salvadoresc @ Sep 18 2006, 03:32 PM) [snapback]142692[/snapback]</div><div class='quotemain'><!--quotec-->
    yo quiero preguntar un detalle espero se valga.... es que no entiendo en el codigo de sapinto el if.... porque como se determina de que el valor va a ser = 1 entiendo que cuando eso suceda se detiene por que se borra la variable pero no me queda clara la condicion plz grax
    <!--QuoteEnd--></div><!--QuoteEEnd-->

    no habia notado eso... te refieres al _currentframe? ahi dice mc._currentframe, que vendria siendo el <b>numero</b> del frame en que se encuentra el movieclip mc. vale decir, si llega a 1 se borra.
     
  18. Humber

    Humber Nuevo usuario

    Estos codigos me dejan en la luna muchas veces.... jejeje
     
  19. mikemaster

    mikemaster Nuevo usuario

    seria bueno que tambien expliquen de paso algunas functiones y methodos por que yo ya me perdi :blink:
    end
     
  20. alfonsofonso

    alfonsofonso Nuevo usuario

    mas codigos!!
     
  21. windwarrior

    windwarrior Nuevo usuario

    Uhhhhh me encanta este tema :D!!! Espero poder descifrar algún código je je je... Aunque he podido con casi todos (menos con el de dragonX je je je, aunque ya kitsch lo explicó je je je)...

    Me gustaría pedirle que cuando descifren un código, al final de la explicación línea a línea, expliquen aunque sea brevemente la utilidad del script... porque yo aunque me defiendo un poco y logro entender los valores y funciones... pierdo la noción de la función general... es decir: y para qué me serviría ese script?!

    Espero también ponerles uno pronto je je je. Nos vemos :D !!!!! Y gracias a todos los participantes :D!!!!!
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·