• 需求:把客户端处理过的图片返还给服务器
    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     }
    Tag:Flash
  • 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 }
    Tag:
  • 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();