Aula: HTML

Acerca 'Atelier'

  • 'Atelier" ha sido desarrollado para ponerlo al alcance de ingenieros que se desenvuelven en el area de Control de Proyecto, en sectores de la gran mineria, oil & gas, otros; que aun no han desarrollado sus habilidades con respecto a código de programación .
  • 'Atelier', al igual que 'Graphs' tiene dos (02) partes: la primera, es este mismo espacio donde se explica el tema que se esta presentando; luego la segunda parte, es el 'editor web' donde se exhiben tanto el 'código' del ejercicio como su 'resultado'
  • ahora vamos a explicar como usar el editor
  • paso 1 : para acceder al editor solo hay que hacer click en el boton inferior donde dice 'ver imagen', 'ver ejemplo' o 'ver ejercicio'
  • la pantalla del editor consta de dos partes pantalla-izquierda fondo negro es la que exhibe el codigo y pantalla-derechha fondo blanco es la que exhibe el resultado
  • paso 2 : despues de familiarizarte con el codigo entender como funciona empieza a hacer pequenos cambios en el texto pantalla-izquierda; haz pequenos cambios cuantas veces quieras y no te preocupes si algo no sale bien
  • paso 3 : para ver resultado de tus pequeños cambios haz click en boton run
  • paso 4 : para volver al codigo inicial solo tienes que hacer click en el simbolo reload this page del window

Qué es HTML?

  • Al inicio HTML significara términos nuevos expresados en idioma ingles
  • no se preocupen, con el tiempo se familiaran con ellos
  • todo documento HTML tiene una estructura basica que incluye los siguientes elementos: !DOCTYPE html, <.html>, <.head>, <.body>.
  • dentro del <.head> se incluye principalmente el 'title', los 'meta', y el link del archivo 'style.css', pero tambien en algunos casos se incluye un o mas 'scripts'
  • en el html template (A) que se presenta, observaran lo descrito anteriormente; notaran que la pantalla derecha del editor muestra una pantalla en blanco, es decir vacia; esto es debido a que el html template muestra la estructura basica de una pagina web pero no tiene contenido
  • agreguemos un poquito de contenido, como un parrafo, al template, y veamos que pasa
  • el contenido siempre va dentro de <.body>
  • ahora, nuestro template (B) muestra un contenido que dice Que tal Ninos! al que se le ha adicionado un poquito de estilo css para que las letras tengan un color yellowgreen, y un tamano de 30 pixels

Elements

  • como mencionamos HTML significara, para uds, empezar a aprender nuevos terminos expresados en idioma Ingles
  • en idioma ingles porque sus creadores y/o inventores hablaban ingles
  • a vuestra edad, es mejor que los aprenden en ingles (no traten de traducirlos al castellano); porque cuando sean jovenes encontraran que el mundo del coding es casi todo en ingles

  • tres términos para empezar son: elements, tags, and attributes

  • empezemos por definir 'elements'
  • Elements definen la estructura y el contenido de los objetos dentro de una página web
  • tal como 'headings' (identificados como elements que van del 'h1' al 'h6')
  • y 'paragraphs' (identificados como 'p')
  • hagan click en 'Ver imagen'
  • el editor expone una imagen (no esta mostrando un parrafo) que muestra como se identifican el element, el attribute, y el tag en una expresion html.
  • Nota: la imagen esta insertada en un elemento html denominado 'canvas'; en las proximas 'Aulas' van a aprender que es un 'canvas'.

Tags

  • El uso de paréntesis angulares ' (<) menor que' y '(>) mayor que' alrededor de un element crea lo que se conoce como tag.
  • tags ocurren con mayor frecuencia en pares de apertura y cierre
  • por ejemplo: tag de apertura <.h1.>, tag de cierre <./h1.>
  • hagan click en 'Ver imagen' para que vean como se identifica un tag
  • luego hagan click en 'Ver ejemplo' para que observen la identificacion de los principales tags de uso cotidiano en un desarrollo web
  • podran observar que solo en los casos de 'meta' y 'link' el uso de parentesis angulares es diferente; por lo demas, el ejemplo les esta mostrando como es la estructura principal de tags en una pagina web para que se la aprendan de memoria
  • nota no siempre se utilizan en una pagina web todos los tags que se muestran por ejemplo uds estan viendo 1) que se ha incluido scripts tanto en el 'head' como en el 'body' no siempre es asi en la mayoria de casos se incluye 'script' solo en el body 2) no siempre se utiliza el tag 'section' este depende de como es el diseno web

