PERMALINKS & URLS AMIGABLES EN WORDPRESS

 Archivado en: Artículos, Tutoriales — info @ Abr 29th, 2009
  • Nombre:
    Juan Garcia Delicado
  • Fecha de Nacimiento:
    18-04-1982
  • Lugar de Nacimiento:
    Málaga
  • Titulación Académica:
    Master en Diseño Gráfico & Web
  • Profesión:
    Diseñador web
  • WEB:
    www.flashmania.es / www.4cuarenta.com

Uno de los temas más importantes en el área del diseño web, es la promoción. ¿Para qué nos sirve tener una web, si al final son pocos la que acaban viéndola? Por ese motivo, hoy veremos cómo optimizar una de las herramientas de código abierto  más extendida actualmente en el panorama web para la creación de blogs. Estamos hablando de Wordpress. Para quien no conozca wordpress, decir en pocas palabras, que es un gestor de contenidos, gratuito, con el que podemos generar blogs digitales en internet. Más referencias aquí www.es.wordpress.org.

En temas de diseño web, una de las cosas  que más nos interesa seguir, es el posicionamiento natural de nuestros trabajos. Hoy veremos cómo hacer urls amigables en wordpress. Forzaremos la indexación de las urls amigables (friendly urls) en los principales motores de búsqueda.
Para comenzar iremos al panel de control de nuestro wordpress y llegaremos hasta permalinks que se encuentra en la ruta

OPCIONES >> PERMALINKS

Ahí encontraremos las siguientes opciones (PREDETERMINADO, DÍA Y NOMBRE, MES Y NOMBRE, NUMÉRICO y  ESTRUCTURA PERSONALIZADA)

PREDETERMINADO… es la configuración por defecto que trae nuestro blog. Por defecto su configuración es el nombre de dominio que tenemos puesto seguido de un número que coincide con el número de post/articulo que hemos introducido en el sistema, vamos en la base de datos.

DÍA Y NOMBRE…en esta configuración de urls, encontraremos nuestro dominio, seguido de la fecha y el nombre de post.

MES Y NOMBRE…tal y como se indica encontraremos el mes y el nombre del post en las urls de nuestro blog

NUMÉRICO en este caso lo que veremos será nuestro dominio seguido del número de entrada en la base de datos de nuestro post/entrada.

ESTRUCTURA PERSONALIZADA  haremos una mención especial a esta opción, ya que nos permitirá personalizar totalmente nuestras urls. A continuación os dejo un listado de todas las opciones que por defecto podríamos incorporar en las urls como sería la categoría de los artículos-post, la fecha, el nombre-título de nuestro artículo entre otros.

La lista básica sería la siguiente:

%year%  > >> El año de creación del artículo con 4 cifras por ejemplo: 2009
%monthnum%    >>>  Mes del año en número, por ejemplo 04, si nos referimos a Abril
%day%    >>> Día del mes en el que se cree el post, siempre numérico y 18 sería un buen ejemplo.
%hour%  >>> Hora del día, ejemplo: 13
%minute%    >>> Minuto de la hora de creación del artículo de nuestro blog: por ejemplo 37.
%second%    >>> Con este comando nos vamos a referir al segundo de tiempo en el cual escribimos nuestro artículo por ejemplo 24
%postname%    >>> Con este comando nos referiremos al título de nuestro artículo.  Si este tuviera espacios en blanco, automáticamente se separarían las palabras con guiones, por ejemplo nuestro título es  “BIENVENIDOS A NUESTRO BLOG”, en la url se mostraría “bienvenidos-a-nuestro-blog” .
%post_id%    >>> Este mostraría el id, de cada post, ¿que es el id? Es el número de identificación de cada artículo, cada vez que introducimos una nueva entrada en nuestro blog, al registrarse en la base de datos, estos post, se asocian a un número de entrada. Es un número natural, entero y  positivo.
%category%    >>> Categoría de nuestro artículo.
%author%    >>> Autor que escribió el artículo

¿COMO ELEGIR NUESTRAS URL´s AMIGABLES?
Bien, es algo que tienes que tener en cuenta desde el principio, si quisieras promocionar tu persona, tu nombre, en la red, lo más razonable es que publiques en la url tu nombre completo para que en cada artículo que escribas sea tu nombre el que aparezca .

Es decir:
/%author% /%postname%

