第三节关于 Flash Player安全性方面的问题
出于安全方面的考虑,在客户端的 Flash Player中运行的应用程序,只有在满足如下条件之一的情况时才能访问远程的数据源,:
1. 应用程序所编译的 SWF文件与远程数据源位于同一个域中。
2. 使用代理( proxy),并且你的 SWF文件位于和代理相同的服务器上。 Adobe Flex Data Services为 Flex应用程序提供了一个完整的代理管理系统。同时,你还可以通过使用一种 web脚本语言,如 ColdFusion、JSP、PHP或者 ASP来创建一个简单的代理服务。
3. 安装 crossdomain.xml(跨域策略 /cross-domain policy)文件在数据源的宿主 Web服务器上。 crossdomain.xml文件允许位于其它域中的 SWF文件对数据源的访问。
第四节为 Flex应用程序设计界面布局
让我们来详细分析一下前面那个 “Say Hello to Flex“的简单例子,你可以通过设置组件的属性值来控制 Flex应用程序的界面布局,就象如下所示:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Panel layout="absolute" width="80%" height="80%"> <mx:TextArea text="Say hello to Flex!" top="10" bottom="70" left="10" right="30"/> <mx:Button label="Close" right="30" bottom="40"/> </mx:Panel> </mx:Application>
许多容器组件都允许以绝对坐标的方式创建布局,这就意义着你可以使用精确的 x和 y的坐标来放置组件。你还可以对应其父容器的相对位置来放置组件并约束它们,使它们在应用程序的界面放大或缩小时仍然保持其彼此的位置。
在这个例子中,面板 /Panel组件的
布局属性被设置为绝对值方式,同时所有容器的大小都被设置为应用程序的百分之八十。两个组件( TextArea和 Button)被放置到距离面板容器边界的特定象素位置上。
使用风格和主题增强视觉方面的设计
如果样式 /style的属性值没有被指定,它们将由整个程序中运行的主题 /theme来进行控制。在默认情况下, Flex应用程序使用 Halo主题(就象上面那个例子那样)。当然,你可以修改默认的主题或者干脆自己创建一个。你还可以简单地指定新的样式定义来改变默认的主题样式,就象这样:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Style>
TextArea {
font-size: 36px;
font-weight: bold;
}
</mx:Style>
<mx:Panel layout="absolute" width="80%" height="80%" x="122" y="24"> <mx:TextArea text="Say hello to Flex!" top="10" bottom="70" left="10" right="30"/>
<mx:Button label="Close" right="30" bottom="40"/> </mx:Panel> </mx:Application>
通过明确地为 TextArea组件定义一个样式,应用程序现在看起来就会象这样了:
在这个例子中,一种新样式在 MXML文件中的 <mx:Style>标签里进行了定义。如同我们前面所提到过的,你还可以通过修改主题或应用新主题、使用一个外部 CSS文件、或者设置单独的样式属性来达到设置新样式的目的。
将一个样式单导入到 MXML文件中,你需要添加如下的代码: <mx:Style source="styles.css" />