Attributes

  • Attributes son propiedades utilizadas para proporcionar información adicional sobre un element. Ejemplo: el attribute id, que identifica un element
  • los 'attributes' se definen dentro del tag de apertura, después del nombre de un element
  • su formato es asi: 'nombre' del attribute seguido del signo igual (=) y luego un 'valor' de la propiedad entre comillas.
  • Hacer click en 'Ver imagen'
  • ahora empezemos la fiesta!, en ver ejemplo encontraran un ejercicio web que les muestra lo dicho anteriormente
  • deslizen de arriba hacia abajo el cursor de la pantalla izquierda color negro del editor para que observen como esta compuesto este ejercicio
  • primero notaran que la composicion de los tags va como sigue: 'html' 'head' 'style' 'body' 'div' 'span' 'input'; que tienen tanto el tag de apertura como el tag de cierre
  • segundo noten los attributes de nombre 'class' en los elements 'div', 'span', 'input'
  • tercero noten que los 'valores' de cada attribute 'class' de cada element 'div' son diferentes
  • notaron todo lo anterior entonces Bravo

HTML Document

  • Como se dijo anteriormente, todo documento HTML tiene una estructura que incluye los siguientes elementos: '!DOCTYPE html', 'html', 'head', y 'body'.
  • siguiente, todo desarrollo web se inicia en un archivo llamado 'index.html'
  • dentro de este archivo index.html se inserta la 'estructura del documento' que incluye los elements: '!DOCTYPE html', 'html', 'head', 'body' mencionados lineas arriba.
  • otro element que suele formar parte de la estructura principal de un documento html es el 'header'; que se utiliza como el encabezado de una pagina, y que va como el primer element dentro del 'body'
  • el siguiente ejercicio tambien les muestra los elements denominados 'ul' y 'li' que se utilizan para ordenar de modo horizontal y vertical la presentacion de objetos (en este ejemplo: imagenes) o otros elements (en este ejemplo: los 'button') dentro del diseno web
  • Hacer click en 'Ver ejemplo-1'
  • Luego click en 'Ver ejemplo-2'

Aula: CSS

Qué es CSS?

  • CSS son los estilos usados para pintar el documento HTML
  • unos cuantos terminos para empezar son: selectors, properties, and values.; al
  • al inicio del 'aula html' se dijo que todo documento html tiene una estructura que incluye elementos; cuando se aplican estilos al documento html se lo hace siguiendo dicha estructura
  • el ejercicio que se muestra a continuacion se presenta de dos modos: templates (A) y (B)
  • en template (A): deslizen el cursor de arriba a abajo y observen que dentro de los tags <.style> se enumeran con letras color rojo los terminos 'pinguino' 'pinguino-superior' 'pinguino-inferior' etc; luego hacia abajo en los tags <.body> noten que a los elementos 'div' les fueron asignados el attribute 'class' que muestran como 'valor' los mismos terminos 'pinguino' 'pinguino-superior' 'pinguino-inferior' etc en letras color verde
  • ahora noten que en: '--pinguino-barriga' '--pinguino-pico' 'ojo-derecho {background}' 'ojo-izquierdo {background}' 'color-mejilla-derecha {backgroung}' 'color-mejilla-izquierda {backgroung}' 'body {background}' no tienen incluido el valor que va entre ":' y el ";" como resultado la pantalla muestra una silueta de color negro
  • ahora hagan click en template (B), noten los valores incluidos en los terminos mencionados parrafo anterior y su resultado

Qué es un Selector?

  • A medida que se agregan elementos a una página web, se pueden estilar con reglas CSS
  • Un selector CSS es la primera parte de una regla CSS
  • las reglas CSS se suelen especificar en lo que se llama 'una hoja de estilos': la cual, origina un archivo generalmente llamado 'style.css' pero uds pueden llamarlo con cualquier otro nombre

  • en esta hoja de estilos, el selector identifica el elemento o elementos html a los que se aplicarán los estilos que queremos aplicar
  • para ello, primero elegimos que propiedades del elemento queremos estilar y, luego aplicamos valores a cada propiedad que hayamos elegido
  • hagan click en 'Ver imagen'

  • repasemoa lo dicho anteriormente
  • un selector designa a qué elemento o elementos apuntar y aplicar estilos dentro del documento HTML (como: color, tamaño, posición, otros)
  • selectors generalmente apuntan a un valor de la propiedad, como un 'id' o a un valor 'class' , o apuntan al tipo de elemento, como 'h1' o 'p'.
  • vayan a 'Ver ejemplo' y fijense en los selectors identificados en este diseno web, los cuales estan dentro de los tags 'style'

