El próximo Sábado 17 de abril tendrá lugar en laPontificia Universidad Católica del Perú la conferencia “Social Media Marketing”, la cual será impartida por Walter Terán, experto en Marketing en Internet, y Jorge Luis Terán, desarrollador de Plataformas de Negocios Online.
Este evento organizado por Marketing Place, con el respaldo de la Fraternidad Freedom Business Consulting, busca acercar a los especialistas en marketing, publicistas, estudiantes y público interesado, a esta excelente forma de incrementar la visibilidad de tu marca, negocio o sitio web de manera efectiva y gratuita.
Temario
Introducción a las Redes sociales.
El Posicionamiento de marca en las redes sociales.
Como hacer una campaña de publicidad en las redes sociales.
Los Errores más comunes en el marketing con redes sociales.
Casos de éxito Peruanos en las redes sociales.
CV de los Ponentes:
Walter Terán: Experto en Marketing en Internet, y Desarrollador y diseñador web. Gerente general de Koalatec S.A.C (www.koalatec.com) , empresa especializada en Diseño Web Profesional. Ha laborado en PERS Corporation como Desarrollador Aplicaciones Flash As2, As3, Flex. Además, ha participado como ponente en varios cursos y seminarios en temas de Marketing en redes sociales, Comercio Electrónico y demás similares conjuntamente con su hermano Jorge Luis Terán. Gran conocer en la Implementación de carritos de compras y catálogos en línea para negocios de comercio exterior.
Jorge Luis Terán: Desarrollador de plataformas de Negocios Online. Gerente de Proyectos de Koalatec S.A.C, empresa especializada en Diseño Web Profesional. Ha laborado en Soltrónica como Diseñador Gráfico y Web. Conocedor de Técnicas de Ventas y los 12 Cierres.
Los interesados podrán asistir a la Conferencia haciendo efectivo el pago respectivo, según la modalidad a la que pertenezcan (estudiantes PUCP o público en general), el mismo día del evento. Para ello le pedimos asistir al evento 15 minutos antes del inicio de la misma. *Las vacantes son Limitadas.
Fecha Límite de inscripción para público en general: Lunes 12 de abril. Fecha Límite de inscripción para estudiantes PUCP: Viernes 16 de abril.
Datos a enviar para efectuar la inscripción:
Apellido Paterno: Apellido Materno: Nombres: DNI: Teléfono/Celular: Institución a la que pertenece (Universidad/Centro de Trabajo): Informes e inscripciones en E-mail:marketingplace.peru@gmail.com Telfs: 99647709 / 990491328
Para mayor información visite : www.marketingplaceperu.com
En este video respondemos las preguntas frecuentes sobre el seminario “Blog Diamante”
Seminario "Blog Diamante" en EIGER los Olivos
Cordiales saludos , este sábado 12 de Diciembre y domingo 13 de diciembre se dictará el seminario Blog “Diamante” , en el cual revelaremos todos los secretos detrás de estas plataformas de Internet para generar ingresos económicos y publicidad para nuestros negocios o actividades afines.
Temas a tratar:
- Cómo utilizar un blog para generar tráfico masivo.
- Cómo rentabilizar un blog con Google Adsense
- Cómo rentabilizar un blog con programas de Afiliados
- Blogs Gratuitos vs Blogs Profesionales
- Estudio de casos de éxito peruanos.
Expositores :
- Walter Eduardo Terán : Experto en Marketing por Internet.
- Jorge Luis Terán : Desarrollador de plataformas de negocios online.
Inversión : 15 soles (Estudiantes Eiger y público en general)
Informes : EIGER sede los Olivos . Calle Palacios Valdez Nro 122 (Frente al Megaplaza)
Telf: 522-5531 / 523-6791 ( Sede EIGER los Olivos)
En este tutorial mostraré un par de sencillos ejemplos en cuanto al uso de una de las novedades de Adobe FlashCS4 que mas me ha llamado la atención (en cuanto a ActionScript se refiere), estoy hablando de la adición del método DrawTriangles() a la clase Graphics.
Este método es muy útil al momento de crear figuras tridimensionales a partir de triángulos, así como también para modificar la apariencia de un bitmap (que explicare mas adelante), y en el mas sencillo de los casos dibujar una figura vectorizada (con forma de triangulo) similar a lo que harían el resto de los métodos de Graphics.
A continuación, el resultado final:
Arrastra los recuadros negros, para modificar la imagen.
Como podrás ver, el bitmap esta dividido por 2 triángulos rectángulos, unidos a través de sus hipotenusas formando un rectángulo. Explico a detalle como crearlo:
Aprendiendo la Teoria
Antes de hecharle un vistazo al código completo, pienso que es mas importante comprender la manera básica de como trabaja este.
Primero hay que imaginar que ya tenemos en nuestro escenario, un objeto bitmap sin mayor chiste, cuyo contorno esta formado por algún tipo de cuadrángulo al cual aplicaremos la deformación mas adelante:
Para ello vamos a dividirlo en un par de triángulos iguales, considerando las cuatro vértices propias del cuadrángulo y que son 3 vértices por cada triangulo nos quedarían faltando 2 puntos para completar la figura:
Por fortuna podemos optimizar ese paso, y evitarnos el tener que crear otros dos objetos adicionales definiendo como puntos en común P2 y P3 así ahorrándonos los 2 vértices que nos faltaban:
Para poder graficar y manejar texturas con drawTriangles() es necesario emplear las coordenadas U para el eje horizontal cuyo valor sera igual al ancho total de la imagen (x, width), y V para el eje vertical cuyo valor sera el de la altura total de la imagen (y, heigth).
Como ejemplo usando la siguiente imagen, el triangulo 1 (T1) estará formado por la unión de P1 (0, 0), a P2 (1, 0) para terminar en P3 (0, 1).
Ejemplo utilizando como puntos de coordenadas U, y V
Así mismo podemos definir cualquier triangulo sin batallar por el tamaño de la imagen ya que este sera definido por el tamaño total, en la siguiente imagen podemos ver un triangulo cuyos puntos estarán unidos por P1 (.5, 0), P2 (1, .25) y P3 (0, 1).
Comprendiendo la Practica
Si estabas esperando a ver el código fuente del primer ejemplo, te diré que jamas has estado tan cerca pero aun te falta llegar mas abajo.
Primero crearemos un triangulo rellenado con la bitmapData de un elemento en la biblioteca, instanciado como "Image" y utilizaremos la nueva Clase Vector para ello, no entraré mucho en eso.
graphics.clear(); // Borramos cualquier dibujo creado por graphics graphics.beginBitmapFill(new Image(0,0)); // Indicamos que se use "Image" como color de relleno graphics.drawTriangles(// Comenzamos con el método a explicar Vector.([10,10, 100,100, 10,300, 100,200]), // Linea A Vector.([0,1,2, 1,3,2]), // Linea B Vector.([0,0, 1,0, 0,1, 1,1])); // Linea C
Primero que nada en la linea A fijaremos las coordenadas dentro del escenario de cada punto, estos puntos estarán determinados a través del sistema de coordenadas (U, V) en la linea C tal y como ya explique arriba y finalmente en la linea B indicamos como trazar los triángulos a partir de cada punto que conforman la figura, cosa que también ya fue mencionada. Así se formara una figura similar a la siguiente:
Ahora, comprendido todo lo anterior me parece apropiado mostrar la clase fuente del primer ejemplo con todas sus explicaciones comentadas entre lineas, con algunas referencias hacia los ejemplos anteriores:
package { // Importamos todos los paquetes necesarios import flash.geom.*; import flash.events.Event; import flash.events.TimerEvent; import flash.events.MouseEvent; import flash.display.Sprite; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.TriangleCulling; import flash.display.MovieClip; import flash.display.Graphics; // publicclass Main extendsMovieClip{ // Este sera el tamaño de la imagen una vez cargada dentro del escenario privatevarsize:int = 260; // Aqui se guardara la bitmapData, como su nombre indica sera el contenedor... // ...cargado al centro del escenario privatevar container:Sprite; // La bitmapData sobre la cual trabajaremos privatevar bitmapData:BitmapData; // Los dos vectores que representaran los catetos y vertices al dibujar los Triangulos privatevar vertices:Vector.; privatevar catetos:Vector.; // Estos seran los Sprites encargados de modificar la BitmapData... // ...al igual que en los ejemplos anteriores se trataran de P1,P2,P3 y P4 privatevar P1:Sprite; privatevar P2:Sprite; privatevar P3:Sprite; privatevar P4:Sprite; // publicfunction Main():void { // Lo primero a hacer sera cargar el objeto bitmap de nuestra biblioteca bitmapData = new bitmap(0, 0); // Luego, creamos el contenedor de la BitmapData ya cargada... container = new Sprite(); // ...y lo colocamos centrado en el escenario container.x = (stage.stageWidth - bitmapData.width) /2; container.y = (stage.stageHeight - bitmapData.height) /2; addChild(container); // Finalmente llamamos a estas dos funciones, que explicare mas adelante... setPoints(); drawTriangle(); } // A las siguientes dos funciones llegaran todos los listeners de cada punto... // ...por lo que cumplen una importante funcion al querer arrastrar y modificar la bitmap privatefunction EventHandler(event:Event) { // Diferenciamos los eventos recibidos switch(event.type) { // Detectamos el evento MouseUp case MouseEvent.MOUSE_UP: removeEventListener(MouseEvent.MOUSE_MOVE, EventHandler); stopDrag(); // default: drawTriangle(); } } privatefunction startPointDrag(event:MouseEvent):void { addEventListener(MouseEvent.MOUSE_MOVE, EventHandler); event.currentTarget.startDrag(); drawTriangle(); } // Esta es la funcion que dividira la imagen cargada desde la bilioteca... // ...en dos triangulos, de esto ya hablamos mas arriba privatefunction drawTriangle():void { vertices = new Vector.(); catetos = new Vector.(); // Señalamos los puntos que forman el Triangulo 1 vertices.push(P1.x, P1.y); vertices.push(P2.x, P2.y); vertices.push(P3.x, P3.y); // ...y los del Triangulo 2 vertices.push(P2.x, P2.y); vertices.push(P4.x, P4.y); vertices.push(P3.x, P3.y); // Una vez hecho eso, dividimos el cuadrangulo en dos triangulos // Utilizando las coordenadas (U, V) tanto para el Triangulo 1 catetos.push(0, 0); catetos.push(1, 0); catetos.push(0, 1); // ...como para el Triangulo 2 catetos.push(1, 0); catetos.push(1, 1); catetos.push(0, 1); // container.graphics.clear(); container.graphics.beginBitmapFill(bitmapData); container.graphics.drawTriangles(vertices, null, catetos, TriangleCulling.NONE); } // Esta funcion esta encargada de acomodar los puntos P1~P4 y... // ...agregarles sus respectivos listeners privatefunction setPoints():void{ P1 = newPoint(); P2 = newPoint(); P3 = newPoint(); P4 = newPoint(); // Fijamos cada uno de los puntos en los margenes de la imagen cargada... // ...logrando que cuando utilizemos las coordenadas (U, V) estas queden... // ...acomodadas en los limites debidos P4.x = P2.x = bitmapData.width; P4.y = P3.y = bitmapData.height; // Añadimos todos los listeners necesarios para cada punto P1.addEventListener(MouseEvent.MOUSE_DOWN, startPointDrag); P2.addEventListener(MouseEvent.MOUSE_DOWN, startPointDrag); P3.addEventListener(MouseEvent.MOUSE_DOWN, startPointDrag); P4.addEventListener(MouseEvent.MOUSE_DOWN, startPointDrag); stage.addEventListener(MouseEvent.MOUSE_UP, EventHandler); } // Esta funcion, llamada por "setPoints" dibuja los puntos P1~P4 a arrastrar privatefunction newPoint():Sprite { var point:Sprite = new Sprite(); point.graphics.beginFill(0x000000); point.graphics.drawRect(-5, -5, 10, 10); point.graphics.endFill(); point.buttonMode = true; // container.addChild(point); return point; } } }
NOTA: Hay un pequeño detalle a tener en cuenta al utilizar este método sobre imágenes vectoriales, y es que al vaciar la imagen como relleno en un bitmap la rasteriza en el proceso, por lo que al dar un acercamiento muy grande los pixeles se harán evidentes.
Esta clase la tenía escrita para usar una imagen tipo mosaico (tile) en mi biblioteca y fijarla como fondo, similar a lo que se puede hacer con background:url() en CSS. Así esta clase pegará la imagen vinculada y la usará como fondo cuando el stage la requiera.
Su uso es muy sencillo, ya que sólo debes identificar una imagen con el nombre de clase Pattern como se muestra en la siguiente imagen.
Y aquí hay un ejemplo de su uso, que como verás también es sensible a un cambio de tamaño en la ventana del navegador expandiéndose y manteniéndose a pantalla completa.
Finalmente recomendaría que se considere el tamaño de una imagen al vincularla ya que entre más pequeña (10x10pxs) sea ésta, mayor será el esfuerzo que hará el procesador para hacerla ajustar al tamaño completo de la pantalla.
El uso de la clase MouseEvent es muy simple y ya ha sido explicada en otros tips. Únicamente hemos de crear un listener que detecte el evento y ejecutar una acción.
Hemos de fijarnos en la propiedad doubleClickEnabled que es la que nos indica si la acción de doble click está activa o no. Por defecto la propiedad está con valor false, con lo que debemos pasarla a true en caso contrario el dobleclick no se ejecutaría.
Ahora, para hacer el tip más interesante (y para que a Bleend el tip no le parezca demasiado corto...) explicaré cómo detectar si hemos hecho un click o un dobleclick sobre el mismo botón. Es decir, que si clicamos sobre el botón una vez ejecute una acción y si clicamos doble ejecute otra distinta.
Siguiendo lo explicado en este otro tip empezaremos el código creando la clase para nuestro botón. Crearemos la clase Boton.as
A este botón le añadiremos los eventos de click y double_click.
Código :
package { import flash.display.MovieClip; import flash.events.MouseEvent; //----------------------------------------- public class Boton extends MovieClip { //----------------------------------------- public function Boton() { doubleClickEnabled = true; addEventListener(MouseEvent.CLICK, onClick); addEventListener(MouseEvent.DOUBLE_CLICK, onDobleClick); } //----------------------------------------- private function onClick(event:MouseEvent):void { trace("click"); } private function onDobleClick(event:MouseEvent):void { trace("doble click"); } //----------------------------------------- } }
Si publicasemos ahora este botón veríamos el siguiente problema... al ejecutar el dobleclick tambien se ejecutaría el click normal, ya que los dos listeners son detectados. En el panel salida nos marcaría esto:
panel salida :
click doble click
Esto no es lo que nos interesa, solo queremos que se ejecute una de las dos. Para solucionar el problema ampliaremos la clase siguiendo este proceso:
Crearemos una variable boleana donde indicaremos si hemos realizado un click o un dobleclick
Código :
private var isDobleClick:Boolean;
El valor de la variable lo cambiaremos a través de las funciones de los eventos:
Código :
private function onClick(event:MouseEvent):void { isDobleClick = false; } private function onDobleClick(event:MouseEvent):void { isDobleClick = true; }
Escribiremos una tercera función que ejecute las acciones según el valor de la variable.
Código :
private function controlaClick(event:TimerEvent):void { if (isDobleClick == false) { trace("click"); } else { trace("doble click"); } }
Esta función controlaClick() la ejecutaremos desde la función onClick(), pero hemos de darle un margen de tiempo para detectar si hemos realizado un dobleclick, así que la ejecutaremos desde un intervalo. La función quedaría así:
Código :
private function onClick(event:MouseEvent):void { isDobleClick = false; espera = new Timer(200, 1); espera.addEventListener(TimerEvent.TIMER, controlaClick); espera.start(); }
Cómo añadido podemos hacer que si damos un solo click sobre el botón pulsando la tecla "Ctrl" se ejecuten las acciones de un dobleclick, para eso utilizaremos la propiedad ctrlKey del evento MouseEvent. Esta propiedad devuelve true o false según esté pulsada la tecla en el momento del click. (Esta propiedad también está para "shift" y "Alt")
Código :
if (event.ctrlKey) { isDobleClick = true; }
La clase completa sería esta:
Código :
package { import flash.display.MovieClip; import flash.events.MouseEvent; import flash.utils.Timer; import flash.events.TimerEvent; //----------------------------------------- public class Boton extends MovieClip { private var isDobleClick:Boolean; private var espera:Timer; //----------------------------------------- public function Boton() { doubleClickEnabled = true; addEventListener(MouseEvent.CLICK, onClick); addEventListener(MouseEvent.DOUBLE_CLICK, onDobleClick); } //----------------------------------------- private function onClick(event:MouseEvent):void { isDobleClick = false; espera = new Timer(200, 1); espera.addEventListener(TimerEvent.TIMER, controlaClick); espera.start(); if (event.ctrlKey) { isDobleClick = true; } } private function onDobleClick(event:MouseEvent):void { isDobleClick = true; } private function controlaClick(event:TimerEvent):void { if (isDobleClick == false) { trace("click"); } else { trace("doble click"); } } //----------------------------------------- } }
El siguiente tip está referido a simular un espacio 3D (x,y,z) teniendo sólo 2 coordenadas X e Y (x,y). El cual es parte de un tema más amplio llamado Isometría , que se usa mucho en Juegos. Comencemos:
1.- Crear el ambiente 3D
Flash maneja el siguiente sistema de coordenadas en 2d (Acuérdense que Y está en sentido contrario)
La idea es manejarlas en 3d (no es tan fácil dibujar esto en Fireworks )
Ahora juntemos estos sistemas
* Aquí hay un pequeño truco, estoy utilizando 2 coordenadas que ya existen(x y), solo las he cambiado de ubicación(z y) . Es la forma más sencilla, creanme... . Si se fijan bien, el nuevo eje X (3D) es una línea oblicua al nuestro eje normal (2D) formando cierto ángulo.
Luego, si proyectamos el 3D en 2D tenemos lo siguiente
Observemos tanto en el cuadro amarillo como en el triángulo verde , el eje XY y X'Y'Z' : B: Es el ángulo formado entre X y X' Punto en 2D: (x,y) Punto en 3D: (x',y',z') En el cuadro amarillo, 2 líneas verdes que tiene la misma longitud(eso es demostrable por geometría) También observemos la longitudes de X' y Y'.
Si nos concentramos en el triángulo verde :
Podemos proyectar X' en XY sabiendo el ángulo de inclinación B (trigonometría), con cual si usamos esto en la longitudes de X' y Y' obtenemos:
Código :
//En Y' x+x'cos(180-B) = y' //En X' x'sen(180-B)+z' = y
// Si ordenamos XY para un lado y X'Y'Z' en el otro
x = y' - x'cos(180-B) y = z' + x'sen(180-B)
Por tanto, podemos dar la coordenadas (x',y',z') y dibujarlas en (x,y) En AS3 * Asumamos un ángulo de inclinación de 120 grados, con lo cual tendríamos 60 grados (180-B).Tengan presente que el ángulo debe estar en radianes (60 grados es equivalente a PI/3 radianes)
Código :
public static function coordenadas3d(_x:Number = 0, _y:Number = 0, _z:Number = 0):Point { var p:Point = new Point(0,0); p.x = _y - _x*Math.cos((1/3)*Math.PI); p.y = _z + _x*Math.sin((1/3)*Math.PI);
/** * ... * @author ASD Eduardo Medina A. */ public class Lab01 extends MovieClip {
public function Lab01() { init(); }
private function init():void { this.graphics.lineStyle(1, 0x00ff00); this.graphics.moveTo(200,150); //Centrarlo en el eje this.graphics.beginFill(0x00ff00, 1);
2.- Paramétricas en 3d , se acuerdan... enlace Cono :
Código :
private function mframe(e:Event):void { if (t < 150) { var _x:Number = t*Math.cos(t); var _y:Number = t*Math.sin(t); var _z:Number = t; cont1.graphics.lineTo(200+coordenadas3d(_x, _y, _z).x, 150+coordenadas3d(_x, _y, _z).y); cont2.graphics.lineTo(200+coordenadas3d(_x,_y,_z).x, 150+coordenadas3d(_x, _y, -_z).y);
t += 10*Math.PI/180; }else { this.removeEventListener(Event.ENTER_FRAME, mframe); } }
Esfera :
Código :
private function mframe(e:Event):void { if (t < 150) { var _x:Number = 100*Math.cos(u)*Math.cos(t); var _y:Number = 100*Math.sin(u)*Math.cos(t); var _z:Number = 100 * Math.sin(t);
Este es un pequeño ejemplo de cómo reproducir archivos de sonido en Flash o Flex con actionscript 3.
Esta es la clase que crearemos:
Código :
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundLoaderContext; //-------------------------- public class Sonido extends Sprite { private var so:Sound; private var url:URLRequest; private var buffer:SoundLoaderContext; private var ini:Number; private var loop:Number; //---------------------- public function Sonido(qUrl:String, qBuffer:Number, qIni:Number, qLoop:Number) { url = new URLRequest(qUrl); buffer = new SoundLoaderContext(qBuffer*1000); ini = qIni*1000; loop = (qLoop >= 0) ? qLoop : int.MAX_VALUE; so = new Sound(url, buffer); so.play(ini, loop); } } }
Debe ir en un archivo llamado "Sonido.as", situado junto a nuestro archivo .FLA
Para utilizarla colocaríamos en nuestra película flash:
Código :
import Sonido; var so:Sonido = new Sonido("audio.mp3", 3, 0, -1);
Explicación del código:
La clase contiene 5 variables privadas, 4 de las cuales debemos introducir como parámetro a la hora de generar la instancia. Estas variables son:
url: ruta del archivo mp3 buffer: tiempo del archivo de audio que estará cargado en memoria antes de reproducirse. ini: posición en la que se comenzará a reproducir el audio loop: cantidad de veces que se repetirá el audio.
No hay manera de asignar un loop que se repita continuamente, pero un truco para hacer esto sería colocar un número de repeticiones muy elevado, por eso este código:
loop = (qLoop >= 0) ? qLoop : int.MAX_VALUE;
Controla que el valor que le introducimos sea mayor que cero. En caso de introducirle un valor negativo asignará el número de repeticiones al máximo posible en flash (int.MAX_VALUE) osea 2147483647.
Como puedes observar se han colocado varios parametros, que a su vez, han sido declarados como predeterminados, a continuación explicaré cada uno de ellos.
Todos los valores uint, son números Hexadecimales en formato 0x. Puedes utilizar cualquier color Hexadecimal.
bgColor: Color del MovieClip que servirá como fondo del stage.
playerColor: Color del jugador.
enemyColor: Color del oponente.
ballColor: Color de la bola.
middleLineColor: Color de la linea que divide el stage.
ballSpeed: Velocidad de la bola.
scoreColor: El color de los marcadores.
msgColor: Color del texto usado como mensaje para comenzar.
msg: Mensaje para comenzar.
scoreFont: La fuente que será utilizada en el marcador.
scoreSize: Tamaño de la fuente de los marcadores.
Ocultamos el Context Menu y establecemos Constantes del tamaño del stage.
Creamos una función que será ejecutada por un Evento Timer, ésta se encargará de que el Jugador sea manejado con el Mouse, además de establecer hasta donde se puede mover.
function playerMovement(event:TimerEvent):void { player.y = mouseY - player.height / 2;
Ahora creamos el código que manejará la Bola que será explicado con comentarios para una mejor comprensión.
ball.speed = ballSpeed; //Se establece la velocidad, tomada del Parámetro ballSpeed. ball.dir = 0; //Se crea una variable que manejara la dirección de la Bola. player.score = 0; //Estos son los marcadores al iniciar. enemy.score = 0;
function ballMovement(event:TimerEvent):void { if(playin) //Se checa si el juego ha comenzado, esta variable será creada más adelante. { ball.x -= ball.speed; //Estos códigos mueven la Bola. ball.y -= ball.dir; }
if(ball.x <= player.x) //Si la Bola pasa por detras del Jugador { //o del Oponente, re reinicia la Bola. enemy.score++; restart(); }
Ahora checamos las colisiones, si la Bola colisiona con el Jugador o el Oponente, la velocidad será invertida para dirigirse hacia el lado contrario, y la dirección se generará aleatoriamente, si el número generado es positivo la dirección será hacia abajo y si es negativo hacia arriba.
function scoreHandler(event:TimerEvent) { playerScore.text = player.score; enemyScore.text = enemy.score; }
Creamos el mensaje para comenzar, la variable que nos indicará si el juego ha comenzado y la función que se encargará de ocultar el Mouse, iniciar el Timer y borrar el mensaje de inicio.
La Clase debe ser llamada por medio del cuadro de texto Document Class en el Panel de Propiedades de Flash, ya que el objeto stage no permite el uso de import en una Clase de este tipo. Para modificar los Parámetros lo puedes hacer directamente desde la Clase.
Recuerda que el stage puede ser de cualquier tamaño, la Clase ajustará automáticamente los elementos.
Bueno , como no todo en la vida es programacion y codigo y mas codigos !! . solo para dejarles un pequeño respiro en este blog , les dejo estos links a videos motivadores , es realmente importante nunca perder la vision en tus metas. Esto es un aporte de Walter Eduardo Teran (mi hermano). Alli les va :
Leyendo el blog de mi pata David se me ocurrio la idea de hacer este post , ya que es un tema que se discute tambien en muchos foros y comunidades , muchas veces con respuestas no del todo acertadas o intermedias , yo propongo la siguiente solucion general :
Bueno en primer lugar necestias -> Un hosting gratuito y que te asegure que tu SWF permanecera alli sin ningun tipo de incoveniente
Una vez que colgaste tu Flash alli ( es lo mas facil del mundo como te has dado cuenta) te generara una URL , apunta esa URL , y luego añade este codigo en tu entrada de blog para embeber tu flash ,esto es un aporte de nuestro amigo David :
Las etiquetas object y embed garantizan la compatibilidad con IE y Firefox , asi tu Flash se visualuzara sin problemas en los dos navegadores mas famosos e utilizados del mundo.
El tamaño original del archivo puede conocerse a través de cualquier programa reproductor externo (yo utilizo Swiff Player), capturando la pantalla y "midiéndolo", o leyendo el código fuente de la página OK?.
¿ Quieres aprender cursos de Diseño Gráfico y Web ?
Dentro de poco vamos a dictar cursos y seminarios presenciales. Es importante que se suscriban al boletín para informarles a su correo dónde y cuando se dictarán dichos seminarios. Atte Jorge Luis Terán , Lima-Peru 2009.
Odiamos el SPAM , tu podrás cancelar tu suscripción a este boletín cuando lo deseas