Componentes dentro del Flash Player?

Hace un par de semanas un alumno mío me pregunto porque algunos de los componentes de Macromedia no venían ya incluidos dentro del Flash Player. De hecho la idea es buena (adivinen a quién sigue sin ocurrirsele?), y si no mal recuerdo en Nomaster hablaron alguna vez acerca de este tema (aunque no logro ubicar el post).
- Todas las computadoras mínimo sean Pentium IV.
- Broadband para todos los usuarios de Internet.
- Que no se necesitara cambiar el aspecto de los componentes.
- Que nadie use Macintosh.
Omitiendo el último punto (el cual obviamente no me gusto en lo mas mínimo :P), cualquiera que tenga un rato usandolos vera que Rolf tiene demasiada razón. Ahora estoy tratando de reescribir un componente que hice en AS 1.0 a AS 2.0. Ademas de las dificultades de tener que evitar usar el Frame Work de Macromedia con sus clases UIComponent y UIObject (40k entre las dos sin comprimir) estoy tratando de implementar mi propio modelo de eventos (porque el que usaba anteriormente no se deja compilar) que sea ligero y flexible. Y eso que aun no llego a la etapa del Live Preview donde me han comentado que existe un bug horrible con el _targetInstanceName. Ojalá Macromedia nos hubiese alivianado la vida incluyendo algunos componentes dentro del Player o en el peor de los casos el Frame Work básico.
En fin, cuando termine de desarrollar mi componente veré si pongo un articulo.
Saludos!!
Comentarios
La justificación que da Macromedia y algunos gurus es que si vas a usar un Radio el peso va a aumentar mas de lo necesario, la ventaja se verá es cuando vas a usar varios tipos de componentes complejos. Pero por algo Mike Chamber estaba desarrollando su propio set de componentes que ahora no encuentro en su site (no creo que se lo hayan prohibido, pero es una posibilidad).
De verdad a mi me parecen poco prácticos esos componentes, pero con ellos he aprendido a entender mas la lógica del API de Flash, así como sobre OOP, pero sin duda me han traido BASTANTES dolores de cabeza y amanecidas, un caso dramático que me recuerdo es cuando haces un loadmovie de otro swf donde estan los componentes y con cierta configuración.
PD: me imagino que debes usar Jedit como editor externo, yo también lo use por bastante tiempo, pero ¿has probado lo que han hecho para el Xcode? puedes seguir el tema aquí:
http://blog.pixelconsumption.com/index.php?p=7
http://blog.pixelconsumption.com/index.php?p=15
A mi me parece bastante bueno, solo le falta el Class Browser
Saludos!
Como es el caso de estos componentes, han salido con bastantes (BASTANTES) bugs y cosas raras; no digo que sea algo comun, pero si puede ocurrir, asi que mas que actualizar el 93% de los PC de Internet cada vez que hay un error de este tipo ... teniendo en cuanto que la GRAN mayoria de las peliculas de Flash no usa componentes, es mejor actualizarlos en el desarrollador
Eso seria una desventaja cuya ventaja seria mas velocidad del lado del cliente
Personalmente, a estas alturas, yo creo que da igual que el player pese 450kb que 600kb...
Acerca de los bugs, siempre habra independientemente si usemos Actionscript, CSS, HTML, Javascript y siempre habra manera de solucionarlos manualmente... aunque tambien para algo son los updates del Flash Player (los cuales de todas formas tienen que liberar). Un bug horrible que se termino solucionando con el Flash 7.2 (la aplicacion, no el flash player) es, por ejemplo, el que meciona Rafael (que por cierto, se soluciona agregando la linea _lockroot = true) o uno muy conocido en el Flash Player 6 que tenia que ver con las mascarillas dinamicas y las cajas de texto. Creo que Macromedia se deberia dar un poco mas de tiempo antes de sacar una version final para corregir los problemas mas graves.
Y bueno, sinceramente lo de hacer el player mas ligero, pues...a lo mucho le sumaria unos 200k. Si nos ponemos exigente (como Macromedia dice que lo hace con el peso de su player) veamos lo siguiente:
Todo cliente paga por la tasa de transferencia que le cobra su hosting. En sitios medianos 20k de peso puede ser una gran diferencia entre el costo de un site, asi que no es lo mismo tener que bajar una sola vez el player con 200k que releer el sitio unas 40 veces x 20k (si es que lo visitamos mucho) = 800k. De hecho, esto que digo sonara exagerado, pero es una de las ventajas de CSS en cuanto a optimizacion de tasa de transferencia al usar la misma hoja todo el site. La respuesta que le dieron a Danisan no me dejo muy convencido en realidad. Pongan este codigo en el primer frame:
ASSetPropFlags(_global,null,0,1);
for (var prop in _global) trace (prop)
Veran que no aparece ninguna clase del Frame Work de los componentes. De seguro se referia a las clases MovieClip o Array y obvio que esas si se necesitan estar cargadas dentro del player, asi que no cuentan.
Creo que a veces a Macromedia se le olvida las cosas practicas tanto por querer meter seguridad innecesaria como su politica de RDA (Rich Development Applications).
P.D. Rafael, el Jedit lo conoci recientemente gracias a Nahuel (no me gusto mucho dado que esta escrito en Java). La verdad sigo usando mucho el editor que trae Flash, pero voy a probar el de Xcode, que se ve muy interesante.
Saludos!!!
Yo más que los propios componentes, lo que agregaría son cosas como XPath o expresiones regulares... incluso los componentes de Remoting.
Con los componentes creo que lo mejor es programar unos propios, en algún sitio ya se ha hablado de crear un FrameWork de componentes básicos OpenSource, sería algo bastante útil para todo el mundo, pero en fin, requiere mucho tiempo :(
Un saludo!
El asunto es que hace dos meses compre una G5 1.8 dual y al mes le compré 512 de Ram. Resulta que parace que estas máquinas son bastante necias con la memoria y parece que la tienda tiene un lote de memorias defectuosas, porque cuando se la instalé a cada rato me salía un kernel panic, independientemente si usaba Flash o cualquier otro programa, incluso salía al arrancar algunas veces.
A la semana de haber comprado la memoria me la cambiaron teniendo que llevar la máquina para que verificaran que estaba mala y tuvieron que hacer muchas pruebas porque muchas memorias estaban malas. ¿Cómo saber? con el CD de Hardware Test.
Ok, la relación de este tema con los componentes de Flash es que al fin pudieron encontrar una memoria buena pero me he dado cuenta que el kernel panic continua, pero "UNICA Y EXCLUSIVAMENTE con archivos de Flash donde use componentes UI". He tratado de usar la máquina intensivamente por el mayor tiempo posible sin usar ningún componente de flash y nunca me da kernel panic, sin embargo, creo un archivo nuevo de Flash, le añado algunos componentes, lo salvo y a los minutos me sale la pantalla con los idiomas (kernel panic). En cambio, uso Flash de cualquier manera sin componentes y no pasa nada, todo perfecto. Igual con cualquier otro programa.
He reinstalado el Flash y continua el problema, y hace poco formatie el disco pensado que era algo corrupto en el sistema despues de tantas colgadas, pero poco a poco fuí encontrando un patrón de conducta para detectar la causa y fue como llegué al Flash y el uso de los componentes.
Luego, leyendo los Logs de la máquina me di cuenta que al abrir Flash se registran 2 errores en el log del sistema:
// -----------------------------------------------
Nov 21 13:05:00 localhost /Applications/Macromedia Flash MX 2004/Flash MX 2004/Contents/MacOS/Flash: *** Warning: ATSUSetFontFallbacks has been deprecated. Use ATSUFontFallbacks objects instead. ***
Nov 21 13:05:04 localhost /Applications/Macromedia Flash MX 2004/Flash MX 2004/Contents/MacOS/Flash: *** Warning: ATSUMeasureText has been deprecated. Use ATSUGetUnjustifiedBounds instead. ***
// -----------------------------------------------
Alguien por favor podría verificar si al abrir el Flash le sale el mismo error? lo puede ver en la utilidad "Console" en Applications/Utilities, luego seleccionan arriba a la izquierda "Logs" y despues "System.log". Esto debe ser abriendo el Flash por primera vez despues de reiniciar o si ya lo tienen abierto lo deben buscar hacia arriba en el mismo registro.
// -----------------------------------------------
Daniel, disculpa que desvie un poco el tema y use tu blog para hacer esta consulta, pero es algo que me tiene verde y si continua voy a tener que llevar la máquina de nuevo a la tienda.
Saludos y gracias de antemano!
te dire que yo donde trabajaba teniamos dos g5 de hace como 8 meses, y no nos dieron problemas.
Ya checaste en macromedia?
Luego traen info acerca de los bugs en sistemas operativos. Y es raro que te pase unicamente con los componentes. La verdad ni idea, lamento no poderte ayudar.
saludos!!
Una ves en FFW le pregunte a Niguel ( el ingeniero de macromedia que hizo los componentes ) por que no ponían los componentes en el player y el me dijo que no los ponen por que agregaría mucho peso al player pero ademas por que seria muy difícil mantener las diferentes versiones. Por ejemplo si los hubieran puesto desde el comienzo ahora el player estaría compuesto por dos versiones de componentes. Estas son librerias que no se pueden borrar y habría que mantener siempre ya que quizá varias swf dejarían de andar por que usan diferentes versiones de los componentes.
Saludos
El problema podria surgir si desean desarrollar un nuevo Framework cuando salga una nueva version del Flash Player (version, mas no update) como paso del 6 al 7, donde muchos metodos se transformaron en propiedades getter/setter o que se cambio el modelo de eventos. Aqui en teoría se deberia desarrollar un Framework muy claro y estable.
Lo de expresiones regulares me gusta mucho, porque asi se evita la validacion en el servidor. XPath me parece recordar que es una libreria para permitir que los XML manejen la capacidad de usar Links o cosas asi? o ese era XLink?
saludos!!
estaba leyendo el articulo y hiciste referencia a la página de nomaster, la he estado tratando de visitar y no puedo entrar porque me solicita autentificación , nombre de usuario y contraseña, cual si quisiera entrar via ftp.
tienes idea de porque?