En este tutorial crearemos un archivo SWF utilizando, además de los convencionales componentes de Flash y/o AS3, código MDM Zinc que dota a nuestro SWF de la posibilidad de cargar datos de varias formas.
En este caso veremos dos formas, una interna ya conocida a través de un TextField de tipo "Introducción de Texto", y otra externa en la cual prepararemos nuestro archivo Flash para que obtenga una cadena de texto desde un cuadro de diálogo de Windows llamada InputBox. En próximos tutoriales veremos cómo hacerlo desde un archivo de texto u otro lugar.
Prueba el ejemplo aquí
Paso 1
Crear con las herramientas de diseño de Flash, 4 objetos que son los siguientes:
- Área de texto con nombre de instancia "entrada" de tipo "Introducción de texto".
- Área de texto con nombre de instancia "salida" de tipo "Dinámica".
- Botón con nombre de instancia "botonZinc".
- Botón con nombre de instancia "botonFlash".
Paso 2
En el fotograma 1 poner el siguiente código inicialmente:
Código :
import mdm.*; mdm.Application.init(this); import fl.controls.UIScrollBar;
Las primeras dos líneas importan e inicializan los script's de MDM Zinc, o sea, importan la clase y al iniciarla, el swf está listo para ejecutar esas nuevas funciones de Zinc. En el tercer renglón importamos la clase que hará posible crear por código AS3, la barra de desplazamiento que utilizará nuestro programa.
Paso 3
En el fotograma 1 debajo del anterior código creamos en posición, tamaño y lugar el componente ScrollBar (barra de desplazamiento) con el siguiente código:
Código :
var sb:UIScrollBar = new UIScrollBar(); sb.move(salida.x + salida.width, salida.y); sb.setSize(sb.width, salida.height);
En la primer línea creamos la variable "sb" que es de tipo UIScrollBar y proviene de la familia o clase UIScrollBar(), por ende, será similar en la mayoría de sus características a esa familia, pero no obstante, en las líneas subsiguientes definimos su tamaño y posición de forma, relativa a la forma y posición del componente TextField de nombre "salida".
Paso 4
En el fotograma 1 debajo del anterior código creamos 2 funciones, enlazándolas con el evento CLICK de los dos botones llamados "botonFlash" y "botonZinc".
Las funciones son:
Código :
botonZinc.addEventListener(MouseEvent.CLICK, cargaymuestraZinc); function cargaymuestraZinc(eventObj:MouseEvent):void { var datosintroducidos:String = mdm.Dialogs.inputBox("Cargador de datos","Ingresa tu datos aquí..."); salida.appendText(datosintroducidos); refrezcarScrollBar(); } botonFlash.addEventListener(MouseEvent.CLICK, cargaymuestra); function cargaymuestra(eventObj:MouseEvent):void { salida.text = salida.text + entrada.text; refrezcarScrollBar(); }
Función cargaymuestraZinc()
En primer lugar se le asigna al botón "botonZinc" que esté atento a cuando hagan click sobre sí, y cuando eso suceda, ponga en funcionamiento o llame a la función creada debajo de nombre "cargaymuestraZinc()", cuyo objetivo es crear una variable de "datosintroducidos" de tipo "String", en la cual se cargarán los datos introducidos por el usuario en un inputBoxText o dicho de otra manera, un cuadro de dialogo de Windows.
Dicha acción del SWF es posible sólo si el mismo es compilado por MDM Zinc y se ejecuta fuera de todo entorno web, como bien puede ser el escritorio de una PC o Mac OS según como sea desarrollado.
La función que hace posible mostrar el cuadro de diálogo de Windows para introducir los datos se muestra como "mdm.Dialogs.inputBox". Una vez que el usuario llene la caja de texto y presione el botón "OK" los datos ingresados se guardan momentáneamente en la variable "datosintroducidos", que en segundo lugar son cargados a través de la función "appendText()" AGREGANDO los datos al final del componente de nombre "salida". En tercer lugar se llama a la función refrezcarScrollBar() que más adelante se explica.
Función cargaymuestra()
En primer lugar se le asigna al botón "botonFlash" que esté atento a cuando hagan click sobre sí, y cuando eso suceda haga ponga en funcionamiento o llame a la función creada debajo de nombre "cargaymuestra()" cuyo objetivo es transferir los datos ingresados en el componente llamado "entrada" e introducirlos en el componente de nombre "salida". Aquí también se llama a la función refrezcarScrollBar() que más adelante se explica.
Paso 5
En el fotograma 1 debajo de las anteriores funciones, creamos la tercera y última función que es la siguiente:
Código :
function refrezcarScrollBar():void { sb.scrollTarget = Object(root).salida; addChild(sb); salida.scrollV = salida.maxScrollV; }
Función refrezcarScrollBar()
Esta función es de vital importancia para que se logre que la barra de desplazamiento, siempre después de haber introducido nuevos datos, se mantenga bajada al máximo, o sea, que el texto estará subido al máximo.
Paso 6 Final
En el fotograma 1, debajo de las anteriores funciones, llamamos a la función refrezcarScrollBar() de la siguiente forma:
Código :
refrezcarScrollBar();
Simplemente se llama a que el ScrollBar se posicione en su lugar para que podamos visualizarlo en la aplicación.
Aquí el código completo
Código :
import mdm.*; mdm.Application.init(this); import fl.controls.UIScrollBar; var sb:UIScrollBar = new UIScrollBar(); sb.move(salida.x + salida.width, salida.y); sb.setSize(sb.width, salida.height); botonZinc.addEventListener(MouseEvent.CLICK, cargaymuestraZinc); function cargaymuestraZinc(eventObj:MouseEvent):void { var datosintroducidos:String = mdm.Dialogs.inputBox("Cargador de datos","Ingresa tu datos aquí..."); salida.appendText(datosintroducidos); refrezcarScrollBar(); } botonFlash.addEventListener(MouseEvent.CLICK, cargaymuestra); function cargaymuestra(eventObj:MouseEvent):void { salida.text = salida.text + entrada.text; refrezcarScrollBar(); } function refrezcarScrollBar():void { sb.scrollTarget = Object(root).salida; addChild(sb); salida.scrollV = salida.maxScrollV; } refrezcarScrollBar();
Espero que toda esta información sea de utilidad para alguien que lo necesite.
Cristalab me ha dado mucho y ser desagradecido es peor que ser traidor.
Saludos!
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por osmarttv el 27 de Septiembre de 2011
Por Mariux el 29 de Septiembre de 2011
Por jerMan el 30 de Septiembre de 2011
Por cutepizarro el 30 de Septiembre de 2011
import mdm.*;
mdm.Application.init(this);
import fl.controls.UIScrollBar;
var sb:UIScrollBar = new UIScrollBar();
sb.move(salida.x + salida.width, salida.y);
sb.setSize(sb.width, salida.height);
botonZinc.addEventListener(MouseEvent.CLICK, cargaymuestraZinc);
function cargaymuestraZinc(eventObj:MouseEvent):void
{
var datosintroducidos:String = mdm.Dialogs.inputBox("Cargador de datos","Ingresa tu datos aquí...");
salida.appendText(datosintroducidos);
refrezcarScrollBar();
}
botonFlash.addEventListener(MouseEvent.CLICK, cargaymuestra);
function cargaymuestra(eventObj:MouseEvent):void
{
salida.text = salida.text + entrada.text;
refrezcarScrollBar();
}
function refrezcarScrollBar():void
{
sb.scrollTarget = Object(root).salida;
addChild(sb);
salida.scrollV = salida.maxScrollV;
}
refrezcarScrollBar();
Por Mariux el 30 de Septiembre de 2011
cutepizarro :
hee, pero si se ve. nunca pasaría algo incompleto a portada. Además te escribí vía MP que ya di aviso a Maikel para que revise si es un bug. y agradeciéndote la colaboración. Y te volvi a agradecer en este mismo post de nuevo el aporte.
me parece que tu respuesta está demás subida de tono, ya que me encargué personalmente de que tu tutorial se viera bien y se entendiera.
Por Mariux el 30 de Septiembre de 2011
Por Maikel el 30 de Septiembre de 2011
Con el error:
Código :
Como debe ser:
Código :
Ya edite el tutorial con la corrección...
cutepizarro Gracias por corregirnos, no somos perfectos. Si notas algo más, hazlo saber.
Saludos
Por cutepizarro el 30 de Septiembre de 2011
Por Freddie el 30 de Septiembre de 2011
La próxima relajate antes de postear. Una cosa es que hagas buenos aportes, otra que trates mal al staff. No tomamos eso bien.
¿Prometes ser mejor a partir de ahora?
Por cutepizarro el 01 de Octubre de 2011
Aqui le dejo a mano lo que usted de su parte presume como una inconducta.
cutepizarro :
Cristalab me ha dado mucho y ser desagradecido es peor que ser traidor.
cutepizarro :
cutepizarro :
Culmino con un comentario suyo:
Freddie :
Le respondo su pregunta:
No estoy obligado, no creo necesario, me parece poco serio y no tengo el mas minimo interes en prometer nada a nadie que no conozca. Vivo en un pais que por suerte el concepto de libertad esta cambiando para bien y eso no lo pienso negociar. NO TEMO, NO RUEGO, NO A LA OPRESIÓN, NO AL AUTORITARISMO.
He dicho.
Por Usuario Habitual el 14 de Noviembre de 2011
Pero tú qué te crees pizarrillo? Acaso piensas que has inventado algo que si tu no hubieras nacido no se inventaría? Tu ejemplo es correcto pero, sinceramente, bastante mediocre. El staff de esta página -buenísimo site para muchos de nosotros- se comporta de manera exquisita siempre y, francamente, creo que se te han ido las respuestas de las manos. ¿opresión?¿autoritarismo? Lo dicho, muchacho, estás flipado. Tenías que haber nacido en, por ejemplo, España en 1940. Todos hubieramos ganado, incluido tú, que sabrías de qué hablas y probablemente el resto de usuarios de esta web, que no tendrían que soportar tus bobadas de niñato, que a buen seguro es lo que eres, porque si tienes más de 16 años es para llorar.
¿no temo?¿no ruego? Madre de Dios! Lo que digo: hollywood y las drogas han hecho y siguen haciendo mucho daño...
Nada a relajarse por métodos naturales y a pasar de patanes y majaderos engreídos como este CutreBizarro.
Bye!
Por cutepizarro el 03 de Abril de 2012
Por Mariux el 03 de Abril de 2012
post cerrado por mala conducta