Y se mostrarían entradas del tipo
www.midominio.com/Pepito-grillo/este-es-el-título-de-mi-post

en el ejemplo siguiente queremos posicionar nuestro blog por recursos empresariales para particulares y empresas, asi que en el campo de estructura personalizada pondremos:
/recursos_empresariales/particulares_empresas/%category%/%postname%

Aparte de mostrar las palabras clave “recursos empresariales”, ”particulares” y “empresas” cada url, contendrá la categoría de los artículos y además sus títulos.
Como se puede ver, podéis jugar con millones de posibilidades. Centraros en las palabras claves que queréis promocionar.

Hasta aquí nuestro paso 1.

PASO 2

En el paso 2, crearemos un archivo de texto en block de notas e incorporaremos el código que wordpress nos generará abajo. El archivo en cuestión lo llamaremos htaccess.txt.

PASO 3

En el panel de permalinks de wordpress y una vez realizados los pasos 1 y 2, guardaremos los cambios

PASO 4

Usando nuestro gestor de ftp, iremos a la raíz de nuestro dominio y actuaremos de la siguiente manera:

SI EXISTE EL ARCHIVO HTACCESS

Lo abriremos y añadiremos al contenido que ya tiene, la sentencia  mod_rewrite que nos genera wordpress

SI NO EXISTE EL ARCHIVO HTACCESS

Subiremos el archivo txt que generamos en el PASO 2. Y lo renombraremos quitando la extensión “.txt” y añadiremos además un punto por delante quedando de la siguiente manera el nombre del archivo:

htaccess.txt      >>>>>>      .htaccess

PASO 5

Ver funcionar ya, vuestras urls amigables en wordpress.

RECOMENDACIONES

a) Verificar que realmente no existe ese fichero (htaccess) y que no se encuentra oculto.
b) Realizad copias de seguridad del archivo .htaccess si ya existe para reponerlo en caso de equivocación o fallo.
c) Para usuarios avanzados podéis poner el archivo htaccess con permisos de solo lectura.
d) Los post o entradas anteriores se modificarán automáticamente.
e) Tened cuidado con los espacios en blanco, es un fallo muy típico al modificar y configurar estas opciones, no poner espacios en blanco ni siquiera al final de la estructura personalizada, ni tampoco dentro del archivo htaccess de ser así no funcionaría.


 MPLive! La plataforma de formación online de Método Profesional.

 Archivado en: Formación, Tutoriales, MP Live — info @ Feb 6th, 2009

 MPlive! Novedades de Flash CS4

 Archivado en: Tutoriales, MP Live — info @ Feb 6th, 2009

En esta grabación os traemos las novedades destacables de Flash CS4. Animación basada en objetos, etc.

Ver tutorial en MPLive!


 MPlive! Instalación de Joomla!

 Archivado en: Tutoriales, MP Live — info @ Feb 6th, 2009

Joomla! es un sistema de administración de contenidos de código abierto construido con PHP bajo una licencia GPL. Este administrador de contenidos se usa para publicar en Internet e intranets utilizando una base de datos MySQL.

En estos vídeos podréis ver lo sencillo que resulta instalar este CMS en nuestro servidor.

1º Descargar joomla! y subirlo al servidor

2º Crear la base de datos

3º Instalar Joomla!


 Clase Traductor de AS3, Traduce tu página desarrollada en Flash con AS 3.0

 Archivado en: ActionScript 3.0, Formación, Tutoriales, MP Live — info @ Ene 28th, 2009

Seminarios OnLine Método Profesional

Gracias a este vídeo tutorial podrás traducir el contenido de una página web flash de una forma rápida y sencilla sin necesidad de realizar cargas externas usando la clase traductor que hemos creado para facilitar esta labor.

Ver tutorial en MPLive!


