`

Flex 学习小结(13)

阅读更多

1 区域性图表
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;

// 创建数组集合,用于图表数据源
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Month:"一月", Profit:2000, Expenses:1500, Amount:450},
{Month:"二月", Profit:1000, Expenses:200, Amount:600},
{Month:"三月", Profit:1500, Expenses:500, Amount:300}
]);
]]>
</mx:Script>
<mx:Panel title="Area Chart">
<!-- 创建 AreaChart 图表 -->
<mx:AreaChart id="myChart" dataProvider="{expenses}"
showDataTips="true">
<mx:horizontalAxis>
<mx:CategoryAxis
dataProvider="{expenses}"
categoryField="Month"
/>
</mx:horizontalAxis>
<mx:series>
<mx:AreaSeries
yField="Profit"
displayName="利润"
form="curve"
/>
<mx:AreaSeries
yField="Expenses"
displayName="费用"
form="curve"
/>
</mx:series>
</mx:AreaChart>
<mx:Legend dataProvider="{myChart}"/>
</mx:Panel><![CDATA[
import mx.collections.ArrayCollection;

// 创建数组集合,用于图表数据源
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Month:"一月", Profit:2000, Expenses:1500},
{Month:"二月", Profit:1000, Expenses:200},
{Month:"三月", Profit:1500, Expenses:500}
]);
]]>
</mx:Script>
<mx:Panel>
<!-- 创建 BarChart 图表 -->
<mx:BarChart id="myChart" dataProvider="{expenses}">
<mx:verticalAxis>
<mx:CategoryAxis
dataProvider="{expenses}"
categoryField="Month"
/>
</mx:verticalAxis>
<mx:series>
<mx:BarSeries
yField="Month"
xField="Profit"
displayName="利润"
/>
<mx:BarSeries
yField="Month"
xField="Expenses"
displayName="费用"
/>
</mx:series>
</mx:BarChart>
<mx:Legend dataProvider="{myChart}"/>


2 BAR类型的图表
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;

// 创建数组集合,用于图表数据源
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Month:"一月", Profit:2000, Expenses:1500},
{Month:"二月", Profit:1000, Expenses:200},
{Month:"三月", Profit:1500, Expenses:500}
]);
]]>
</mx:Script>
<mx:Panel>
<!-- 创建 BarChart 图表 -->
<mx:BarChart id="myChart" dataProvider="{expenses}">
<mx:verticalAxis>
<mx:CategoryAxis
dataProvider="{expenses}"
categoryField="Month"
/>
</mx:verticalAxis>
<mx:series>
<mx:BarSeries
yField="Month"
xField="Profit"
displayName="利润"
/>
<mx:BarSeries
yField="Month"
xField="Expenses"
displayName="费用"
/>
</mx:series>
</mx:BarChart>
<mx:Legend dataProvider="{myChart}"/>
</mx:Panel>
3 线条型
<![CDATA[
import mx.collections.ArrayCollection;
// 创建一个数组并填充数据
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Month:"1月", Profit:2000, Expenses:1500,

Amount:450},
{Month:"2月", Profit:1000, Expenses:200,

Amount:600},
{Month:"3月", Profit:1500, Expenses:500,

Amount:300}
]);
]]>
</mx:Script>

<mx:Panel title="线型图表">
<!-- 创建 LineChart 图表 -->
<mx:LineChart id="myChart" dataProvider="{expenses}" showDataTips="true">
<mx:horizontalAxis>
<mx:CategoryAxis dataProvider="{expenses}"

categoryField="Month" />
</mx:horizontalAxis>
<mx:series>
<mx:LineSeries yField="Profit" displayName="利润" />
<mx:LineSeries yField="Expenses" displayName="费用" />
</mx:series>
</mx:LineChart>
<mx:Legend dataProvider="{myChart}" />
</mx:Panel>
4 设置datachooser控件的中文显示
<mx:Script>
<![CDATA[
private function InitDataChooser():void
{
// 设置月份名称
var arrMonthName:Array =
["一月", "二月", "三月", "四月", "五月", "六月",
"七月", "八月", "九月", "十月", "十一月", "十二月"];

// 设置周名称
var arrWeekName:Array = ["星期日", "星期一", "星期二",
"星期三", "星期四", "星

期五", "星期六"];

dc1.monthNames = arrMonthName;
dc1.dayNames = arrWeekName;
}
]]>
</mx:Script>
<mx:DateChooser id="dc1" x="151" y="86" creationComplete="InitDataChooser()"/>

5 在一个FLEX中访问另外一个FLEX程序,并修改之
child.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Label id="lblShow" text="这是已加载的SWF文件中的控件" fontSize="20" x="1" y="0"/>
</mx:Application>

main.mxml:
<mx:Script>
<![CDATA[
import mx.managers.SystemManager;

private var loadedSM:SystemManager;

// 初始化SWF文件,并把其内容赋给 SystemManager 对象
private function InitSWFApp():void
{
loadedSM = SystemManager(myLoader.content);
}

// 获取SWF文件中 Label 控件的 text 属性
private function GetSWFLabel():void
{
lbl.text = loadedSM.application["lblShow"].text;
}

// 修改SWF文件中 Label 控件的 text属性
private function UpdateSWFLabel():void
{
loadedSM.application["lblShow"].text = "这是更新后的文字。";
}
]]>
</mx:Script>

<mx:Label id="lbl" x="203" y="62"/>
<mx:SWFLoader id="myLoader" width="300" source="ChildApp.swf" x="10" y="10"
creationComplete="InitSWFApp();"/>
<mx:Button click="GetSWFLabel();" x="10" y="60" label="获取SWF文件中的Label控件"/>
<mx:Button label="修改SWF文件中的Label控件" click="UpdateSWFLabel();" x="10" y="90"/>
6 对颜色面版自定义
import mx.events.ColorPickerEvent;
import mx.events.DropdownEvent;

// 创建数组,并填充颜色相关数据
[Bindable]
public var complexDPArray:Array = [
{label:"黄色", color:"0xFFFF00",
descript:"黄色"},
{label:"粉色", color:"0xFF66CC",
descript:"粉色"},
{label:"深红色", color:"0x990000",
descript:"深红色"},
{label:"蓝色", color:"0x000066",
descript:"蓝色"},
{label:"深绿色", color:"0x006600",
descript:"深绿色"},
{label:"褐色", color:"0x666666",
descript:"褐色"}];
]]>
</mx:Script>

<mx:ArrayCollection id="complexDP" source="{complexDPArray}"/>
<mx:ColorPicker id="cp" dataProvider="{complexDP}" editable="false" x="23" y="19"/>

7 titlewindow
要弹出的窗口:
import mx.managers.PopUpManager;

// 关闭窗口
private function closeWindow():void
{
// 移除窗口对象
PopUpManager.removePopUp(this);
}
]]>
主窗口:
import mx.managers.PopUpManager;

// 按钮单击事件
private function btnOpenWnd_click():void
{
// 弹出新窗口
PopUpManager.createPopUp(this, MyTitleWindow, false);
}
]]>
在弹出窗体中向主窗体传递数据:
<![CDATA[
import mx.managers.PopUpManager;

// 创建窗体对象
private var pop:MyTitleWindow;
// 按钮单击事件
private function btnLoginWnd_click():void
{
// 创建弹出窗体
pop = MyTitleWindow(PopUpManager.createPopUp(this,

MyTitleWindow, false));
// 设置弹出窗体是否显示关闭按钮
pop.showCloseButton = true;
// 弹出窗体按钮单击事件
pop.btnLogin.addEventListener(MouseEvent.CLICK,

btnLogin_click);
}

// 登录按钮单击事件
private function btnLogin_click(e:MouseEvent):void
{
// 返回登录名并设置文本标签内容
lbUser.text = "登录名:" + pop.userName.text;
// 移除弹出窗体
PopUpManager.removePopUp(pop);
}
]]>

8 在两个不同的viewstack中传递值
首先用一个单例来临时保存数据
public class ViewModelLocator
{
private static var instance:ViewModelLocator;

public function ViewModelLocator()
{
}

public static function getInstance() : ViewModelLocator
{
if (instance == null)
{
instance = new ViewModelLocator();
}

return instance;
}


public var param : String;
第一个viewstack:

<![CDATA[
import mx.controls.Alert;
import mx.containers.ViewStack;

private function btnPass_click():void
{
var modelLocator:ViewModelLocator =

ViewModelLocator.getInstance();
modelLocator.param = txtParam.text;

(ViewStack)(this.parent).selectedChild =
(ViewStack)(this.parent).getChildByName

("viewValue");
}
]]>
第二个viewstack:
<mx:Script>
<![CDATA[
[Bindable]
private var modelLocator:ViewModelLocator =

ViewModelLocator.getInstance();

private function initApp():void
{
lbParam.text = "传递过来的参数值:" + modelLocator.param;
}
]]>
</mx:Script>

9 手工拖放控件
<![CDATA[
import mx.core.DragSource;
import mx.managers.DragManager;
import mx.events.*;
import mx.containers.Canvas;

private function mouseMoveHandler(event:MouseEvent):void
{
// 获取拖放的源组件
var dragInitiator:Canvas = Canvas(event.currentTarget);
// 获取组件的颜色值
var dragColor:int = dragInitiator.getStyle('backgroundColor');
// 创建一个 DragSource 对象.
var ds:DragSource = new DragSource();
// 添加数据到对象中
ds.addData(dragColor, 'color');
// 调用 DragManager 类的 doDrag() 方法
DragManager.doDrag(dragInitiator, ds, event);
}

private function dragEnterHandler(event:DragEvent):void
{
// 判断源的数据格式
if (event.dragSource.hasFormat('color'))
{
// 获取目标对象
var dropTarget:Canvas = Canvas(event.currentTarget);
// 接受拖放
DragManager.acceptDragDrop(dropTarget);
}
}

private function dragDropHandler(event:DragEvent):void
{
var data:Object = event.dragSource.dataForFormat('color');
// 设置颜色.
myCanvas.setStyle("backgroundColor", data);
}
]]>
</mx:Script>
<!-- 可以拖放两种颜色的箱子. -->
<mx:VBox x="29" y="23">
<mx:HBox>
<mx:Canvas
width="30" height="30"
backgroundColor="red"
borderStyle="solid"
mouseMove="mouseMoveHandler(event);"/>
<mx:Canvas
width="30" height="30"
backgroundColor="green"
borderStyle="solid"
mouseMove="mouseMoveHandler(event);"/>
</mx:HBox>
<!-- 使用 dragEnter and dragDrop 事件允许拖放. -->
<mx:Canvas id="myCanvas"
width="100" height="100"
backgroundColor="#FFFFFF"
borderStyle="solid"
dragEnter="dragEnterHandler(event);"
dragDrop="dragDropHandler(event);"/>
<mx:Button id="b1"
label="清空"
click="myCanvas.setStyle('backgroundColor', '0xFFFFFF');"/>
</mx:VBox>
10 创建自定义tooltip
import mx.managers.ToolTipManager;
import mx.controls.ToolTip;

public var myTip:ToolTip;

// 鼠标经过事件
private function createBigTip():void
{
var s:String = "这些按钮可以保存、应用、取消执行的操作。"
// 创建ToolTip对象
myTip = ToolTipManager.createToolTip(s,10,10) as ToolTip;
// 设置ToolTip对象样式
myTip.setStyle("backgroundColor",0xFFCC00);
myTip.setStyle("fontSize",12);
// 设置ToolTip对象宽度和高度
myTip.width = 250;
myTip.height = 30;
}

// 鼠标移除事件
private function destroyBigTip():void
{
// 销毁ToolTip对象
ToolTipManager.destroyToolTip(myTip);
}
]]>

11 FLASH-BRIDGE桥
创建FLEX项目后,选择create ajax bridge,创建flex-ajax桥
FLEX中:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"

xmlns:ns1="bridge.*">
<ns1:FABridge bridgeName="b_main"/>
<mx:Image id="imgPhoto" source="assets/1.jpg" effectStart="" effectEnd=""/>
</mx:Application>
HTML页中:
<input type="button" value="第一张" onclick="btn_click('1')" />
<input type="button" value="第二张" onclick="btn_click('2')" />
<script type="text/javascript">
function btn_click(num)
{
var initCallback = function()
{
var flexApp = FABridge.b_main.root();
// 设置Flex中控件的值
flexApp.getImgPhoto().setSource("assets/" + num + ".jpg");
}

FABridge.addInitializationCallback("b_main", initCallback);
}
</script>

分享到:
评论

相关推荐

    flex 学习网址

    #### 小结 以上就是针对“flex 学习网址”的五个推荐资源。这些资料涵盖了Flex从基础知识到进阶技巧、再到实战案例的完整学习路径。无论是初学者还是有一定经验的开发者都能从中受益匪浅。希望各位通过阅读这些内容...

    FLEX从入门到精通.pdf

     1.4 本章小结  第2章 Flex3生态系统  2.1 Flex历史简介  2.2 Adobe Flex3生态系统,  2.2.1 运行时  2.2.2 语言  2.2.3 框架和API  2.2.4 数据通信  2.2.5 服务器  2.3 Adobe Flex RIA工作...

    Flex中文帮助文档

    总的来说,这个压缩包提供的资料是一份全面的Flex学习资源,不仅覆盖了Flex的基础知识,还包含了实际项目开发的经验分享,对于想要深入理解和应用Flex的开发者来说,具有很高的参考价值。通过阅读和实践这些文档,...

    如何在Flex中使用profile的教程

    #### 七、小结 Adobe Flex Profiler是开发者进行Flex应用性能分析的重要工具。通过本教程的学习,相信您已经掌握了如何使用Adobe Flex Profiler的基本流程。希望这些信息能够帮助您更好地理解并优化您的Flex应用...

    flex中tree的数据源是xml

    #### 小结 通过以上步骤,我们可以清晰地看到从数据库查询到生成XML文件的整个过程。这种方式不仅实现了数据的有效管理和传递,还极大地提高了Flex应用程序的灵活性和性能。对于开发者而言,掌握这种方法有助于更好...

    Maven构建全栈式Flex、BlazeDS和Spring集成解决方案–第一部分_创建Maven_Flex模块

    #### 四、小结 通过上述步骤,我们可以成功构建一个完整的Flex、BlazeDS和Spring集成解决方案。这一集成方案不仅能够实现前端Flex与后端Spring的有效通信,还能够利用BlazeDS提供的远程服务功能,使得整个系统的...

    flex的mxml语言基础

    **小结** 总的来说,Flex项目由MXML和ActionScript协同完成,MXML负责界面展示,ActionScript负责逻辑处理。命名空间作为类的组织方式,避免了类名冲突。掌握MXML的基础知识,对于高效开发Flex应用至关重要。通过...

    关于打地鼠的Flex代码

    #### 小结 该Flex代码示例展示了如何使用Flex框架来实现一个简单的打地鼠游戏。通过对变量的管理和事件处理的合理安排,不仅确保了游戏逻辑的清晰性,还提高了用户体验。对于学习Flex编程的新手来说,这是一个很好的...

    Flex从入门到实践2

    5. **小结与习题** 本章总结了导航组件的关键应用,强调了视图间的切换方法,并提出了几个关于如何使用这些组件设计导航的问题,以供读者巩固学习。 接下来,我们转向菜单设计。菜单是功能导航的重要组成部分,...

    Wiley.Adobe.Flash.Builder.4.and.Flex.4.Bible.Apr.2010.rar

    每个章节结尾通常会有小结和练习题,帮助巩固学习成果。对于想要深入掌握Flash Builder 4和Flex 4的开发者来说,这是一本不可多得的参考书。 总之,《Wiley Adobe Flash Builder 4 and Flex 4 Bible》涵盖了Flash ...

    CSS3小结

    **CSS3小结** 在网页设计领域,CSS3(Cascading Style Sheets Level 3)是HTML和XML文档样式表语言的最新版本,它极大地扩展了CSS2.1的功能,引入了许多新的特性和改进,使得网页设计更加丰富多彩,更具表现力。本...

    Web前端技术项目式教程(HTML5 CSS3 Flex Bootstrap)教案-美化网页.pdf

    4. **任务小结**:总结本课内容,巩固所学知识。 【教学资源】 1. **装有SublimeText3的电脑**:提供编写和测试代码的环境。 2. **教学课件PPT**:辅助教学,展示实例和讲解内容。 3. **教材**:《Web前端技术项目...

    AS3学习笔记flashdevelop平台搭建配置.pdf

    7. 小结 本学习笔记对FlashDevelop平台的搭建和配置进行了详细的介绍,并对其中涉及到的知识点进行了详细的解释。通过本学习笔记,读者可以快速掌握FlashDevelop平台的使用和配置,提高Flash项目的开发效率。

    css网页布局中注意的几个问题小结

    以下是对"css网页布局中注意的几个问题小结"的详细解释: 一、避免使用不常见的CSS属性和技巧 一些特殊的CSS属性如`break-word`用于强制换行,`z-index`用于元素的层叠顺序,以及各种垂直对齐方法,虽然在某些情况...

    bootstrap总结与例子

    24. **响应式工具** (`responsive utilities`): `.d-none`, `.d-block`, `.d-table`, `.d-flex` 等响应式类根据屏幕尺寸显示或隐藏元素。 25. **自定义Bootstrap**:通过Sass变量和混合功能,可以定制Bootstrap的...

    一波CSS+Div实用技巧小结

    在网页设计中,CSS(层叠样式表)和Div元素是构建页面布局的重要工具。本文主要总结了一些关于CSS+Div的实用技巧,旨在帮助开发者提高工作效率,优化...在实际开发中,不断学习和实践新的CSS技术是保持竞争力的关键。

    Maven权威指南 很精典的学习教程,比ANT更好用

    小结 4. 定制一个Maven项目 4.1. 介绍 4.1.1. 下载本章样例 4.2. 定义Simple Weather项目 4.2.1. Yahoo! Weather RSS 4.3. 创建Simple Weather项目 4.4. 定制项目信息 4.5. 添加新的依赖 4.6. ...

    CSS布局最常见的八条错误小结

    了解并掌握clear、display:flex或grid布局方法,可以更有效地管理元素的定位。 通过深入理解这些常见错误及其解决方案,开发者能够编写出更加高效、稳定且易于维护的CSS布局代码,从而提高网站的用户体验。定期检查...

Global site tag (gtag.js) - Google Analytics