Property

  • Una vez que se selecciona un elemento, una propiedad determina los estilos que se aplicarán a ese elemento.
  • Los nombres de las 'propiedades' van después de un selector, entre llaves, {}, e inmediatamente antes de dos puntos (:)
  • Hay numerosas 'propiedades' que podemos usar, como: fondo, color, tamaño de fuente, alto y ancho, y a menudo se agregan nuevas proiedades.
  • Hay numerosas 'properties' que podemos usar como: fondo, color, tamaño de fuente, alto y ancho, y a menudo se agregan nuevas properties.
  • Hay numerosas 'properties' que podemos usar como: fondo, color, tamaño de fuente, alto y ancho, y a menudo se agregan nuevas properties.
  • Hay numerosas 'properties' que podemos usar como: fondo, color, tamaño de fuente, alto y ancho, y a menudo se agregan nuevas properties.
  • Hacer click en 'Ver Ejemplo'

Value

  • Hasta ahora, hemos seleccionado un 'elemento' con un 'selector' y hemos determinado qué estilo nos gustaría aplicar con una 'propiedad'
  • Ahora podemos determinar el comportamiento de esa 'propiedad' con un 'valor'
  • los valores values se pueden identificar como el texto que va entre 'dos puntos' (:), y el 'punto y coma' (;)
  • por ejemplo: seleccionamos todos los elementos 'p' y establecemos que para la propiedad color su valor sea orange (naranja), y para la propiedad 'font-size' su valor sea 16 píxels.
  • hagan click en 'Ver imagen' donde se muestra un grafico en ingles que ilustra lo mencionado en parrafo anterior
  • ahora vayan a ver ejemplo que muestra una resena de algo muy querido y usado por los ninos
  • YOUTUBE
  • lean y relean el contenido mostrado dentro de los tags style identifiquen los selectors, las propiedades y sus valores
  • sino pueden en un inicio no importa recuerden que son ninos y que estan aprendiendo cosas nuevas y de todas maneras poco a poco empezaron a entender e identicarlos y para cuando sean quinceaneros seran unos expertos

Tipos de Colores

  • ahora hablemos del uso de colores en CSS
  • los colores se pueden describir a) usando una 'palabra clave' ejemplo: amarillo, b) usando lo que se denomina un 'valor hexadecimal' mismo ejemplo (amarillo) pero en valor hexadecimal: #ffff00
  • de los dos, el mas completo y por lo tanto el mas usado es el 'valor hexadecimal'
  • a continuacion mostraremos dos ejercicios: en ejercicio-A, se muestra como dar 'color a un texto' en modo de gradiente haciendo uso del estilo denominado 'linear-gradient' el cual describe como colorear el texto con la expresion: (to right, #30CFD0 0%, #330867 100%)
  • la cual se leea asi: hacia la derecha primero el color '#30CFD0' luego el color '#330867' y especifica paradas de color con los porcentajes (%)
  • en ejercicio-B como su mismo titulo sugiere '3 Gradientes de Color' se muestra como dar 'color a un fondo' (background) tambien en modo de gradiente con el uso del estilo 'linear-gradient'
  • en este ejercicio podran apreciar mejor lo dicho anteriormente, de que el 'valor hexadecimal' es el modo mas completo para dar color

@keyframes & @media rules

  • la regla @keyframes se utiliza para especificar códigos de animación. Una animación se crea cambiando gradualmente de un conjunto de estilos CSS a otro. Durante una animación, se puede cambiar el conjunto de estilos CSS muchas veces. Para utilizar keyframes, se crea una regla de @keyframes con un nombre
  • en el ejercicio que se presenta se crean dos reglas @keyframes: 1) @keyframes odd-fold, y 2) @keyframes even-fold; que luego son utilizadas por la propiedad 'animation-name' : 1) animation-name : odd-fold; 2) animation-name : even-fold;
  • la regla @media tiene que ver con el tipo de celular, laptop, tablet u otro dispositivo que el usuario esta usando; se utiliza para adaptar los estilos especificados (a los elementos del documento html) a las dimensiones 'ancho (width)' y 'alto (height)' del celular; asi como a la 'orientacion' del mismo sea que el usuario tenga el dispositivo en posicion 'horizontal (landscape)' o en posicion 'vertical'
  • en el ejercicio que se presenta se especifican cuatro @media
  • (max-width:480px), (max-width:650px), (max-width:1050px), (max-width:1290px)
  • hagan click en cada imagen

Aula: JavaScript