Tramadol Dosing Calculations For Veterinarians
Tramadol 100 Contra
37.5 Diet Phentermine Pill
Tramadol Testicle Pain
Buy Tramadol Online
Tramadol Best Price Oversea
Cheap Retin Tramadol
Collect On Delivery Phentermine
View Pictures Of Phentermine Diet Pills
Phentermine Prozac
Usa Phentermine
Tramadol Hcl 50mg Tabs Side Effects
Phentermine Online Buy Dr Consult
Tramadol As An Antidepressant
Weightloss On Phentermine
Overseas Tramadol Cheap
Medicine Phentermine
Tramadol 100 Mg Fed Ex Delivery
Best Prices Phentermine Online Pharmacy
Discount Phentermine No Perscription Needed
Tramadol General Action
Phentermine Online Consult Rx
Cod Free Order Phentermine Shipping
Is Tramadol Hcl A Narcotic
Tramadol Side Effect
Articles On Phentermine
Buy In Phentermine Uk
Tramadol Snorting
Overnight Fedex Phentermine
Phentermine Mg Phentermine Adipex Phentermine Adipex
Phentermine Order Online Without Prescription
Tramadol Cheap Overnight
Tramadol And Ssri
Online Online Phentermine Sales
Tramadol Dhl
Tramadol Hcl Acetaminophen Car
Tramadol Transdermal
Buy Online Phentermine Gt
Phentermine Discount Buy
Keenan Phentermine
Buy Eon Phentermine Overnight
Drug Information On Tramadol Hydrochloride 50mg
Phentermine Dose
Phentermine Lowest Price Phentermine
Hydrocodone Symptom Withdrawal Buy Phentermine
Link Relievepainorg Tramadol
Phentermine Us Pharmacy
Phentermine Pharmacy Cash On Delivery
What Is Tramadol Tr50
Is There A Phentermine Shortage
Is Tramadol Hydrocodone
Actos Phentermine International Pharmacy
Phentermine Online Physician
Imse Cemr Wvu Edu Faculty Photos Small Tramadol
Cheap Phentermine Online Free Prescription
Phentermine 30 Mg Overnight
3.75 Phentermine With No Prescription
Side Effect Tramadol
Phentermine For Sale
Diet Pills That Give Energy Like Phentermine
Order Phentermine Phentermine O
Tramadol Lowest Prices
Generic For Phentermine
Phentermine Free Doctor
Lowest Price Phentermine Gt
Order Phentermine Online No Script
Purchase Phentermine Online Ship Fedex
Buy Phentermine Adipex 37.5 Mg
Phentermine Without Prescription Florida
How Long Did It Take You To Lose Weight On Phentermine
Phentermine Online Dr Consultation
Where To Find Tramadol Pain Releiver
Phentermine Cause Body Odor
Pain In Knees With Tramadol
Lowest Tramadol Prices With Shipping
Tramadol Info Warnings
Phentermine 37.5 Superior Drugs
Phentermine In Drug Testing
Does Phentermine Help Lose Weight
Tramadol And Menstrual Cycles
No Phentermine Prescription Prior
Heart Health What Is Tramadol
Order Phentermine With Money
Buy Cheap Phentermine Moreover Order Viagra
Phentermine Online Consultation Us Licensed Pharmacies
Online Phentermine No Prescription
Crhc Uiuc Edu Credit Incoming Buy Phentermine
Tramadol 500mg Information
Phentermine Prozac Side Effects
Phentermine Without Doctors Prescription
Finding Cheap Phentermine
Besked Hjemmeside Navn Tramadol
Biolab Tramadol Online Pharmacy
Phentermine 37.5 Mg Online Consultation
Phentermine Diet Pills No Prescription Needed
Cheap Phentermine Online Online Pharmacy
Buy Phentermine Prozac
How To Go Thru Tramadol Withdrawals
Frontier Pharmacy Phentermine
Tramadol Hcl Sexual Side Effects
Tramadol Watson
Cheapest Phentermine Prices
What Tramadol Hcl-aceta
Tramadol Online Rss Feed
Phentermine 37 5mg Without Prescription
Phentermine Only
Low Cost Discount Phentermine
To Buy Phentermine For Weight Loss
Cheap Phentermine With No Physcian Approva
Tramadol Cheap
Black Market Phentermine
Tramadol Withdrawell
Medlineplus Drug Information Tramadol And
Phentermine 37.5 X 90
Bontril Phentermine Norvasc
Dealing Depression Phentermine Diet Pill
Phentermine Bipolar
Online Tramadol Prescriptions
Phentermine Accepts Cod
Phentermine With Cod Delivery
Kratom With Tramadol
Tramadol Wiki
Phentermine With Out A Doctor
Phentermine From The Uk
Purepac Phentermine
Insufflate Tramadol
Phentermine Online Purchase
Adipex Buy Online Phentermine
Pregnancy Tramadol
Buy Phentermine Online Wi
Cash On Delivery Phentermine
Custar Tramadol
Phentermine And Online Prescriptions And Physician
Tramadol Hcl Dogs
Lyrica And Tramadol Contraindications
Phentermine Cause Positiv
Purchase Phentermine Online
Best Price Phentermine Online
Nauru Phentermine
Tramadol Hcl Tabs
Diet Order Phentermine Pill
Molecule Of Phentermine
Phentermine Withdrwal
Order Phentermine 37.5mg Without Prescription
Weight Loss Online Consultation Phentermine
Phentermine Without Doctor’s Approval
Buy Phentermine No Rx Purephentermine
Phentermine Phentreminem Phntramine
Buy Cheapest Online Phentermine Place
Overnight Tramadol Hcl
Tramadol Side Effects Drowsiness
Looking For Phentermine
Phentermine Back-order
Tramadol Crab Information
Tramadol 100 Er Description
Phentermine But No Prescription
Buy Fda Approved Phentermine Cod
Phentermine Testimony
Search Results Phentermine Order
Health Phentermine Tablet
Phentermine Hci 30
Phentermine On Ine Without Prescription
Phentermine Induced Psychosis
Tramadol Cheap Free Fedex Overnight
Real Phentermine On Line
Buy Phentermine Tablets
Buy Phentermine No Prior Prescription
Tramadol And Treatment
Cheap Phentermine 37.5mg Tablet
Highest Does Of Phentermine
Phentermine Side Effect Sweating
Free Diet Plan Tramadol
Acyclovir Famvir Tramadol Clarinex
Tramadol And Sperm
Generic Tramadol Effectiveness
Tramadol Hcl By Mylan
Cheap Diet Pills Called Phentermine
Phentermine Message Board
Phentermine Delivered Sat By Fed X
Cheap Phentermine Phentermine Generic Phentermine Cheap
Buy Tramadol Bulk 300ct
Phentermine A-159 Usa Pharmacy
Buy Phentermine Columbus Ohio
Important Qualitest Pharmaceuticals Phentermine Affordable
Tramadol Otc
Tramadol 20mg
Buy.jixx.de Link Online Tramadol
Cheapest Phentermine Onl
Tramadol Tough Online
Phentermine Ship To Louisiana
Transdermal Tramadol
Tramadol And Alcahol
Phentermine Fedex Shipping
Phentermine Coffee Bad
Phentermine From Customs Online Pharmacy
Buy Cod Delivery Phentermine Sat
Delivery Phentermine Uk
Phentermine Ingredination
Success Stories Of Phentermine
Phentermine Us Pharmacy Online Consultation
Phentermine Perscriptions Online
Tramadol 2 Hs
Phentermine Hcl Tablets
Order Phentermine With Saturday Delivery
Online Rx For Phentermine
Phentermine No Prior Script
Phentermine Typical Weight Loss
100 Phentermine Popl
Acet Tramadol
Who Has Phentermine
Ranitidine Buy Now Tramadol
Vicodin And Tramadol
Phentermine Xenical Diet Pill
No Script Phentermine Best Price
Chronic Pain Tramadol
Ambien Online Phentermine Purchase Soma
Phentermine 375mg
Phentermine 37.5 90 Ct
Taking Tramadol And Lyrica Together
Phentermine Order Cheap
Phentermine Wihout Rx
Telx Phentermine
Abusing Phentermine
Phentermine 24 Hr Shipment
Cod Pharmacy Tramadol
Tramadol Overnight Free Fedex Cheap
Tramadol Clinical Uses Chronic Pain
Phentermine Paid By Mastercard
Purchase Phentermine Without A Prescription
Phentermine 37.5 Cheap No Prescription
Is Phentermine Speed
Phentermine Hci 37.5
Diet Phentermine Supplement
Phentermine Side Effects After Taking
Crhc Uiuc Edu Credit Incoming Phentermine Without
No Phentermine Rx
2737 Amerimedrx Online Pharmacy Tramadol Yasmin
Delivery Overnight Phentermine Purephentermine
Phentermine Hcl On Staff
Effectiveness Of Phentermine
Phentermine Use In Adhd
Phentermine Licensed Pharmacist
Queen Phentermine
Tramadol Expiration Date
Delivered Phentermine Phentermine Drug
Hair Loss And Phentermine
Tramadol 180 Tabs $109
International Meds Phentermine
Diet Drug Loss Phentermine Weight
Order Phentermine Cheap Without Prescription
Phentermine Adipex Phentermine
Consultation Free Online Phentermine
4.25 Online Phentermine Prescription
Phentermine Adipex At Silverchips Mbhs Edu
Phentermine London
Fedex Overnight Phentermine
Phentermine Drug Test Time
Go Ask Alice Bulimia And Phentermine
Phentermine Unsucessful Stories
Canine Dosage Tramadol
Phentermine Colors
Carisoprodol Phentermine
Cheap Overnight Tramadol
No Prior Prescription Phentermine 37.5
Cicio Cheap_tramadol_online Html
No Prescription Cheap Phentermine
Phentermine Click Here
Able Labs Phentermine
What Does A Tramadol Look Like
Bontril Phentermine Adipex
Phentermine Phentermine Online
Gupta Internal Medicine Vitamin B12 Phentermine
Percocet Without Prescription Phentermine
Cod Overnight Tramadol
Phentermine Antidote
Cheap Site Tramadol
Phentermine Erection Abido
Making Tramadol
Cheapest Tramadol Weebly Com
Description Tramadol
Phentermine 37.5 90 No Prescription
Tramadol For Headaches
Will Adipex Or Phentermine Show Up In A Drug Screen
Celexa And Phentermine
Clinics That Prescribe Phentermine
Phentermine And Carbs
Nrop Selling Phentermine Busted Pharmacy
Tramadol Cod 120
All About Tramadol Covetous
Levitra Low Price Pharmacy Zoloft Phentermine Viagra
Purchasing Phentermine Without A Doctor
Phentermine Free Overnight Fedex
Phentermine Online Presrciption
Phentermine Site Map
Prescription Drugs From Canada Phentermine
No Doctors Office Phentermine
Phentermine By Mutual
Phentermine Mastercard No Rx
Analab Tramadol
Phentermine 37.5 Mg Without Prior Autherization


 Flash 3D y webcam.

 Archivado en: Tutoriales, Flash 3D — info @ Nov 21st, 2008

