air*_*tyh 3 apache-flex actionscript
我是Flex的新手,我不喜欢你编写命名空间mx的方式:为你编写的每个控件声明.它使代码变得杂乱无章.我想写:
<Panel ...
Run Code Online (Sandbox Code Playgroud)
而不是
<mx:Panel ...
Run Code Online (Sandbox Code Playgroud)
我试着写作
xmlns="http://www.adobe.com/2006/mxml"
Run Code Online (Sandbox Code Playgroud)
对于顶级元素而不是
xmlns:mx="http://www.adobe.com/2006/mxml"
Run Code Online (Sandbox Code Playgroud)
在顶级声明中.这项工作在一定程度上,但打破了一些现有的代码.例如,文档中定义的XML数据都附加了aaa:作为运行时的命名空间.我还注意到我的小样本程序中的其他问题.
有没有办法做到这一点,或者这是一个失败的原因?以及有关为什么会受到赞赏的一些背景信息.
更新:感谢所有回复,但我希望听到一些人真正尝试过这个并认为这很重要.虽然你们大多数人告诉我这是一个坏主意,但我并没有气馁.我现在顺利地以这种方式工作了几个程序.并计划在我的所有flex应用程序中执行此操作.一个技巧似乎对我有用,虽然我不能说它会普遍起作用.如果您需要在doc中使用单独的命名空间,例如,使用HTTPService参数,您可以在该元素中创建一个命名空间,如下所示:
<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>
希望这有助于某人.我对我的代码现在的干净程度非常满意,几乎和普通的html文件一样干净.至于那些认为写mx的人:在整个代码中更清楚,什么不是,我完全不同意.我认为要求你在代码中过度重复相同字符序列的语言 - 你应该考虑一个文档 - 有设计缺陷.这里有一个类比:如果你正在读一篇关于巴拉克奥巴马的文章,你会喜欢它吗?每一句话都包含"巴拉克奥巴马"的字样,那会不会很烦人?
我认为删除mx命名空间几乎肯定会因为项目变大而导致名称冲突.
我个人认为mx命名空间使代码更清晰而不是更混乱,特别是如果你有基于组件的flex开发或许多你自己的控件.在过去的两年里,我拥有一个大型的灵活代码库,我发现mx名称空间不引人注目,特别是当你有内嵌的自定义对象时,例如项目渲染器.
我的建议(非科学断言)是忍受它,特别是如果你在删除它时发现问题.我打赌你会在一段时间后停止注意它.