Web Programming

  • Qué es JavaScript
  • En programación, un script es una secuencia de instrucciones que es ejecutado por un lenguaje de programación; en este caso, el lenguaje se denomina JavaScript
  • js nos permite escribir código que se ejecuta dentro del navegador (chrome); de esta forma el código se ejecuta más rápido
  • js nos da la capacidad de manipular directamente el DOM (la denominacion que se da a la página web en programacion)
  • cómo usamos js
  • ya sabemos que html describe la estructura de una página web en términos de etiquetas
  • entonces, para agregar js a una página usamos etiquetas de script que le dicen a chrome que cualquier cosa entre estas etiquetas debe interpretarse como código que chrome debe ejecutar;

  • Tema 1: escribamos esta línea de código alert(‘hello’);
  • vamos a incluirla dentro de las etiquetas de head; ahora al abrir la página, esta alerta aparece en la parte superior
  • chrome sabe que cuando llamamos a la función alert chrome debe exhibirla
  • este es nuestro primer ejemplo de código js;

  • Tema 2: podemos imaginar el agregar funciones adicionales a la página web
  • un área donde js es bastante poderoso es con la 'programación impulsada por eventos',
  • que es pensar en las acciones que pasan en la web en términos de eventos
  • como cuando un usuario hace 'click' en un boton, o desliza el ratón por la pagina, o envía un formulario; o usa el teclado para disparar un misil (en la demostración de juegos)
  • todo lo que el usuario hace se puede pensar como un evento y lo que podemos hacer con js es agregar eventListeners o eventHandlers que digan que cuando ocurre un evento, se siga adelante y se ejecute este código
  • así que sigamos adelante; coloquemos este código de alerta dentro de las llaves; ahora hemos creado una función llamada "hola"
  • ahora hagamos que esta función se ejecute cuando el usuario haga click en un botón; entonces creamos el botón
  • ahora la página muestra el botón, y para hacer que suceda algo cuando usuario hace click se le agrega un atributo llamado onclick
  • que agregará un onclick handler al botón, el cual dirá que debe suceder cuando usuario haga click; y vamos a establecer que este atributo sea igual a ejecutar la función ‘hola’
  • ahora la función y el botón están unidos
  • ahora actualizamos la página y cuando hacemos click, obtenemos la alerta

  • Tema 3: también tenemos la capacidad de incluir variables
  • veamos, creemos otra página "counter.html" usando el mismo hello.html
  • y cambiamos click here por contar, vamos a crear un programa que cuente de 0 a 1, 2, etc;
  • para tener un contador, necesitamos una variable; hacemos ‘let counter = 0’;
  • luego para incrementar el valor del contador hacemos ‘counter++’
  • y luego mostrar la alerta que tiene cualquiera que sea el valor actual del contador.
  • ahora haciendo click en el botón de conteo vemos una alerta que muestra el número 1 y haciendo click nuevamente vemos el número 2 y cada vez que hacemos click se va a incrementar el valor de la variable contador.

Web Programming

  • Tema 4:
  • ahora seguimos adelante y usamos js para cambiar el contenido de la página web; js nos permite manipular el DOM
  • volvamos al primer ejercicio, vamos a usar la misma 'función hola' para manipular algo dentro de la página; vamos a manipular el encabezado que dice 'Hola' que está dentro del elemento h1, vamos a cambiar ese elemento
  • cómo podemos hacer eso?
  • en js tenemos acceso a una función llamada 'document.querySelector' y lo que esta función va a hacer es darnos la capacidad de examinar la página y extraer este elemento para que podamos manipularlo.
  • así que para seleccionar este elemento h1 lo incluimos dentro del paréntesis, lo que significa ir a través de la página y encontrar el elemento h1, luego lo manipulamos asi: document.querySelector(‘’h1).innerHTML = ‘Adiós!’
  • qué esta pasando aqui?
  • cuando se hace click en el botón que tiene el atributo onclick que es igual a hello (), se esta llamando a la 'función hola'
  • la cual le va a decir al querySelector: búscame el elemento h1, y cuando lo encuentres quiero que cambies ese elemento, lo cual haras modificando su propiedad innerHTML
  • ahora cuando abrimos esta página y hacemos click en el botón, la palabra Hola cambia a Adiós! y cada vez que hacemos click en el botón no sucede nada más; porque solo hemos pedido un cambio

  • Tema 5:
  • pero tal vez lo que realmente queremos es a capacidad de alternar entre Hola y Adiós
  • una forma de hacer esto es usando ‘conditions’; js tiene "if" y "else" que nos permiten describir condiciones tales como que solo se ejecute un bloque de código cuando una expresión en particular es verdadera
  • así que dentro de la 'función hola' se puede hacer lo siguiente: if {document.querySelector ('h1'). innerHTML === 'Hola'} entonces, adelante y dejarlo en Adiós, y 'else' adelante actualice el elemento h1 y ponerlo en Hola
  • noten que la línea de código que pertenece a la condición if está entre corchetes y lo mismo para la condición else
  • ahora, cuando el usuario hace click en el botón, Hola cambia a Adiós y cuando el usuario hace click de nuevo, Adiós cambia a Hola y cada vez que el usuario hace click en el botón, se alternará entre Hola y Adiós

  • Tema 6:
  • podemos mejorar el diseño de este código
  • de esta modo tenemos 3 líneas de código diferentes para 'querySelector' pero podemos factorizarlas buscando el elemento h1 solamente una vez, y luego manipularlo
  • para hacer eso podemos almacenar un elemento dentro de una variable de la misma manera que un variable puede almacenar un número o una cadena de texto
  • así mejoramos la eficiencia del programa pero también reducimos la cantidad de caracteres de código a escribir, las líneas serán mucho más cortas y fáciles de leer y esto se considerará una mejora en el diseño