En el siguiente tutorial, conseguiremos que Flash acceda a nuestra webcam y capture la imagen que recoja ésta en tiempo real.

Posteriormente jugaremos con la captura de vídeo y para visualizarlo en 3D. Analizamos el código…

Creamos las variables que vamos a necesitar.

Con la variable “camara” creamos un objeto Camera, y con las variables “video1, video2…” cargamos los archivos de vídeo. Finalmente creamos un MovieClip.

var camara:Camera = new Camera();
var video1:Video = new Video();
var video2:Video = new Video();
var video3:Video = new Video();
var video4:Video = new Video();
var contenedor:MovieClip=new MovieClip();

Estas clases anteriores (Video, Camera y MovieClip) se encuentran en los paquetes flash.display y flash.media, que deberíamos importarlo si esta programación estubiese en una clase externa a Flash. Dichos paquetes, vienen ya importados al trabajar en el entorno de la aplicación (en la línea de tiempo).
Colocamos en “camara” a una referencia al objeto Camera para poder capturar el vídeo.

camara=Camera.getCamera();

Indicamos la fuente de cada vídeo, que sería la camara.

video1.attachCamera(camara);
video2.attachCamera(camara);
video3.attachCamera(camara);
video4.attachCamera(camara);

Cada video lo anidamos en contendor, que recordemos es un MovieClip.

