Flex读取二进制文件
Flex中可用于读取二进制文件的类有四个:ByteArray,FileStream,Socket,URLStream。它们都实现了IdataInput接口,分别位于flash.utils,flash.filesystem,flash.net,flash.net包。需要指出的是,FileStream只适用于AIR项目中。
上述四个类的详细内容和使用方法,请参考Adobe官方文档:ActionScript3.0语言与组件参考:http://www.adobe.com/livedocs/flex/3_cn/。
下附用URLStream读取ESRI的shapfile格式文件的示例,此示例为基于Adobe Flash Builder4开发环境的ActionScript项目。
package
{
import flash.display.Sprite;
import flash.errors.IOError;
import flash.events.*;
import flash.net.URLRequest;
import flash.net.URLStream;
import flash.utils.Endian;
public class ShapeReader extends Sprite
{
private var _stream:URLStream;
public function ShapeReader()
{
this._stream = new URLStream();
this.readfile("http://localhost/data/regionprov_Clip.shp");
}
private function readfile(urlPath:String):void
{
var request:URLRequest = new URLRequest(urlPath);
this._stream.addEventListener(Event.COMPLETE,onComplete);
try
{
this._stream.load(request);
}
catch (error:Error)
{
trace("Unable to load requested URL.");
}
}
private function onComplete(event:Event):void
{
try
{
//.........................Begin of FileHeader
var code:int = this._stream.readInt();//File Code
this._stream.readUTFBytes(5*4);//skip int bytes in number of 5
var length:int = this._stream.readInt();//File Length
this._stream.endian = Endian.LITTLE_ENDIAN;//change byte order
var version:int = this._stream.readInt();//Version
var type:int = this._stream.readInt();//Shape Type
var xMin:Number = this._stream.readDouble();//Xmin
var yMin:Number = this._stream.readDouble();//Ymin
var xMax:Number = this._stream.readDouble();//Xmax
var yMax:Number = this._stream.readDouble();//Ymax
this._stream.readUTFBytes(4*8);// skip double bytes in number of 4
//.........................End of FileHeader
this._stream.close();// close stream
}
catch(error:IOError)
{
trace(error.toString());
}
}
}
}
LookAtYou 2010.8.25
分享到:
相关推荐
在Flex与Java的集成中,通常使用AMF(Action Message Format)进行通信,它是一种二进制的序列化格式,能高效地传输数据。Flex客户端通过 BlazeDS 或 Adobe LiveCycle Data Services 与Java后端服务进行AMF通信,...
首先,由于FlashPlayer本身并不直接支持读取二进制文件如Excel(.xlsx或.xls),我们需要借助第三方库来完成这个任务。一个常用的库是Zap2itLib,它是一个用于处理Office文档的AS3库,包括读取Excel文件。 1. **...
#### 二、Flex的工作原理与应用场景 ##### 2.1 工作原理 Flex的工作流程如下: 1. **定义规则**:用户首先定义一系列正则表达式及其对应的动作。这些规则决定了Flex如何解析输入文本。 2. **生成C代码**:当用户...
当文件加载完成后,`data`属性会包含文件的二进制数据,可以通过`result`事件处理函数获取。 3. **上传文件**: `FileReference`也提供了`upload()`方法,可以将选定的文件上传到服务器。需要指定URL(通常是一个...
用户选择文件后,Flex会将文件数据转换为二进制流,并发送到服务器。 在Java后端,我们可以使用诸如Spring MVC、Struts2等Web框架来接收和处理这些文件数据。Java的Servlet API提供了HttpServletRequest对象,其中...
在Flex中,通常我们不能直接操作二进制的Excel文件,而是需要借助第三方库来解析Excel文件。在这个示例中,使用的库是`as3xls-1.0.swc`,这是一个专门用于读取和写入Excel文件的ActionScript库。将这个库添加到你的...
URLLoader组件用于加载非二进制的文本数据,如XML、JSON等。以下是使用URLLoader读取XML的步骤: (1)导入必要库: ```actionscript import flash.net.URLLoader; import flash.net.URLRequest; import flash....
3. **预编译二进制**:你可以在网上找到预编译的Windows版本的Flex和Yacc二进制文件,直接解压并添加到系统路径即可使用。 在Windows上使用Flex和Yacc的基本步骤如下: 1. 创建词法分析器(lexer):使用Flex编写`...
- **将文件内容存入XML节点**:将读取到的文件内容存入一个二进制数据节点,该节点的数据类型为“bin.base64”。 - **构建XML请求**:将二进制数据节点添加到XML文档的根节点下,形成完整的XML请求。 - **发送XML...
要实现Flex导入Excel文件的功能,通常会涉及到对二进制数据的处理、文件I/O操作以及可能的第三方库使用。以下是对这一主题的详细说明: 1. **文件读取**:在Flex中,可以使用Flash的FileReference类来与本地文件...
"lib"文件夹则可能包含库的二进制文件,即SWC(Shockwave Flash Component)文件,它是Flex库的编译形式,可以直接导入到Flex项目中使用。 总的来说,使用Flex库读取SHP文件并在Google Maps API for Flash上展示,...
1. 数据交换:Flex客户端与Java服务器之间的通信通常通过AMF(Action Message Format)协议进行,这是一种高效的二进制格式,能快速传输数据。 2. 选择文件:Flex应用中,用户可以通过FileReference类来选择本地文件...
完成后,可以通过`data`属性访问文件的二进制数据。 4. 开始上传:使用`FileReference.upload()`方法发起HTTP POST请求到.NET服务器。你需要指定URL(通常是ASP.NET的Web服务或Web API接口)和POST参数。 在.NET端...
选择后,Flex将文件数据转换为二进制流,然后通过HTTP POST请求发送到服务器。Java Servlet接收到POST请求后,解析请求中的文件数据,将其保存到服务器的指定位置。为了支持多文件上传,可以利用HTML5的FormData对象...
通常,这种上传涉及到的数据类型可能是图像、PDF或者其他二进制文件。 从标签“源码”和“工具”来看,我们可以预期这篇博客可能包含实际的代码示例和使用的一些关键工具。在压缩包的文件名中,我们可以找到以下...
生成的C代码编译后,会形成一个二进制执行文件,可以读取输入,识别模式,并按照用户指定的动作进行响应。 Flex的工作原理基于扫描器(lexer)的概念,它会将输入分解成一系列的标记(tokens),然后将这些标记传递...
POST请求可以携带大量数据,非常适合文件上传这种需要传输大量二进制数据的场景。 3. **ASP.NET后端处理**:在ASP.NET端,通常我们需要创建一个HTTP Handler或Web Form来接收和处理上传的文件。使用C#编写代码,你...
在AS3.0中,Flex框架提供了一种强大的方式来处理二进制数据,使得开发者能够实现复杂的文件操作功能,例如压缩和解压缩文件。下面我们将深入探讨Flex Zip压缩算法的关键知识点。 1. **ZIP文件格式**:ZIP是一种广泛...
SWF文件是Flash Player理解和执行的二进制格式,包含了动画、音频、视频、字体和其他互动元素。它不包含原始的ActionScript代码,而是包含了经过优化和编译的指令。 3. **反编译工具**: 如描述中提到的"JPEXS Free...
4. **文件下载**:服务器返回的Excel文件二进制流,可以在Flex Air应用中通过ByteArray读取并提供给用户下载。使用FileReference类,可以触发浏览器的下载对话框,让用户保存Excel文件。 5. **处理中文字符**:由于...