Web Programming

  • Tema 7:
  • y resulta que hay otra mejora que podemos hacer aquí, usando "const"

  • y resulta que hay otra mejora que podemos hacer aquí, usando "const"

  • Tema 8:
  • ahora con esta capacidad de manipular el DOM; volvamos a nuestro programa contador y realmente mejorarlo; podemos hacer algo mejor que mostrar una alerta
  • en lugar que h1 sea igual a 'hello' podemos configurarlo para que muestre ‘0’ como el valor inicial del contador y ahora, en el script se incrementa el valor del contador: en lugar de mostrar una alerta en cambio va a mostrar: element.querySelector(‘h1’).innerHTML = counter;
  • que esta diciendo: encuentra el elemento html 'h1' actualiza su innerHTML y configuralo para que sea igual a cualquiera que sea el valor de la variable counter
  • ahora, al actualizar esta página, el valor de 'h1' inicialmente es 0 y cada vez que el usuario haga click en count, actualizará el contenido del elemento h1, o sea cambiará el valor de la variable y también manipulará el DOM; realizando cambios para producir el efecto que el usuario desea ver en esta página..

  • Tema 9:
  • Qué otra mejora podemos hacer aqui?
  • a menudo no queremos mezclar nuestro código js con el contenido html de la página; cuando la página comienza a complicarse es un poco molesto mantener fragmentos de código dentro de elementos html, el código se considerará mal diseñado
  • lo que realmente queremos es separar todo código js de todo html, así que hagamos eso agregando un eventListener: document.querySelector(‘button’).onclick = count;
  • qué sucede aqui?
  • querySelector va a encontrar este botón en la página y cuando lo obtenga accederá a la propiedad onclick que se ha establecido sea igual a count (el nombre de la función); count es en sí mismo una función y, lo que se está diciendo aquí es que se establezca el valor de la propiedad onclick igual a count, que count es la función que se debe ejecutar cuando se hace click en el botón.
  • y noten que en realidad no se está llamando a la función, solo se está configurando count literalmente a la función count en sí mismo, sin llamar a la función y lo que va a hacer va a decir que cuando se haga click en este botón y solo entonces se deberá ejecutar la función count
  • por lo tanto, en js, las funciones pueden tratarse como valores en si mismas, al igual como se puede establecer que una variable sea igual a una cadena de texto o a un número o a un elemento html, también se puede establecer que una variable sea igual a una función y pasar eso como un valor

