royale flex actionscript

flex - apache royale



¿Es una mala idea deshacerse del mx: en su código Flex? (6)

Creo que eliminar el espacio de nombres de mx casi seguramente causará problemas con los conflictos de nombres a medida que su proyecto se agranda.

Personalmente, creo que el espacio de nombres de mx hace que el código sea más claro en lugar de estar más desordenado, especialmente si tiene un desarrollo flexible basado en componentes o muchos de sus propios controles. Después de haber tenido una gran base de código flexible durante los últimos dos años, el espacio de nombres de mx es discreto, especialmente cuando tienes objetos personalizados incrustados en línea, como los representadores de elementos.

Mi recomendación (sin fundamento científico) es tolerarla, especialmente si se encuentran problemas al eliminarla. Apuesto a que dejarás de notarlo después de un tiempo.

Soy un novato en Flex, y no me gusta la forma en que debe escribir el espacio de nombres mx: para cada declaración de control que escribe. Hace el código desordenado. Me gustaría escribir:

<Panel ...

más bien que

<mx:Panel ...

Intenté escribir

xmlns="http://www.adobe.com/2006/mxml"

para el elemento de nivel superior en lugar de

xmlns:mx="http://www.adobe.com/2006/mxml"

En la declaración de nivel superior. Esto funciona hasta cierto punto, pero rompió algunos códigos existentes. Por un lado, los datos XML que se definen en el documento están todos anexados con aaa: como el espacio de nombres durante el tiempo de ejecución. También noté otros problemas en mi muy pequeño programa de muestra.

¿Hay alguna forma de hacer esto que funcione o es una causa perdida? Y alguna información de fondo sobre por qué sería apreciada.

Actualización: Gracias a todos por las respuestas, pero me gustaría haber escuchado a alguien que realmente lo intentó y pensó que era importante. Aunque la mayoría de ustedes me dijeron que era una mala idea, no me desanimé. Tengo un par de programas trabajando de esta manera sin problemas ahora. Y planee hacer esto en todas mis aplicaciones flexibles. Un truco pareció funcionar para mí, aunque no puedo afirmar que funcionará universalmente. Si necesita espacios de nombres separados dentro de su documento, tome, por ejemplo, los parámetros de HTTPService, podría crear un espacio de nombre dentro de ese elemento como ese:

<HTTPService id="service" url="http://blah.com" method="POST" result="gotResult(event)"> <request xmlns:p="*"> <p:param1>p1</p:param1> <p:param2>p2</p:param2> </request> </HTTPService>

Espero que esto ayude a alguien. Estoy muy contento con lo limpio que está mi código ahora, casi tan limpio como un archivo html normal. En cuanto a las personas que piensan escribir mx: a lo largo de su código es más claro y lo que no, estoy en total desacuerdo. Creo que los lenguajes que requieren que repita la misma secuencia de caracteres de manera excesiva en su código, que debería considerar un documento, tienen defectos de diseño. Aquí hay una analogía para ti: ¿cómo te gustaría si estuvieras leyendo un artículo sobre Barack Obama, y ​​cada oración contenía las palabras ''Barack Obama'', eso sería bastante pesado, ¿no?


Necesita el mx o algunos xmls: [ALGO AQUÍ] porque ese es el espacio de nombres XML que se refiere a la definición de los controles. Es como usar espacios de nombres en el código normal.

Solo escribir el Panel es ambiguo y podría entrar en conflicto con la implementación del Panel por parte de otra persona. Por lo tanto, declaramos a Flex qué espacio de nombre pertenece el Panel ( http://www.adobe.com/2006/mxml ) y lo alias con mx.

Microsoft WPF XAML requiere esto también.


Solo para ser la voz de la disensión ...

Al profundizar en el código de Ely Greenfields , lo hace mucho: no estoy seguro de si los otros desarrolladores del equipo de Flex SDK lo hacen, pero da cierta credibilidad al argumento por hacerlo ... ¿verdad?


Estoy de acuerdo con la mayoría de las otras respuestas aquí, es mejor dejarlo. Eventualmente, querrás usar otros espacios de nombres para cosas como componentes personalizados y necesitarás un espacio de nombres para hacer la distinción. Entonces tendrá algunos con un espacio de nombres y algunos sin.

Yo diría que si por alguna otra razón, lo dejas porque algún día alguien más tendrá que mirar tu código y probablemente lo encuentren mucho más legible con el mx que sin él.


El mx: es solo una manera de decirle a Flex que el Panel (junto con cualquier otro componente) forma parte del marco Flex, que está integrado en Flex. Esto ayuda a Flex a saber dónde buscar el Panel y hará que su proceso de compilación sea más rápido.

También puede usar local: para acceder a los componentes que USTED creó. Ejemplo: si deseo agregar alguna funcionalidad a mi Panel, escribiré un código y lo guardaré como un Panel personalizado, denominado MyPanel. Les puedo decir a Flex que MyPanel es mi componente y que puede encontrarlo en algún lugar de mi proyecto. Por supuesto, puedes ponerle el nombre que quieras :-)

Estoy de acuerdo con usted en que el mx: se ve desagradable al principio, especialmente cuando ya tiene una sólida base en HTML o XML, pero se acostumbrará.


Tenga en cuenta que si está desarrollando aplicaciones que deberían ejecutarse en todo tipo de plataformas, incluidos los dispositivos móviles, es mejor seguir utilizando la chispa pura en la medida de lo posible, ya que es compatible con la mayoría de los dispositivos móviles en la actualidad. Hay casos en que uno se ve obligado a usar un control mx como un acordeón, por ejemplo. En este caso, si tiene tiempo para implementarlo, es aconsejable usar las herramientas o los controles básicos en chispa para crear estos controles más avanzados o complicados para usar en su lugar.