flex中读取本地文件[图像为例]
经常会设计一个这样的功能,比如更改个性头像,这个个性头像最终需要上传到服务器的文件系统中,但是程序希望在用户选择后直接有个预览,然后用户才进行上传。这个功能技术上其实就是需要对本地的文件能进行读取。在flash player10中有个类FileReference的类可以实现这个功能,而实现对文件读取的接口是load( )函数,要注意的是: a、这个函数只能在UI操作中使用,比如用户按下按钮。b、加载进来后的本地文件无法在AS中使用 c、这个接口是一个异步的过程,也就不是马上就加载进来,需要加Listener来操作。下面是参考代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import flash.net.FileReference;
import flash.net.FileFilter;
import flash.events.IOErrorEvent;
import flash.events.Event;
private var fr:FileReference;
private var imageTypes:FileFilter;
private function creationCompleteHandler(event:Event):void {
fr = new FileReference();
imageTypes = new FileFilter("Images (*.jpg, *.jpeg, *.png, *.gif)",
"*.jpg; *.jpeg; *.png; *.gif;")
//增加当打开浏览文件后,用户选择好文件后的Listener
fr.addEventListener(Event.SELECT, selectHandler);
}
private function browseHandler(event:Event):void {
//打开浏览文件的dialog
file.browse([imageTypes]);
}
private function selectHandler(event:Event):void {
//增加一个文件加载load完成后的listener
fr.addEventListener(Event.COMPLETE, onLoadComplete);
fr.load(); //加载用户选中文件
}
相关文档:
这一次的Flex 实践将要实现以下功能:
1、自定义一个简单的 Flex 组件
2、创建一个Index. mxml 来调用该组件
1)用 as 调用组件
&nbs ......
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<!--[CDATA[
import mx.rpc.ev ......
最终我决定还是用“隐藏”这个不是很合适的词。mx_internal是一个自定义命名空间,至于“命名空间”到底是什么就不在这里说了。总之,当我们在代码头部写上:
use namespace mx_internal
(如果是.AS文件,需要手动import mx.core.mx_internal,注意这个不会有代码提示)
那么所有以mx_internal为命 ......
注:第一列是带Checkbox的Tree。
还有问题请教各位:
labelField是元素对象的属性是显示不了(carInfo.car_name),好像只可显示同级的属性怎么解决?希望各位能帮助我,Thanks!
<mx:AdvancedDataGrid id="adg" width="100%" height="100%" dataProvider="{instance.cars}"
&n ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script><!--[CDATA[import mx.collections.ArrayCollection;
public var a1:ArrayCollection = new ArrayCollection ([{ Region:"Region1",Territory:"Territory1",Ter ......