- 浏览: 72175 次
- 性别:
- 来自: 深圳
最新评论
-
grshuang:
happyrabbit 写道是那个版本的?6还是7?是 6.1 ...
解决 Websphere 产品过期(过了试用期) -
grshuang:
是6.1版本的
解决 Websphere 产品过期(过了试用期) -
wilhard:
我把代码加入到目录浅一点的那个startserver.bat里 ...
解决 Websphere 产品过期(过了试用期) -
泸洲墨墨:
博主,我爱死你了,太谢谢了
来,波一个
...
Flex Socket与Java通信 -
saboo:
shuzheng5201314 写道你的文章上首页了,java ...
"<br />"和 "\r\n" 这两者有什么区别??
ByteArray
Class public class ByteArray
继承 ByteArray --> Object
Implements IDataInput, IDataOutput
Subclasses ByteArrayAsset
属性:
bytesAvailable : uint [] 可从字节数组的当前位置到数组末尾读取的数据的字节数。
defaultObjectEncoding : uint [] 指示用于新 ByteArray 实例的 ByteArray 类的默认对象编码。
length : uint ByteArray 对象的长度(以字节为单位)。
position : uint 将文件指针的当前位置(以字节为单位)移动或返回到 ByteArray 对象中。
方法:
ByteArray() 创建一个表示填充的字节数组的 ByteArray 实例,以便使用此类中的方法和属性来优化数据存储和数据流。
writeUTF(value:String):void 将 UTF-8 字符串写入字节流。
writeUTFBytes(value:String):void 将 UTF-8 字符串写入字节流。
writeByte(value:int):void 在字节流中写入一个字节。
writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
将指定字节数组 bytes(起始偏移量为 bytes,从 0 开始的索引)中包含 length 个字节的字节序列写入字节流。
offset:uint (default = 0) — 从 0 开始的索引,表示在数组中开始写入的位置。
Socket
Class public class Socket
继承 Socket EventDispatcher Object
Implements IDataInput, IDataOutput
类使 代码可以建立套接字连接并读取和写入原始二进制数据。它与 XMLSocket 类似,但没有指定接收或传输的数据格式。
属性:
bytesAvailable : uint [] 输入缓冲区中可读取的数据的字节数。
connected : Boolean [] 指示此 Socket 对象目前是否已连接。
objectEncoding : uint 在写入或读取对象时,控制所使用的 AMF 的版本。
方法:
Socket(host:String = null, port:int = 0) 创建一个 Socket 对象。
close():void 关闭套接字。 Socket
connect(host:String, port:int):void 将套接字连接到指定的主机和端口。 Socket
dispatchEvent(event:Event):Boolean 将事件调度到事件流中。 EventDispatcher
flush():void 对套接字输出缓冲区中积累的所有数据进行刷新。
readByte():int 从套接字读取一个带符号字节。 Socket
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void 从套接字读取 length 参数所指定的数据的字节数。
readMultiByte(length:uint, charSet:String):String 使用指定的字符集,从该字节流读取一个多字节字符串。
readUnsignedByte():uint 从套接字读取一个无符号字节。 Socket
readUnsignedInt():uint 从套接字读取一个无符号的 32 位整数。 Socket
readUnsignedShort():uint 从套接字读取一个无符号的 16 位整数。
readUTF():String 从套接字读取一个 UTF-8 字符串。 Socket
readUTFBytes(length:uint):String 从套接字读取 length 参数所指定的 UTF-8 数据的字节数,并返回一个字符串。
writeByte(value:int):void 将一个字节写入套接字。 Socket
writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void 从指定的字节数组写入一系列字节。
writeMultiByte(value:String, charSet:String):void 使用指定的字符集,从该字节流写入一个多字节字符串。 Socket
writeObject(object:*):void 以 AMF 序列化格式将一个对象写入套接字。 Socket
writeShort(value:int):void 将一个 16 位整数写入套接字。 Socket
writeUnsignedInt(value:uint):void 将一个无符号的 32 位整数写入套接字。 Socket
writeUTF(value:String):void 将以下数据写入套接字:一个无符号 16 位整数,它指示了指定 UTF-8 字符串的长度(以字节为单位),后面跟随字符串本身。 Socket
writeUTFBytes(value:String):void 将一个 UTF-8 字符串写入套接字。
事件: Event.XX close 在服务器关闭套接字连接时调度。 Socket connect 在建立网络连接后调度。 Socket deactivate Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时调度。 EventDispatcher ioError 在出现输入/输出错误并导致发送或加载操作失败时调度。 Socket securityError 若对 Socket.connect() 的调用尝试连接到调用方安全沙箱外部的服务器或端口号低于 1024 的端口,则进行调度。 Socket socketData 在套接字接收到数据后调度。
--------------------------------------------------------------------------
Flex 端 代码(跟好的理解Socket):
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="353" height="336"
creationComplete="initApp();" >
<mx:Script>
<![CDATA[
private var socket:Socket = new Socket();
private var intClient:int; //定义客户端数字出拳
private var intServer:int; //定义服务端数字出拳
private var intSY:int; //定义输赢判断
private var strClient:String; //客户端文字出拳
private var strServer:String; //服务端的文字出拳
internal function initApp():void{
socket.connect("127.0.0.1",8888);
socket.addEventListener(Event.CONNECT,funConnect);
socket.addEventListener(Event.CLOSE,funClose);
socket.addEventListener(ProgressEvent.SOCKET_DATA,funSocket);
}
internal function funConnect(e:Event):void{
myText.text+="连接已建立 \n";
}
internal function funClose(e:Event):void{
myText.text+="连接已关闭 \n";
}
private function sendMessage(msg:String):void{
var message:ByteArray = new ByteArray();
message.writeUTF(msg); //发送出拳数字
socket.writeBytes(message);
socket.flush();
intClient=int(msg);
switch(intClient){ //将数字转换成文字用于发布到屏幕上
case 0:
strClient="剪刀";
break;
case 1:
strClient="锤";
break;
case 2:
strClient="包袱";
break;
}
myText.text+="你出:"+strClient+"; ";
myInput.text="";
}
internal function funSocket(e:ProgressEvent):void{ //接到服务器信息
var msg:String="";
while(socket.bytesAvailable)
{
msg=socket.readUTF();
intServer=int(msg);
intSY=intClient-intServer; //通过数值判断输赢
switch(intServer) //将数字转换成文字用于发布到屏幕上
{
case 0:
strServer="剪刀";
break;
case 1:
strServer="锤";
break;
case 2:
strServer="包袱";
break;
}
myText.text+="服务器出:"+strServer+"; ";
//判断输赢的算法
if(intSY>0&&intSY<2)
{
myText.text+=" 结果:你赢了 \n";
}else if(intClient==intServer)
{
myText.text+=" 结果:平手 \n";
}else if(intSY<0&&intSY>-2)
{
myText.text+=" 结果:你输了 \n";
}else if(intSY>=2)
{
myText.text+=" 结果:你输了 \n";
}else if(intSY<=-2)
{
myText.text+=" 结果:你赢了 \n";
}
// myText滚动到最下面
myText.verticalScrollPosition = myText.maxVerticalScrollPosition;
}
}
]]>
</mx:Script>
<mx:TextArea x="10" y="32" width="331" height="263" id="myText"/>
<mx:TextInput x="10" y="303" width="245" id="myInput"/>
<mx:Button x="273" y="304" label="发送" id="myBtn" click="sendMessage(myInput.text)"/>
<mx:Label x="10" y="10" text="规则:0代表剪刀;1代表锤;2代表包袱" width="331" fontWeight="bold"/>
</mx:Application>
发表评论
-
ReferenceError: Error #1065
2011-12-21 17:55 3697今天同事帮我弄了几个小时解决了一个错误,这个错误是: ... -
PureMVC
2011-12-20 17:43 950http://www.oschina.net/question ... -
安装 Flex builder 插件到MyEclipse
2011-12-20 09:06 2233买了新机器,当然要新版本,于是装Myeclipse 9.0,安 ... -
[转] 深入FLEX组件生命周期
2011-12-19 15:08 11291、生命周期(LifeCycl ... -
Flex Socket与Java通信
2011-12-16 16:01 5971这两天一直在flex的Socket ,现在终于懂了很多。由浅到 ... -
Flex swc文件
2011-12-14 17:00 2022找了网上好多导出或者制作swc的文章,都让我没能理解,因为没有 ... -
"<br />"和 "\r\n" 这两者有什么区别??
2011-12-13 09:27 1669\r\n是输出的HTML代码换行,客户看到的效果没有 ... -
Flex zh_CN 报错
2011-12-12 13:40 1701Flex 编译语言错误 : 'e:\Program Files ... -
[转]ActionScript3.0 Socket编程
2011-12-09 16:27 1185我们在使用ActionScript3. ... -
Flex 编译器的编译选项
2011-12-09 15:56 21111.4.1 问题 你需要指定MXML编译器的编译选项. ... -
重写FLEX组件
2011-12-06 16:22 0一、为什么要重写组件 1、在FLEX已有组件无法满足业 ... -
TweenLite TweenFilterLite TweenMax TweenGroup
2011-12-06 16:18 0TweenLite参数说明 TweenFilterLite参数 ... -
Flex Module专题
2011-12-07 16:38 1418主要参考书目: 《ADOBE ... -
Flex是咋回事之一 集CS和BS之大成的RIA
2011-12-06 15:45 0用了一年多Flex,感触多多。偶尔有同行的朋友问我啥是Fl ... -
Flex是咋回事之二 前世今生
2011-12-06 15:38 0转眼已是岁末,让我们回顾一下历史,展望一番未来。啥,没有未 ... -
Flex是咋回事之三 谁用谁知道
2011-12-06 15:27 0一项技术,从概念提出到技术研发到商业发布,再到实际应用,最 ... -
总结一下适合自己的学习方法
2011-12-06 15:17 0第一步,搜集所有资料,挑适合自己水平的阅读,做到由浅 ... -
Flex LCDS 与 spring 框架的整合说明
2011-12-06 15:15 0原帖:http://www.riachina.com/sh ... -
构建Flex应用的10大误区(转自InfoQ)
2011-12-06 15:08 0原文地址:http://www.infoq.com/cn/ ... -
[转]AS3事件处理机制
2011-12-20 09:16 1684先来看个例子:地点:饭馆类(extend Sprite ...
相关推荐
在Flex编程中,有时我们需要处理音频数据,例如从网络接收或者本地存储的字节数组(ByteArray)中读取音频信息,并将其转化为可播放的声音(Sound)。标题"flex byteArray to sound"表明我们要讨论的是如何将一个...
标题中的“Flex 与 Struts2 ByteArray 数据上传”指的是在Web开发中,使用Adobe Flex作为前端客户端,通过Struts2框架在后端处理字节数组(ByteArray)数据的上传技术。Flex是一种基于Adobe Flash Player或Adobe AIR...
- **创建 Socket**:使用 `Socket` 类实例化一个 Socket 对象。 - **连接 Socket**:使用 `connect` 方法进行连接。 - **读取数据**:使用事件监听器监听 `DATA` 事件来接收数据。 - **写入数据**:使用 `...
- **问题描述**:在Java与Flex之间进行Socket通信时,如果发送的数据量较大或者网络环境不稳定,就有可能出现粘包现象。具体表现为接收端接收到的数据不是按照预期的方式分割的,而是多个数据包被错误地合并到了一起...
在编程领域,`char`、`bytearray` 和 `string` 是三种常见的数据类型,它们在不同的场景下有着各自独特的用途。特别是在机器视觉、Qt 和 C++ 这样的上下文中,理解它们的区别至关重要。 首先,`char` 在C++中通常...
4. **文件下载**:服务器返回的Excel文件二进制流,可以在Flex Air应用中通过ByteArray读取并提供给用户下载。使用FileReference类,可以触发浏览器的下载对话框,让用户保存Excel文件。 5. **处理中文字符**:由于...
Flex并不直接支持PNG编码,但我们可以使用`flash.utils.ByteArray`来实现。首先,创建一个`ByteArray`,然后使用`BitmapData`的`encode()`方法将位图数据编码为PNG: ```actionscript var pngBytes:ByteArray = ...
read() 方法可以从服务器读取数据,并将其存储在 ByteArray 对象中。 4. 同 Socket 服务器进行握手 在与 Socket 服务器建立连接后,我们需要同服务器进行握手,以确定收到了什么样的数据和如何处理这些数据。我们...
### Flex图片上传实例详解 在本篇文章中,我们将深入探讨一个具体的Flex图片上传实例,并对其中涉及的关键技术点进行详细解读。此实例不仅提供了一个实际的上传图片的应用场景,而且还包含了一些实用的代码片段,这...
### Flex 中使用 `FileStream` 和 `ByteArray` 实现图片另存 #### 1. **基础知识简介** - **Flex**:一种用于构建跨平台桌面应用程序和移动应用程序的技术。它基于Adobe Flash Player运行时环境,并使用MXML...
在本场景中,我们将讨论如何在Flex中捕获组件的快照,将其转换为ByteArray,并通过JavaServlet将其导出为图片。 首先,让我们深入了解Flex中的组件快照。在Flex中,我们可以使用BitmapData类来捕获组件的视觉表示,...
`HEXtoString as3.as`这个文件可能包含一个函数,用于将16进制字符串转换为ByteArray,以便于Socket通信。 在AS3中,使用Socket类的步骤如下: 1. **创建Socket实例**:首先,你需要创建一个Socket对象,例如`var ...
Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。在Flex中,我们可以利用其强大的图形处理能力来生成图片,并将其保存到本地或者服务器。本篇文章将详细探讨如何在Flex中实现这一...
"ByteArray-Scale-Bitmap.rar_ByteArray_slice" 提供了一种利用ByteArray来处理9-slice Bitmap缩放的技术,这对于优化GUI性能和适应不同屏幕尺寸至关重要。9-slice缩放是一种特殊的图像拉伸方法,它确保了图片在放大...
4. **ActionScript 3.0数据类型**: 在FLEX中,`ByteArray`类用于存储和操作字节数据,而`String`类则用于处理文本。在Base64编码过程中,这两者之间的转换是必要的。 5. **使用示例**: `Base64Util.docx`可能包含...
首先,需要将HTML文件转换为`ByteArray`,然后加载到`Loader`中。以下是一个示例: ```actionscript var htmlLoader:Loader = new Loader(); var htmlRequest:URLRequest = new URLRequest("path/to/your/...
var bytes:ByteArray = stream.readBytes(); stream.close(); var excelDoc:ExcelDocument = new ExcelDocument(); excelDoc.loadFromByteArray(bytes); ``` 3. **处理数据** `loadFromByteArray`方法会...
使用AS3的`flash.utils.ByteArray`类,先读取原始数据,然后使用`ByteArray.readUTFBytes()`方法读取UTF-8编码的字符串,再通过`ByteArray.writeUTFBytes()`将其转换为UTF-16。 4. **XML处理**:在处理XML数据时,...
3. 上传ByteArray:现在,你可以使用ByteArray对象进行网络传输,例如通过HTTP服务或Socket连接发送。在Flex中,我们可以使用URLLoader类来上传数据。 ```actionscript var urlRequest:URLRequest = new URLRequest...
9. **URLLoader和ByteArray**:Flex中的URLLoader类用于加载网络资源,包括MP3文件。ByteArray则用于处理二进制数据,比如加载到内存中解码的MP3数据。 10. **皮肤和样式**:Flex允许通过皮肤和样式来自定义组件...