可以在Flex应用程序中嵌入各种元素。被嵌入的元素将编译进SWF文件。它们不是在运行时载入的,所以不必为应用程序部署原元素。
可以嵌入的图像格式有PNG、JPEG、GIF。嵌入后可以同时使用它的多个实例。
下面的例子使用[Embed]原标签经image嵌入应用程序,并且采用绑定ActionScript类的形式。这就可以绑定Image控件的source属性到Logo类。可以绑定Logo类到任何可以使用image的组件属性上,比如Button控件的icon属性。
例子:
<?xml version="1.0" encoding="utf-8"?>
<!-- http://yecon.blog.hexun.com/29628260_d.html -->
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL="src/EmbeddingImages/index.html"
layout="horizontal" width="350" height="250">
<mx:Script>
<![CDATA[
[Embed(source=&q ......
1、ButtonBar组件:
firstButtonStyleName: "mybuttonBarFirstButtonStyle"; //第一个按钮的样式
lastButtonStyleName: "mybuttonBarLastButtonStyle";//最后一个按钮的样式
buttonStyleName: "mybuttonBarButtonStyle";//ButtonBar中其它按钮的样式 ......
经常在Demo中会看到列表,表格等方式来显示数据。当然有时候也需要添加数据到这些列表或者表格中。有很多方式提交,这里展示一个弹出窗口的方式来添加新的数据到DataGrid中。
例子展示:
首先,我们开始建设一个基本的界面结构,一个带有“Notes"标题的Panel,一个DataGrid,以及一个用于提交数据的按钮。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="500" height="300">
<mx:Panel title="Notes"
width="100%" height="100%"
layout="vertical" horizontalAlign="right"
paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3">
<mx:DataGrid width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
<mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
<mx:DataGridColumn headerText="Description" dataField="description"/>
......
这样的陷阱,谁能不中招?
Flex的setter大家都用过吧,看例子:
主程序:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
function init():void{
var c:Card = new Card;
c.count=0;
}
]]>
</mx:Script>
</mx:Application>
Card.as:
package
{
import flash.events.EventDispatcher;
[Bindable]
public class Card extends EventDispatcher
{
private var _count:int=0;
public function get count():int{
return _count;
}
public function set count(n:int):void{
trace("Card count setter called");
this._count=n;
}
}
}
够简单吧,陷阱已经出现。
setter不能被调用!
如果把[Bindable]去掉,就可以了。
为什么呢?
纯BUG!
大概是因为[Bindable]属性的setter是依据 PropertyChangeEvent 驱动的,由于此例的默认值是0,赋值操作也是0,就干脆不调用了。
害了我一个小时啊!
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Simple example to demonstrate the Application container. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundGradientColors="[0xCCCCCC, 0x66CCFF]"
backgroundColor="0xCCCCCC"
horizontalAlign="center" verticalAlign="center"
applicationComplete="appComplete();">
<mx:Script>
<![CDATA[
// Event handlers for the components.
private function appComplete():void {
myTA.text+="Application creation complete" + "\n";
&nb ......
这里分两种情况,一种是数据源在MXML文件中,如:
<mx:XML id="treeXML" format="e4x">
<root>
<node label="通知通告管理" data="0">
<node label="申报通知" data="1" />
<node label="填表须知" data="1" />
<node label="申报指南" data="1" />
<node label="立项通告" data="1" />
<node label="其它通知通告" data="1" />
<node label="系统帮助" data="1" />
</node>
<node label="用户管理" data="0">
<node label="申报单位用户管理" data="2" />
<node label="归口部门用户管理" data="3" />
<node label="审批用户管理" data="4" />
</node>
<node label="系统设置" data="0">
<node label="部门设置" data="5" />
<node label="项目类别设置" data="5" />
......