contenedor.addChild(video1);
contenedor.addChild(video2);
contenedor.addChild(video3);
contenedor.addChild(video4);

Para hecer visible el MovieClip contenedor, tenemos que añadirlo a la escena.

addChild(contenedor);

Posicionamos contenedor en el escenario, y cada video en contenedor.

contenedor.x=275;
video1.width=275;
video1.height=200;
video1.y=200;
video1.rotation=180;
video2.width=275;
video2.height=200;
video2.y=200;
video2.scaleX=- video1.scaleX;
video3.width=275;
video3.height=200;
video3.y=200;
video4.width=275;
video4.height=200;
video4.y=200;
video4.scaleY=- video3.scaleY;

Asignamos un evento ENTER_FRAME a contendor y la función de llamada.

contenedor.addEventListener(Event.ENTER_FRAME, girar);

Creamos la función que se va a llamar en cada ENTER_FRAME en concepto de bucle. Ésta hace que el contenedor esté girando en su eje vertical (Y).

function girar(e:Event) {
contenedor.rotationY++;
}

Ver muestra

Descargar archivos


 Tutorial 3D en Flash, realizar un cubo.

 Archivado en: ActionScript 3.0, Flash, Tutoriales, Flash 3D — info @ Nov 18th, 2008

Lo primero será bajarnos las clases de Papervision3D y en su versión 2.0. Podemos hacerlo en esta dirección: http://code.google.com/p/papervision3d/downloads/list

