Fex3新建mxml文件时默认元素的理解!

当我们新建一个工程,新建一个mxml文件,ide会默认的给你加上两行代码,如下:

  
   <?xml version="1.0" encoding="utf-8"?>
   <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
   </mx:Application>  

   理解如下:

   1,第一行,因为mxml是标准的xml语言,而这行是xml的文档类型声明,所以mxml必须包含这些

   2,第二行,分几部分:

        首先,mx:Application这个表示外层容器,也是就是flex应用程序所有内同的拥有者,一个flex应用程序只能有一个mx:Application

        其次,xmlns:mx="http://www.adobe.com/2006/mxml"  此定义了flex标签所在的命名空间,此代码定义了mx前缀与一组标签相关联。该属性值是xml属于中得URI(统一资源标示符)。在flex-config.xml等配置文件中,会将该uri与所谓的清单文件相关联,该清单文件包含了所有使用mx前缀的合法标签,清单文件位于:D:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\mxml-manifest.xml

        说到这里,不得不提到另一个概念,那就是命名空间。何为命名空间?我的理解是:

        一个人写的定义的变量和另一个人定义的变量如果相同,该如何区别呢?也许你会说,我们写代码互不相关,有何不可。但是当我们使用的基本库的变量或者函数的时候要用到某一个函数,而这个函数有重名,这样就不好引用了。命名空间说白了就是自己定义的空间,你可以在里定义你想要的东西。别人想引用你的话,必须先注明使用你命名空间,里面的东西方可使用。

        举个更通俗的例子,比如说“万安”这个地市,在中国有多个“万安”,如果是福建的万安,你必须说明是福建的,那么这个福建就可以理解为命名空间。

         xmlns:mx如何理解?

         xmlns是定义命名空间,mx则是空间名称。

         再举个例子。

         比如在一个文档<table>wood   table</table\>中<table>表示桌子,  
         而在另一个文档<table>namelist</table>中<table>表示表格。如果我需要同时处理这两个文档,就会发生名字冲突。
         为了解决这个问题,我们引进了命名空间这个概念。命名空间通过给标识名称加一个网址(URI)定位的方法来区别这些名称相同的标识。  
         命名空间同样需要在XML文档的开头部分声明,声明的语法如下:  
         <document   xmlns:yourname='URI'>   
         其中yourname是由你定义的命名空间的名称,URI就是名字空间的网址。  
         假设上面的"桌子<table>"文档来自http://www.zhuozi.com,我们就可以声明为  
         <document   xmlns:zhuozi='http://www.zhuozi.com'>  
         然后在后面的标识中使用定义好的名字空间:  
         <zhuozi:table>wood   table</table>
         这样就将这两个<table>区分开来。 

         还有一点你也许会困惑,http://www.adobe.com/2006/mxml这个有什么用,程序回去读取么?

         程序并不是真的要去这里读取什么,只是作为一种标志。



         最后,说下layout="absolute"作用是页面程序如何布局,absolute的作用是需要将该应用程序下所有元素设置x和y坐标

你可能感兴趣的:(Flex)