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. elQuique

    elQuique Usuario activo

    Hace tiempo no se mueve esto, les dejo un código para descifrar:
    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    function CargarAlgo(myAlgo:String, myDescripcion:String) {

    &nbsp;&nbsp;&nbsp;&nbsp;var contentAlgo:MovieClip = new MovieClip();
    &nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;contentAlgo.x = 260;
    &nbsp;&nbsp;&nbsp;&nbsp;contentAlgo.y = 35;
    &nbsp;&nbsp;&nbsp;&nbsp;contentAlgo.graphics.beginFill(0x000000);
    &nbsp;&nbsp;&nbsp;&nbsp;contentAlgo.graphics.lineStyle(1, 0xFFFFFF);
    &nbsp;&nbsp;&nbsp;&nbsp;contentAlgo.graphics.drawRect(0, 0, 540, 420);
    &nbsp;&nbsp;&nbsp;&nbsp;contentAlgo.graphics.endFill();
    &nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;var descripcion:TextField = new TextField();
    &nbsp;&nbsp;&nbsp;&nbsp;descripcion.text = myDescripcion;
    &nbsp;&nbsp;&nbsp;&nbsp;descripcion.textColor = 0xFFFFFF;
    &nbsp;&nbsp;&nbsp;&nbsp;descripcion.x = 5;
    &nbsp;&nbsp;&nbsp;&nbsp;descripcion.y = 5;
    &nbsp;&nbsp;&nbsp;&nbsp;descripcion.multiline = true;
    &nbsp;&nbsp;&nbsp;&nbsp;descripcion.wordWrap = true;
    &nbsp;&nbsp;&nbsp;&nbsp;descripcion.width = 530;
    &nbsp;&nbsp;&nbsp;&nbsp;descripcion.autoSize = TextFieldAutoSize.NONE;
    &nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;var formato:TextFormat = new TextFormat("Arial", 11, 0xFFFFFF, true);
    &nbsp;&nbsp;&nbsp;&nbsp;descripcion.setTextFormat(formato);
    &nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;contentAlgo.addChild(descripcion);
    &nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;var nc:NetConnection = new NetConnection();
    &nbsp;&nbsp;&nbsp;&nbsp;nc.connect(null);
    &nbsp;&nbsp;&nbsp;&nbsp;var ns:NetStream = new NetStream(nc);
    &nbsp;&nbsp;&nbsp;&nbsp;miAlgo.attachNetStream(ns);
    &nbsp;&nbsp;&nbsp;&nbsp;ns.play("Algos/" + myAlgo);

    &nbsp;&nbsp;&nbsp;&nbsp;mc.addChild(contentAlgo);
    }
    <!--c2--></div><!--ec2-->
     
  2. kitsch

    kitsch Nuevo usuario

    Esta activida yo la abri, asi que creo que es justo que colabore para revivirla; no uso mucho actionscript de forma practica ultimamente pues estoy estudiando como loco para poder mudarme al as3, en fin, sin mas rodeos aqui paso mi interpretacion.

    1.- Primero que nada el script es una funcion privada, por lo que no se ejecutara automaticamente, es decir debemos de llamarla en algun momento para cumpla con las sentencias y condiciones que la forman.

    <b>function CargarAlgo(myAlgo:String, myDescripcion:String) {</b>
    *En la primera linea se declara la funcion y se le asigna un nombre, en este caso CargarAlgo() con dos atributos myAlgo:String (myAlgo es el nombre y String la propiedad o tipo de variable) y myDescripcion:String (Exactamente igual que la anterior) y se abre una llave para las instrucciones.

    <b>var contentAlgo:MovieClip = new MovieClip();</b>

    *La segunda linea comienza con la declaracion de una variable (<b>var</b>) con el nombre de contentAlgo con propiedad de MovieClip y esta variable tiene un valor de funcion, <b>new</b> funcion/declaracion de nuevo objeto y MovieClip() que es el tipo del nuevo objeto. La traduccion de esta linea seria: "Variable contentAlgo que es un movie clip es igual a un nuevo movie clip".

    <b>contentAlgo.x = 260;
    contentAlgo.y = 35;</b>

    *Como muchos ya tendran claro, ActionScript funciona en escalera, es decir que se pueden declara varios atributos a una misma variable. En esta linea a la variable que antes creamos (contentAlgo) se le asignan nuevas propiedades, esta en concreto es la posicion "x" con un valor de 260 px y de "y" con un valor de 35.

    <b>contentAlgo.graphics.beginFill(0x000000);
    contentAlgo.graphics.lineStyle(1, 0xFFFFFF);
    contentAlgo.graphics.drawRect(0, 0, 540, 420);
    contentAlgo.graphics.endFill();</b>

    *Este bloque de propiedades aplicables a contentAlgo son una instancia de de la clase Graphics de ActionScript 3, esta clase permite dibujar o aplicar filtros a nuestros objetos. En este caso nuestra variable contentAlgo es un MovieClip vacio y sin forma, por lo que puede crear un rectangulo de 540x420 px con borde de 1 px negro y relleno de color blanco con estas instrucciones. Explico las instancias usadas en el bloque anterior:

    *beginFill: rellena de un color solido, el color se escribe de forma hexadecimal como todo en flash.
    *lineStyle: tipo de linea del objeto.
    *drawRect: dibuja un rectangulo, no funciona si antes no se define un relleno y tipo de linea, en este caso se realizo antes de llamar la funcion.
    *endFill: termina con cualquier relleno hasta esta instruccion, por ejemplo en gradientFill que crea degrades o el aqui usado beginFill para colores solidos.

    <b>var descripcion:TextField = new TextField();
    descripcion.text = myDescripcion;
    descripcion.textColor = 0xFFFFFF;
    descripcion.x = 5;
    descripcion.y = 5;
    descripcion.multiline = true;
    descripcion.wordWrap = true;
    descripcion.width = 530;
    descripcion.autoSize = TextFieldAutoSize.NONE;</b>

    *Como ocurrio en el anterior bloque, aqui se declara otra variable tambien privada y la cual lleva por nombre dcescripcion. Como tambien ocurre en el anterior bloque, se definen las propiedes de esta de forma escalonada, solo que esta vez no son propiedades de Objeto MovieClip, si no de la clase TextField() (campo de texto).

    En la segunda linea de este bloque, se asigna un valor a description, es el mismo que tendra myDescription, variable que se declara en las particularidades de la declaracion de la funcion en la primera linea. Tiene la funcion <b>text</b> por lo que esta variable mostrara el texto cualesquiera que sea el que contenga myDescription.

    Las propiedades son muy parecidas a los de un MC solo que estas no utilizan una clase secundaria, aplican la posicion, el color si es multilinea, el tamaño de la caja y si debe de tener un tamaño automatico, lo cual como la funcion <b>TextFieldAutoSize</b> requiere, es boleano y se aplica un verdadero o falso; en este caso falso.

    <b>var formato:TextFormat = new TextFormat("Arial", 11, 0xFFFFFF, true);
    descripcion.setTextFormat(formato);</b>

    *Aqui se declara otra variable, igual que las anteriores privada y esta tiene por nombre de instancia formato con la propiedad TextFormat. Esta tiene como valor un nuevo formato con fuente Arial, 11 px, Negro y es visible.

    En la segunda linea, se agrega una propiedad mas a descripcion y con la aplicacion de la funcion <b>setTextFormat()</b> la cual aplica un formato antes definido, en este caso el de una linea arriba; la variable "formato".

    <b>contentAlgo.addChild(descripcion);</b>

    *Regresamos a las propiedades de contentAlgo y agregamos la funcion addChild() la cual sirve para agregar nodos, aqui se define como adhesion la variable descripcion, es decir a la variable que afectara.

    <b>var nc:NetConnection = new NetConnection();</b>

    *De nuevo declaramos una variable privada, pero en este caso una con una funcion muy poco usada por lo usuarios no tan avidos al AS, de propiedad <b>NetConnection</b>. La cual crea un objeto de coneccion directa a la funcion NetStream para reproducir videos en formato FLV de forma stream como su nombre lo indica.

    <b>nc.connect(null);</b>

    *Abre una conexión local a través de la cual puede reproducir archivos de vídeo (FLV) de una dirección HTTP o un sistema de archivos local, en este caso null pues aun no se realiza.

    <b>var ns:NetStream = new NetStream(nc);</b>

    *Otra declaracion de variable privada, esta con propiedad NetStream y valor de contrucctor de nuevo NetStream(). La clase NetStream abre una conexión unidireccional de transmisión entre Flash Player y un servidor, como Macromedia Flash Media Server 2.

    <b>miAlgo.attachNetStream(ns);
    ns.play("Algos/" + myAlgo);</b>

    Llamamos a la variable myAlgo declarada junto con la funcion en la primera linea y le asignamos un attachNetStream, es decir una coneccion a un servidor por medio de NetConecction (la variable ns), una vez definido que es lo que realiza esta variable se le asigna la propiedad play para que reproduzca el contenido de la url "algos/".

    <b>mc.addChild(contentAlgo);</b>

    *Por ultimo hay una variable mc la cual estoy seguro que es nc (error de dedo) y se le agrega un nuevo nodo, el de contentAlgo, es decir donde se reproduciran los videos.

    *Ya por ultimo una llave que cierra la funcion.

    En resumen este es un reproductor de videos de forma stream que crea un mc vacio para contenerlos y un cuadro de texto con su descripcion del video. Me queda claro que este es solo un ejemplo teorico, pues para que funcione harian falta varias cosas, de entrada un XML con la lista de los videos y un error crucial, NetConecction() en ActionScript 3 ESTA DESCONTINUADO, ES DECIR SU USO YA NO ES APLICABLE DE FORMA CORRECTA, AUN FUNCIONA PERO NO ES YA RECOMENDABLE. Deduzco que es ActionScript 3 por que las primeras partes del codigo utiliza una estructura de AS3, no utiliza "_" para las propiedades de localizacion y utiliza la clase Graphics, la cual es unica de ActionScript 3.

    Supongo que Quique lo ha hecho intencionalmente para ver si alguien lo notaba y pues bingo :)

    Es correcto Quique???
     
  3. windwarrior

    windwarrior Nuevo usuario

    ... Me siento tan humilde en este tema :)
    je je je espero poder llegar a tiempo para el próximo script... y trataré de hacer uno, aunque sería demasiado simple je je je n_n
     
  4. elQuique

    elQuique Usuario activo

    Así es, es mi viejo reproductor de vídeo ActionScript 2.0, que traduce ayer a ActionScript 3.0 para un flash que me pasaron.

    el mc. esta correcto no es error de dedo, ya que mc. se llama el mc global donde se muestra el video :)

    Pero es correcto el resto de los comentarios :p la funciona funciona así:

    CargarAlgo("terminator.flv", "El señor gobernador haciendo de heroe");

    y bueno muestra ese video con esa descripción ;)
     
  5. kitsch

    kitsch Nuevo usuario

    Quien pone el siguiente script??????
     
  6. elQuique

    elQuique Usuario activo

    El que quiera :p
     
  7. sergiourra

    sergiourra Nuevo usuario

    <!--quoteo(post=296242:date=Mar 27 2008, 04:57 PM:name=elQuique)--><div class='quotetop'>CITA(elQuique @ Mar 27 2008, 04:57 PM) [snapback]296242[/snapback]</div><div class='quotemain'><!--quotec-->El que quiera :p<!--QuoteEnd--></div><!--QuoteEEnd-->

    Holas, soy nuevo en Foro Creativo, así que: Saludos para todos y felicitaciones por esta linda comunidad que han contruido.

    Ahora, denme la bienvenida :)

    elQuique, prometo poner el subsiguiente. No puedo ahora, pues todos tienen los comentarios --y también las variables-- definidas en inglés o portugués, lo que le complicaria un poquito el queso a algunos.

    Me encantaría saber de quién fué la idea de crear este juego. Merece un enorme abrazo.

    Bueno, nos vemos.

    ----------------------------------------------------------------
    Volví. Acá va uno:
    ----------------------------------------------------------------


    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->
    /* ------------- ACÁ EMPIEZA, PERO SON LAS DOS SECCIONES
    DE MÀS ADELANTE LAS QUE HAY QUE DILUCIDAR -------------------- */

    var num:Number = 6;
    var radiusX:Number = 250;
    var radiusY:Number = 40;
    var posX:Number = Stage.width/2;/
    var posY:Number = Stage.height/2+150;
    var speed:Number = 0.036;

    for (var i = 0; i<num; i++) {
    &nbsp;&nbsp;&nbsp;&nbsp;duplicateMovieClip("item01", "item"+i, i+50);
    &nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].angle = i*((Math.PI*2)/num);
    &nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].swapDepths(Math.round(this._xscale)+100);
    &nbsp;&nbsp;&nbsp;&nbsp;this["item"+i]._visible = 0;
    &nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].alta._y = -600;
    &nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].baja._y = 550;
    &nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].onEnterFrame = mover;
    &nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].txthis["item"+i].text = this["item"+i]._name;
    &nbsp;&nbsp;&nbsp;&nbsp;if (this["item"+i]._name == "item0") {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].alta.cabalo.gotoAndPlay(45);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].baja.reflejo.cabalo.gotoAndPlay(45);
    &nbsp;&nbsp;&nbsp;&nbsp;}

    // -------ESTA PARTE ES PARA CORREGIR QUÉ? -----------
    &nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;if (this["item"+i]._name == "item1") {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].alta.cabalo.gotoAndPlay(70);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].baja.reflejo.horse.gotoAndPlay(70);
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;if (this["item"+i]._name == "item2") {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].alta.horse.gotoAndPlay(105);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].baja.reflejo.cabalo.gotoAndPlay(105);
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;if (this["item"+i]._name == "item3") {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].alta.cabalo.gotoAndPlay(135);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].baja.reflejo.cabalo.gotoAndPlay(135);
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;&nbsp;&nbsp;if (this["item"+i]._name == "item4") {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].alta.cabalo.gotoAndPlay(165);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this["item"+i].baja.reflejo.cabalo.gotoAndPlay(165);
    &nbsp;&nbsp;&nbsp;&nbsp;}
    }

    // --------- QUÉ HACE ESTA FUNCIÓN? --------------

    function mover() {
    &nbsp;&nbsp;&nbsp;&nbsp;this._x = Math.cos(this.angle)*radiusX+posX;
    &nbsp;&nbsp;&nbsp;&nbsp;this._y = (Math.sin(this.angle)*radiusY+posY);
    &nbsp;&nbsp;&nbsp;&nbsp;var s = this._y/(posY+radiusY);
    &nbsp;&nbsp;&nbsp;&nbsp;this._xscale = Math.round(this._yscale=s*100);
    &nbsp;&nbsp;&nbsp;&nbsp;this.angle += this._parent.speed;
    &nbsp;&nbsp;&nbsp;&nbsp;this.swapDepths(Math.round(this._xscale)+100);
    &nbsp;&nbsp;&nbsp;&nbsp;var colorTrans:ColorTransform = new ColorTransform();
    &nbsp;&nbsp;&nbsp;&nbsp;colorTrans.redOffset = -((100-this._xscale)*col);
    &nbsp;&nbsp;&nbsp;&nbsp;colorTrans.greenOffset = -((100-this._xscale)*col);
    &nbsp;&nbsp;&nbsp;&nbsp;colorTrans.blueOffset = -((100-this._xscale)*col);
    &nbsp;&nbsp;&nbsp;&nbsp;this.transform.colorTransform = colorTrans;
    &nbsp;&nbsp;&nbsp;&nbsp;if (this._xscale == 100 && this.alta.horse._currentframe<81) {
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.alta.cabalo.gotoAndPlay(81);
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.baja.reflejo.cabalo.gotoAndPlay(81);
    &nbsp;&nbsp;&nbsp;&nbsp;}
    }
    <!--c2--></div><!--ec2-->

    Bueno, este código se puso de moda el año pasado aunque ya existia hace siglos.
    Como pista, diría que el mismo me dió HIPO y me hizo dar vueltas la cabeza, jejejeje.
     
  8. alfonsofonso

    alfonsofonso Nuevo usuario

    hola, yo diria que esto son caballitos de feria! las pistas y los nombres de instancia me han ayudado creo...
    la sección 1 creo que desincroniza los caballos para que no vayan todos iguales y la función les hace girar no?
    saludos
    alfonsofonso


    hola, yo diria que esto son caballitos de feria! las pistas y los nombres de instancia me han ayudado creo...
    la sección 1 creo que desincroniza los caballos para que no vayan todos iguales y la función les hace girar no?
    saludos
    alfonsofonso
     


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


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·