Posteriormente, en Flash, tenemos que agregar en la ventana de Configuración de ActionScript 3, la ruta de las clases que hemos bajado.


Importamos las clases que vamos a usar y que están en los paquetes correspondientes de flash y de papervision3d.  Recordamos que el asterisco (*) significa el comodín, para importar todas las clases de dicho paquete.

import flash.events.*;
import flash.display.*;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.objects.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.core.proto.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.materials.*;

Ahora vamos a declarar las variables necesarias para el uso del 3D.  Son los objetos cámara, un visor para mostrar lo que se va a renderizar, una escena, y el objeto de renderización que utilizaremos más adelante.

var camara:Camera3D = new Camera3D();
var vista:Viewport3D = new Viewport3D(550, 400);
var escena:Scene3D = new Scene3D();
var render:BasicRenderEngine = new BasicRenderEngine();

Por comodidad para este caso vamos a meter todos los elementos en un nuevo objeto 3D, que llamaremos contenedor.  Esto no tiene por qué ser así, pero de esta forma tendremos la posibilidad de referirnos a todo el “objeto” 3D que vamos a realizar.

var contenedor:DisplayObject3D = new DisplayObject3D();

Definimos una variable para posteriormente usarla para el valor de transparencia de los materiales, en este caso un 20% (recordamos que debe ser un valor entre 0 y 1)

var transparencia = .2;

Cada cubo que vamos a hacer, tedrá un material asociado, que se ha de crear como una lista de materiales de las seis caras de un cubo.  Cada cara puede ser el material deseado.  Para este caso hemos usado un material de imagen (BitmapData) y cinco de color liso.

var material:MaterialsList = new MaterialsList({
front: new BitmapAssetMaterial(”foto”, true),
back: new ColorMaterial(0xFF0000, transparencia),
right: new ColorMaterial(0×00FF00, transparencia),
left: new ColorMaterial(0×333333, transparencia),
top: new ColorMaterial(0×0000FF, transparencia),
bottom: new ColorMaterial(0xFFFF00, transparencia)
});

Para el objeto BitmapData, que es usado en la clase BitmapAssetMaterial, es necesario crear una vinculación del símbolo (en el símbolo de la bibloteca pulsar el botón derecho y pulsar Vinculación) para ser usado en ActionScript y que extiende a la clase flash.display.BipmapData (la que sale por defecto).  En este ejemplo se le ha asignado el identificado o clase “foto”.

Ahora nos toca hacer los cubos.  Para ellos almacenamos en una variable la cantidad de cubos que vamos a hacer.  En otra el Array que almacenará cada uno de los cubos.  Definimos la variable “tam” para indicar el tamaño que tendrá cada cubo, para que vaya aumentando cada uno de forma progresiva.  Mediante el constructor Cubo, pasamos el material, el tamaño y los vértices.  Una vez hecho el cubo, lo incluimos en la lista como hijo del objeto “contenedor”.

var cant = 8;
var cubos: Array = new Array();
for (var i = 0; i<=cant; i++) {
var tam = (i+2)*10;
cubos[i] = new Cube(material, tam, tam,tam,2, 2, 2);
contenedor.addChild(cubos[i]);
}

Añadimos el visor (vista) con el tamaño definido arriba en su construcción, posicionamos la cámara, y añadimos el “contenedor” a la escena.

this.addChild(vista);
camara.z = -200;
escena.addChild(contenedor);

En la animación 3D en flash, hay que ir representando lo que se ha de ver en cada fotograma, por lo que aún siendo un proceso automático, hay que ordenar a que se renderice mediante el objeto “render” creado anteriormente.  Para esto, creamos el evento ENTER_FRAME para que nuestro flash 3D se renderice a cada instante (si es eso lo que queremos, siempre que algo cambie en nuestro visor).  La función que vamos a asociar a este evento es renderizar.

