-
2008-09-03
Flash 二进制传图片到后台Java服务器接收 - [ActionScript3]
需求:把客户端处理过的图片返还给服务器
Flash端代码01 package {
02 import com.adobe.images.JPGEncoder;
03 import flash.display.Sprite;
04 import flash.events.Event;
05 import flash.events.IOErrorEvent;
06 import flash.net.URLLoader;
07 import flash.net.URLRequest;
08 import flash.net.URLRequestMethod;
09 import flash.text.TextField;
10 import flash.utils.ByteArray;
11 import mx.core.BitmapAsset;
12
13 [SWC(width='400',height='400',backgroundColor='0x4c4c4c',frameRate='30')]
14 public class Base extends Sprite
15 {
16 [Embed(source="../1.jpg")] // same png / gif files
17 private var Photo:Class ;
18
19 private var url:String = "http://localhost:8080/PicSample/aaa" ;
20 private var _loader:URLLoader = new URLLoader();;
21 private var reposeTxt:TextField;
22
23 public function Base()
24 {
25 reposeTxt = new TextField();
26 addChild(reposeTxt);
27 reposeTxt.text = "waiting....";
28
29 var photo:BitmapAsset = new Photo();
30 var urlRequest:URLRequest = new URLRequest(url);
31
32 var JPG:JPGEncoder = new JPGEncoder(70);
33 var bary:ByteArray = JPG.encode(photo.bitmapData);
34 urlRequest.data=bary;
35 urlRequest.method=URLRequestMethod.POST;
36 urlRequest.contentType = "application/octet-stream";
37 _loader.addEventListener(Event.COMPLETE,completeHandler);
38 _loader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
39 _loader.load(urlRequest);
40
41 }
42 private function completeHandler(evt:Event):void {
43 reposeTxt.text = "成功";
44 }
45 private function ioErrorHandler(evt:IOErrorEvent):void {
46 reposeTxt.text = "失败";
47 }
48 }
49 }01 @Override
02 protected void doPost(HttpServletRequest request, HttpServletResponse response)
03 throws ServletException, IOException {
04
05 ServletInputStream in = request.getInputStream();
06 OutputStream outStream = new FileOutputStream("e:/m34.jpg");
07 int b =0;
08 while(b!= -1)
09 {
10 in.available();
11 b = in.read();
12 if(b!= -1)
13 outStream.write(b);
14 }
15 outStream.close();
16 } -
2008-01-03
ActionScript3 抽象类定义方法 - [ActionScript3]
09-3-12
应为最近发现了个比较好而且简易的定义抽象类的方法 所以在这里更新一下:ActionScript 3语言: 抽象类实现01 package com.blogbus.programmer
02 {
03 import flash.utils.getQualifiedClassName;
04
05 public class AbstractItem
06 {
07 public function AbstractItem()
08 {
09 // getQualifiedClassName(this) 返回的字符串有 '包路径::类名' 组成
10 // 根据这个来判断是抽象类 还是其子类实例化
11 if(getQualifiedClassName(this)=="com.blogbus.programmer::AbstractItem"){
12 throw new Error("Abstract Class can not instance.");
13 }
14 // your code
15 }
16
17 public function method():void{
18 // your code
19 }
20 }
21 } -
2008-01-02
As3学习总结(1) - [ActionScript3]
Flash的运行时环境 一共分为3中不同的情况:
1.Adobe AIR [运行Flash平台的应用程序,旨在成为桌面配置]
2.Flash Player [主要是成为网页配置,作为网页的插件来安装]
3.Flash Lite [成为设备的配置]
//---------------------------------------------------------------------------------
Flash文件的格式
*.swf 它可以包含actionscript字节码和嵌入的资源(图像,声音,视频,字体)
//---------------------------------------------------------------------------------
ActionScript的开发工具
1. Adobe Flash(flash authoring tool)也就是 flash cs3
2. Adobe Flex Builder
3. Adobe Flex_* SDK [开源的,目前已经到第4个版本了,具体信息见连接地址]
4. FlashDevelop 值得注意的是这个工具是免费的而且在不断的完善中 用户也很多。有兴趣的朋友可以去它的社区看一下。[URL:http://www.flashdevelop.org/community/]
//---------------------------------------------------------------------------------
编译流程
*.as ----actionscript compiler---> actionscript bytecode----swf compiler ---> *.swf
swf 文件以 swf 格式存储字节码和actionscript程序需要的任何嵌入的媒体资源
【提示:】flash authoring tool 和flex builder有相同的ActionScript编译器,但是拥有不同的SWF编译器。
//---------------------------------------------------------------------------------
Native Class:
String/Number/int/uint/Boolean/Array/Date/Error/Function/Math/Object/RegExp
我们需要写一个主类作为程序的入口点[enter point],Flash运行器会自动的创建一个主类的实例。
具体的语法就不详细说明了,读者可以参看Adobe 官方的 帮助文档在ActionScipt3.o Programming中描述的非常清晰。对于有面向OO编程经验的人[比如Java、C++]学 AS3就像逛公园一样简单~
//---------------------------------------------------------------------------------
数组的复制
1.潜复制1 var copy:Array = originalArray.concat();
2 var copy:Array = originalArray.slice();2.深复制
1 import flash.util.ByteArray;
2 var temp:ByteArray = new ByteArray();
3 temp.writeObject(originalArray);
4 temp.position = 0;
5 var copy:Array = temp.readObject();