Array of Objects

  • Que es Array of Objects in js?
  • un array se usa para almacenar una colección de datos acerca de un objeto dado; por ejemplo: almacenar caracteristicas de un carro, como: marca, color, tipo.
  • primero, creamos un objeto relacionado con carros; sera algo asi: {"marca": "suzuki", "color": "azul", "tipo": "minivan"}
  • ahora si en vez de un solo objeto tenemos varios del mismo tipo; entonces, podemos representar el ejemplo anterior como un array, de este modo: let carros = [{"marca": "suzuki", "color": "azul", "tipo": "minivan"}, {"marca": "volvo", "color": "rojo", "tipo": "van"}, { }, ...]
  • la razon por la cual se agrupan objetos en un array se debe a que tenemos que lidiar no con uno sino con muchos, por ejemplo queremos elegir un carro y, lidiamos con 100 carros

  • Tema 10: Array of Objects:
  • aqui se muestra como se ve un array of objects en un script
  • este script carece de instrucciones, es solo ilustrativo con respecto al array

  • Tema 11: Array Methods:
  • ahora veamos como se manipulan los array of objects en javascript
  • para manipular un array of objects js provee varios metodos que pueden resolverlo
  • usando 'comments' (//......), este ejercicio lista varios metodos que pueden resolver el array of objects mostrado en 'tema 10'; pero aun no ejecutan nada debido a los comments; se listan para que vayan conociendolos

  • Tema 12: Array Methods:
  • ahora vamos a repetir el contenido del 'tema 11' con el fin de que uds hagan practica
  • primero, vayan al listado de metodos que estan comentados (// ....) y, quiten los comments en el primer metodo de la lista; no toquen la primera linea que dice '// for loop' sino las siguientes tres lineas; pongan el cursor delante de la primera letra de cada linea y con la barra espaciadora vayan hacia atras hasta borrar las diagonales (//)
  • ahora para ver el listado reproducido hagan lo siguiente: 1) hagan click en run, 2) haciendo click en boton derecho de su mouse hagan click en 'inspect' esto abrira una ventana en la parte derecha de la pantalla; 3) dentro de esta ventana, hagan click en el tab 'console' ubicado en la parte superior de la ventana; alli veran el listado de objetos, 4) hagan click en cada objeto y, veran sus detalles
  • hagan click en el actualizador de windows
  • vuelvan a repetir el ejercicio pero esta vez con el siguiente metodo denominado 'for each'; y asi sucesivamente

Array Methods

  • Tema 13: Loops
  • primero, definamos qué es un loop (bucle) y por qué se necesita usarlo en js; intentemos con lo siguiente: cuando nos gusta mucho una cancion lo que hacemos es escucharla una y otra vez, es decir la repetimos constantemente; bueno, eso es un loop
  • en programacion, un loop (bucle) es una forma de hacer uso repetido de algo
  • en js los loops (bucles) son utilizados como una forma rápida y sencilla de hacer algo sobre un array o un objeto, basandose en una condicion
  • uno de los loops más utilizados en js es el 'for loop'
  • en 'for loop' el codigo se repite hasta que la condicion se evalua como falsa; uno de los usos del 'for loop' es recorrer un array
  • en uso, se ve algo como en este ejercicio
  • for(let i =0; i <5 ; i++){ //hacer algo }

  • Tema 14: For Loop
  • ahora, veamos un ejemplo más real
  • tienes un sitio web donde deseas agregar películas que viste y deseas mostrarlas en la pantalla; primero, en nuestro html, creamos nuestro div donde representaremos dichas películas.
  • en nuestro js creamos el array con las películas que podemos agregar o eliminar.
  • ahora obtenemos nuestro div de nuestro html con 'getElementById'
  • luego creamos un string vacío donde vamos a renderizar todas las películas: let myList = "";
  • ahora queremos recorrer las películas que tenemos y, podemos crearlas con el 'for loop'

  • Tema 15: For Loop
  • y qué podemos hacer para mejorarlo?; bueno, ¿y si queremos agregar otra película?
  • lo que queremos es que se repita hasta que la variable que estamos usando para el loop (i) sea menor que la cantidad de películas; y al programar, la cantidad de peliculas del array es igual a la longitud del array, por lo que se utiliza 'length'
  • y así no tenemos que preocuparnos si agregamos otra película, porque siempre se repetirá.
  • ahora para renderizar en la pantalla, creamos: myList = myList + `li ${movies[i]} li`;
  • finalmente, envolvemos todo dentro de la funcion 'function myMovies()'

Web Programming

  • A ser publicado y comentado durante las proximas semanas

Animation with JavaScript

  • con js podemos escribir un codigo para hacer una animación sobre un elemento html, logrando un mayor control sobre todos los aspectos de cómo se comportará la animación

  • en muchas animaciones se necesita 'precisión'; esta precisión dificulta la animación de muchos escenarios realistas; algunos escenarios incluyen:

  • 1) mover un elemento alrededor de una curva; 2) simular un objeto en caída libre bajo la influencia de la gravedad (por ejemplo: el efecto de nieve cayendo); 3) ajustar las propiedades por un valor aleatorio;

  • 4) cambiar la interpolación entre keyframes, la cual se puede utilizar para: animar movimiento, producir efectos, ajustar niveles de audio, realizar ajustes de imagen, lograr transparencia, producir cambios de color, y muchos otros elementos visuales y de audio; 5) mucho mas