this.addEventListener(Event.ENTER_FRAME, renderizar);

Declaramos y definimos la función renderizar, que su objetivo es cambiar la rotación de los cubos, con una fórmula matemática fácilmente entendible, para que tengan una especie de deceleración con un rozamiento diferente según el tamaño del cubo.

Tras cambiar las rotaciones de los cubos, toca renderizar la escena.  Para esto hacen falta los objetos: render, escena, camara y vista, y mediante el método renderScene de la clase BasicRenderEngine redibujamos la escena en el visor.

function renderizar(e:Event):void {
for (var i=0; i<=cant; i++) {
var clip = cubos[i];
var roz=(i+2)*3;
clip.rotationY = ((clip.rotationY*roz)+((mouseX-200)/1))/(roz+1);
clip.rotationX = ((clip.rotationX*roz)+((mouseY-275)/1))/(roz+1);
}
camara.z = ((camara.z*8)+mouseY-500)/9;
render.renderScene(escena, camara, vista);
}

Ver muestra

Descargar archivos


 Diseño web líquido con Flash… ¿cómo se hace?

 Archivado en: Flash, Tutoriales — info @ Jul 14th, 2008

¿Cómo se hace esto www.la-goya.com/home.html
o www.riflejeans.com/rifle2008/rifle.html?

Como podemos ver en las muestras, tienen una característica en común estas páginas. Y es la propiedad de adaptarse al tamaño del navegador.

A esta facultad se le llama diseño web líquido, y es mucho más habitual ver esto en páginas HTML formateadas por CSS, como www.amazon.com, pero aquí vamos a hacerlo para una web en Flash.

Básicamente sólo necesitamos de la clase Stage de Flash. Esta clase hace referencia a los límites de nuestra película, no al tamaño al que configuramos el proyecto o escenario, si no a todo el espacio que ocupa nuestro Flash cuando lo reproducimos.

Comenzamos definiendo nuestro proyecto a un tamaño de por ejemplo de 770 x 420, dentro de este espacio diseñamos nuestra interface. Nosotros hemos dibujado una barra superior a modo de menú, una barra inferior para incorporar algunos datos, un clip como fondo y en el centro un motivo que es donde podrían ir los contenidos.

En el fotograma que contendrá el código, escribimos:

Stage.align = “TL”

Con la propiedad align y como valor “TL” del Stage, situamos nuestro escenario en la esquina superior izquierda del reproductor o en navegador, siempre que el contenido de flash no esté escalado, controlado con Stage.scaleMode. Hay más valores para la propiedad align como “T” que consigue una alineación superior y centrada, puedes consultar todos los valores en la ayuda de Flash.

Flash se alinea por defecto al centro, horizontal y verticalmente, pero en este caso preferimos alinearlo al “TL” para que controlar las coordenadas sea más sencillo, y no dependa del tamaño del escenario, como de otra forma sería, dejando de este modo el 0,0 en la esquita superior izquierda.

La siguiente línea de código es:

Stage.scaleMode = “noScale”;

Con esto especificamos de que modo se va a escalar nuestra película. Con el valor “noScale” vamos a impedir que nuestra película se escale si modificamos el tamaño de la ventana del reproductor o navegador. Por defecto, Flash, incorpora el valor “showAll”  haciendo que la película se escale para ocupar todo el área del navegador, consiguiendo un resultado bastante inadecuado.

Llegamos al punto clave, y es detectar constantemente cuando se producen cambios en el tamaño del navegador. Para ello creamos un objeto Listener para detectar el evento onResize y se lo asignamos al Stage.

Creamos el listener y la función que se ejecutara al redimensionar el navegador:

var miListener:Object = new Object();
miListener.onResize = function() {
};

y le asignamos el listener al Stage:

Stage.addListener(miListener);

En el escenario dibujamos un texto dinámico y definimos la variable “text_info”

Dentro de la función onResize vamos a colocar todas las operaciones que queramos realizar cuando cambie el tamaño del navegador. Por lo tanto incluimos la siguiente línea de código dentro de la función:

text_info = “Tamaño del Stage: “+Stage.width+” x “+Stage.height;

y ejecutamos nuestra película.Como vemos, el texto se actualiza constantemente para mostrarnos el tamaño de la película.