Animando Aviones

  • vamos a hacer que dos avioncitos vayan de izquierda a derecha en la pantalla, mediante un 'script'
  • primero: declaramos lo que se llama variable, en este caso tenemos cuatro variables : var rockets, altitude, speed, distance;
  • segundo: creamos la función, y le damos un nombre : function activateRockets(){}
  • tercero: dentro de la función usamos lo que en javascript se llama metodo for loop para que de los dos aviones incluidos: el programa muestre en la pantalla cada avion segun las variables especificadas: altitude, speed, distance.
  • cuarto: seleccionamos el area del documento HTML donde van nuestros avioncitos ('div.rockets') con la expresion: 'rockets = document.querySelectorAll('div.rockets')'
  • listo, hemos creado la función con sus variables pero todavia no realiza la animación
  • falta un paso: lo que en javascript se denomina llamar a la función
  • quinto: llamamos la función, usando el window.addEventListener, el cual va a continuación de la función (no dentro).

requestAnimationFrame

  • Cuando creas una animación, se desea que la animación se ejecute sin problemas y con fluidez cuando alguien la esté viendo.

  • Si estas utilizando animaciones CSS, entonces no tienes nada de qué preocuparte. Como se menciono anteriormente, tu navegador (chrome) se encarga de todo por ti.

  • si se esta utilizando JavaScript, ahora se tiene ayuda en forma de la función 'requestAnimationFrame'.

  • si en una animacion necesitamos repetir un 'frame' a una frecuencia dada (por ejemplo: 60 frames por segundo); necesitamos hacerlo que paresca 'suave'

  • aplicando 'requestAnimationFrame', el navegador (chrome) puede optimizarlo, por lo que las animaciones serán más fluidas

  • ahora vamos a presentar dos ejercicios, para que aprendas acerca de esta función mágica y cómo se puede usarla para crear animaciones fluidas.

Colition Detection

  • Qué es Detección de Colisiones?
  • una colisión es cuando dos objetos entran en contacto entre sí, ejemplo: la colision de dos autos crea un 'accidente'; luego, detección es 'el acto de detectar' dicha colisión
  • en el mundo de los video-juegos, la detección de colisiones está en todas partes, es un acto primordial; para luego programar algún efecto resultante de esa colisión.

  • en Ejercicio A; primero se empieza por identificar a los actores del juego, en este caso: 1) enemigos, y 2) el disparador
  • luego creamos la funcion initCanvas (para crear los enemigos, que son seis); la funcion renderEnemies (para reproducirlos), la funcion Launcher (para crear el disparador); y declaramos una variable animate (para crear la animacion); utilizamos el metodo for loop para que el programa muestre en pantalla cada enemigo segun la variable de posicion especificada asi como su desplazamiento
  • ahora hagan practica con los detalles indicados dentro de la funcion initCanvas
  • observen la expresion: var enemies = [ { } ]
  • esta variable 'var enemies' declara en lo que se llama un 'array' [ ] , cuantos enemigos hay (6), y su posicion u ubicacion dentro del canvas; ahora observen las 'x' 'y' 'w' 'h'
  • practiquen (cambien) los valores dentro de las "x" (100, 225, 350), y vean que pasa

  • el Ejercicio B presenta un clone del Ejercicio A, pero con ligeras variaciones con respecto: el numero de enemigos (ahora son 9), y
  • respecto del contenido del script: 1) en el ejercicio anterior a la funcion que crea los enemigos se le llamo 'initCanvas', ahora hemos llamado a dicha funcion 'initDraw'; lo que se les quiere decir con esto, es que uds pueden nombrar las funciones como mejor les paresca; luego 2) la animacion (animate) la creamos con una funcion;
  • ahora, uds estan viendo que segun sea el tema que se quiere desarrollar (en este caso, juegos) se necesita mas de una funcion para dar vida al tema
  • al igual que en ejercicio anterior, practiquen (cambien) los valores dentro de las "x" , "y".

Aula: HTML5 Canvas

Que es HTML5 Canvas

  • El elemento HTML5 canvas (lienzo, traducción literal del ingles) se utiliza para dibujar gráficos,
  • El elemento canvas es solo un contenedor (un área rectangular en una página HTML) en el que podremos dibujar lo que nos parezca, básicamente como si estuviésemos utilizando el Paint de Windows
  • pero eso si hay que decirle cada cosa que se quiera hacer mediante una instrucción (en otras palabras, mediante un script)

  • por lo tanto, la etiqueta Canvas siempre será como el código que se muestra en 'Ver Código':
  • <.canvas width="700" height="400"><./canvas>
  • con los cambios lógicos del ancho y alto para cada situación.

  • Canvas tiene varios métodos para dibujar trazados, cuadros, círculos, texto y agregar imágenes.
  • Los siguientes ejemplos mostraran cómo puede aplicar JavaScript para conectarse al HTML5 Canvas
  • Pero tambien mostraran cómo puede aplicar JavaScript para animar elementos HTML5 del canvas