Vamos a incluir algunas líneas más para interactuar con los elementos de la interface, todo dentro de la función onRezise

barrasup_mc._width = Stage.width;
barrainf_mc._width = Stage.width;

Igualamos el ancho de la barra superior y la inferior, al ancho del Stage.

barrainf_mc._y = Stage.height-barrainf_mc._height;

Alteramos la posición vertical (_y) de la barra inferior, para que se recoloque constantemente en la parte inferior.La imagen de nubes que tenemos como fondo, queremos que siempre ocupe la totalidad de la pantalla, para así decorar nuestra web, y no nos importa que se desforme. Por lo tanto igualamos la altura y el ancho al Stage:

fondo_mc._width = Stage.width;
fondo_mc._height = Stage.height;

Para el motivo central (el avión) que puede ser el contenido, vamos a mantenerlo centrado, pero vamos a controlar su desplazamiento mediante la clase Tween. El Tween es una clase de Flash que nos permite hacer interpolaciones de movimiento por código, con distintas funciones matemáticas de animación, quedando un resultado bastante atractivo.

Primero, importamos y definimos la función Tween:

import mx.transitions.Tween;
import mx.transitions.easing.*
mov_tw=function(clip,prop,inicio,fin){
new Tween(clip,prop, Strong.easeOut,inicio,fin, 25, false);
}

Volvemos a centrarnos en la función onResize, dentro escribimos:

mov_tw(foto_mc,”_x”,foto_mc._x,Stage.width/2);
mov_tw(foto_mc,”_y”,foto_mc._y,(Stage.height/2)+20);

Con estas líneas llámanos a la función y pasamos como parámetros la nueva posición respecto al tamaño del Stage.

En definitiva, nuestro código queda se la siguiente forma:

import mx.transitions.Tween;
import mx.transitions.easing.*
mov_tw=function(clip,prop,fin){
new Tween(clip,prop, Strong.easeOut,clip[prop],fin, 25, false);
}Stage.align = “TL”;
Stage.scaleMode = “noScale”;
var miListener:Object = new Object();
miListener.onResize = function() {
text_info = “Tamaño del Stage: “+Stage.width+” x “+Stage.height;
barrasup_mc._width = Stage.width;
barrainf_mc._width = Stage.width;
barrainf_mc._y = Stage.height-barrainf_mc._height;
fondo_mc._width = Stage.width;
fondo_mc._height = Stage.height;
mov_tw(foto_mc,”_x”,Stage.width/2);
mov_tw(foto_mc,”_y”,(Stage.height/2)+20);
};
Stage.addListener(miListener);

Como el objetivo final es una página web, nuestro HTML necesita ciertos retoques.Insertamos de forma habitual en el HTML el archivo .swf, y configuramos su alto y ancho al 100%

Vamos a incluir un poco de CSS en nuestro HTML:

Con esta regla también configuramos el alto y el ancho al 100% de lo elementos que van a contener al archivo.swf , las etiquetas html y body.

Si ahora ejecutamos el HTML dependiendo en qué navegador lo hagamos, es posible que observemos que la película flash no se adapta, hasta que no variemos el tamaño de la ventana del navegador. Algo muy lógico, recordando que la función responde al evento onResize.

Por lo tanto, en nuestro código de Flash incluimos la última línea:

miListener.onResize();

Que ejecuta directamente la función aún sin ser variado el tamaño, puesto que lo normal es que cualquier usuario abra la web al tamaño que desee, independientemente del original de nuestro SWF, por lo que al iniciar ha de saltar la función.

Con esto quedaría listo nuestro ejemplo de un flash líquido.

NOTAS: Un flash líquido, no siempre tiene unas reglas escritas. Como se han visto en este ejemplo, existen muchas formas de actuar con los objetos, por lo que primero, lo se que ha de estructurar, es pensar qué queremos que pase con cada uno de ellos (escalar, mover, etc.). También hay que tener en cuenta todo, y todos los tamaños, pero es posible que deseemos querer forzar la visualización a un mínimo de tamaño, tanto vertical como horizontal, ya sea desde el mismo flash, o forzándolo desde el html, con un scroll. Controlar absolutamente cada clip que deseemos tener en cuenta para su escalado, puede resultar largo, pero quedará un resultado bastante positivo.

Ver muestra

Desecargar archivos