Dibujar Formas

  • Ahora vamos a dibujar algunas formas geométricas en canvas.
  • Dentro del documento HTML, escribimos el elemento"canvas" con un width de 500, un height de 300 y un id=”canvas”, en estilos CSS aplicaremos al elemento canvas un borde sólido de 5px y de color negro y un border radius de 16px.
  • Para dibujar usamos JavaScript, comenzamos declarando la función draw() y dentro de esta definimos el contexto “2d”
  • Además dentro del elemento body agregamos el evento onload=”draw();” que ejecutará la función draw luego de que la página esté cargada.
  • Comenzaremos dibujando un círculo, para esto vamos a usar: 1) la propiedad 'fillStyle' en donde estableceremos un color, 2) el método arc(), que se encargará de dibujar y 3) el método fill() que va a establecer un color de relleno.
  • Lo siguiente que haremos será sobreponer figuras una encima de otra.”
  • Creamos otro círculo, esta vez más pequeño y en el centro de este vamos a agregar un rectángulo utilizando el método fillRect()
  • Finalmente agregamos un último círculo, solo que esta vez aún más pequeño que el anterior y con esto ya terminamos de formar nuestra figura.

Dibujar Imágenes

  • El canvas tamibén se puede usar como contenedor para imágenes
  • para dibujar una imagen usando HTML5 Canvas podemos usar el método drawImage () ; el cual requiere tres parámetros:
  • un objeto imagen, y las coordenadas ' x, y' donde se situa la imagen; siendo (x, y) el punto de destino donde se colocará la esquina superior izquierda de la imagen
  • entonces, la lectura de este método seria: drawImage(objeto_imagen, x, y)
  • dado que este método drawImage () requiere un objeto_imagen, lo primero que debemos hacer es: a) crear una imagen y b) luego esperar a que se cargue antes de crear una instancia del drawImage ().
  • a) la creacion de una imagen puede darse de varias maneras: 1) utilizar una imagen desde un archivo, 2) usando una imagen que ya existe en la página, 3) utilizando una imagen previamente dibujada en otro canvas.
  • b) cargar la imagen se logra usando la propiedad 'onload' del objeto_imagen
  • cuando la imagen se carga hace una llamada a la función y se ejecuta el código que la función tiene programado

Amplify

  • Los siguientes dos ejercicios son proporcionados por CHRIS, un joven Developer de EE.UU.
  • quien nos sugiere que se deben desarrollar cuatro habilidades esenciales para dominar la programacion de cualquier ejercicio HTML5 Canvas
  • 1. Crear y cambiar el tamaño del canvas
  • 2. Elementos de Dibujo
  • 3. Elementos de Animación
  • 4. Interactuar con los elementos

  • En Amplify, Chris empieza declarando la variable canvas con la expresion para senalar la ubicacion del elemento canvas en el documento HTML5
  • A continuacion declara las variables content, mouse, maxPullDistance
  • Luego crea tres funciones Bar, createBars, animate y adiciona addEventListeners para finalmente llamar a las funciones

Perimetro Convexo

  • Como se menciono anteriormente, este ejercicio es proporcionado por CHRIS, un joven Developer de EE.UU.

  • Que clase de objetos se pueden dibujar en canvas
  • Las tres clases de objetos mas usados para dibujar en canvas son rectangulos, lines arcos circulos

  • Este ejercicio se basa en Lineas
  • JavaScript Sort Function
  • Chris empieza declarando la variable canvas con la expresion para senalar la ubicacion del elemento canvas en el documento HTML5
  • Luego declara variables globales Event Listeners
  • Luego crea tres funciones Bar, createBars, animate y adiciona addEventListeners para finalmente llamar a las funciones

Rainbow Snake

  • Como se menciono anteriormente, este ejercicio es proporcionado por CHRIS, un joven Developer de EE.UU.
  • Que clase de objetos se pueden dibujar en canvas
  • Las tres clases de objetos mas usados para dibujar en canvas son rectangulos, lines arcos circulos
  • Este ejercicio se basa en Lineas
  • JavaScript Sort Function
  • Chris empieza declarando la variable canvas con la expresion para senalar la ubicacion del elemento canvas en el documento HTML5
  • Luego declara variables globales Event Listeners
  • Luego crea tres funciones Bar, createBars, animate y adiciona addEventListeners para finalmente llamar a las funciones