Tag: AS3笔记预览模式: 普通 | 列表

AS3笔记(18),爽快传输byteArray2

本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87

事实上无论是通过flash remoting来实现byteArray传输,还是通过post实现byteArray数据传输.都是将byteArray以流的形式传递给服务器端.其实我们还可以利用一些加密解密的方法来实现byteArray数据的传输和存取.比如利用Base64的加密解密方法.
附件http://www.2solo.cn/upload/b64_2soloDOTcn.zip中为一个利用base64加密和解密的实例.以下为使用范例.

查看更多...

Tags: AS3笔记 as3.0 sendAndLoad xml loadVars 上传图片 byteArray base64

分类:鸳歌-Ria应用 | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 3556

AS3笔记(17),爽快传输byteArray1

本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87

利用As3和AMF3,我们可以使用Flash remoting来传递byteArray,问题是Flash remoting关系到系统的部署以及服务器端的开发模式,倘若服务器端的开发者对于Flash remoting很不感冒,那就是个问题,况且目前除去Coldfusion,AMF在任何服务器端上的实施都不算方便,很可能遭到服务器端的开发者的反对.那么,我们就需要使用其他更快捷易上手的方法来操作byteArray了。我在AS3笔记(13),sendAndLoad的继承者中提到过使用URLRequest 类和URLVariables类来处理网络提交.使用这个方法同样可以做到byteArray的提交.下面是一个实例:
首先,我们需要通过<C#中操作Stream与Byte Array>中的介绍来配置服务器端.我们需要在Flash中直接提交数据给byteArray.aspx文件.然后来看Flash中的代码:
snlbmp.as

/*@
Author:frank
Site:www.2solo.cn
Date:2008.02.27
Info:byteArray上传图片
*/

package {
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.geom.Point;
    import flash.geom.Rectangle;
    import flash.net.*;
    import flash.utils.ByteArray;
    import com.adobe.images.JPGEncoder;

查看更多...

Tags: AS3笔记 as3.0 sendAndLoad xml loadVars 上传图片 byteArray

分类:鸳歌-Ria应用 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3202

AS3笔记(16),Hi! Flash remoting(3)-使用ByteArray

本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87

结合
AS3笔记(14),Hi! Flash remoting(1)-Fluorine
AS3笔记(15),Hi! Flash remoting(2)-Hello world!
在As3中,已经提供了byteArray来操作二进制数据,我们同样可以利用fluorine来传递byteArray.首先我们需要按照AS3笔记(14),Hi! Flash remoting(1)-Fluorine中新建一个解决方案,在Sample.cs中,我们需要增加一个处理保存图片的方法,叫做SaveImg.代码如下:

usingSystem;
usingSystem.IO;
usingSystem.Data;
using System.Configuration;
using System.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Drawing;
using System.Drawing.Imaging;
using System.Collections.Generic;
usingSystem.Net;
usingSystem.Text;
usingFluorineFx;
usingFluorineFx.AMF3;

namespace ServiceLibrary1
{
    /// <summary>
    /// Fluorine sample service.
    /// </summary>
    [RemotingService("Fluorine sample service")]
    public class Sample
  {
        public Sample()
        {
        }
        public string Echo(string text)
        {
            return "Gateway echo: " + text;
        }
        public static String SaveImg(ByteArray bArray, String fileName)
        {
            byte[] bytes = new byte[bArray.Length];
            MemoryStream ms = new MemoryStream(new byte[bArray.Length]);
            System.Drawing.Image img = System.Drawing.Bitmap.FromStream(ms);
            Bitmap bmp = new Bitmap(img);
            MemoryStream tempStream = new MemoryStream();
            bmp.Save(tempStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            FileStream fs = new FileStream(System.Web.HttpContext.Current.Server.MapPath(fileName), FileMode.Create); 
            tempStream.WriteTo(fs);
            tempStream.Close();
            tempStream.Dispose();
            fs.Close();
            fs.Dispose();
            return "Image Saved!";
        }
    }
}

查看更多...

Tags: AS3笔记 flash remoting .net Fluorine Fluorinefx As3 fla AMF3 bitmap byteArray

分类:鸳歌-Ria应用 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5309

AS3笔记(15),Hi! Flash remoting(2)-Hello world!

本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87

本文主要介绍如果实现AS3和C#联用的Flash remoting实现.后台的配置可以看《AS3笔记(14),Hi! Flash remoting(1)-Fluorine》。与Coldfusion使用remoting的简单相比,任何第三方后台都只能用麻烦来形容,可惜Coldfusion在中国。。。不提了。进正文。

首先,此remoting非彼remoting,与.net中的remoting不同,这里的remoting指的是Flash通过AMF文件格式与后台的交互功能。Flash remoting是as1和as2中的组件,在Adobe的产品列表中有flash remoting mx组件,该组件封装了Flash中对于AMF的操作。而在As3中,虽然依然有AMF的操作,但是官方已经不再其实已经没有remoting的概念了。

从方法上来看,以前操作remoting的remoting包和rpc包也已经不再存在了。As3将主要的方法并入了NetConnection。而如rpc下的很多功能则被分了出来,如Responder类。详细可以看flash.net 包。

查看更多...

Tags: AS3笔记 flash remoting .net Fluorine Fluorinefx As3 fla AMF3

分类:鸳歌-Ria应用 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3460

AS3笔记(14),Hi! Flash remoting(1)-Fluorine

本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87

本文介绍Flash remoting之.net方面的应用.
在很久很久以前(as1&as2)我们使用Flash remoting组件与服务器端进行数据通信,所使用的文件格式我们称为AMF.而AMF3是flex/as3与后台通讯协议所采用的文件格式,可以传递基本类型及resultset等自定义对象,flash remoting和local connection都采用这种文件格式来传输数据.除去本身就提供支持的Coldfusion,目前还有针对其他的几种语言的开源库如OpenAMF (J2EE), Fluorine (.Net),Flashticle (Python),AMFPHP(php)等。不一一列举了,这里就介绍一下基于Fluorine的Remoting开发.官方网站如下:http://www.fluorinefx.com/

目前Fluorine的最新版本为FluorineFX,以前老版本的Fluorine仍然提供支持.使用Flourine,


我安装的是VS2005,下面是我的配置流程(必须安装了flourine):

查看更多...

Tags: AS3笔记 flash remoting .net Fluorine Fluorinefx AMF3

分类:鸳歌-Ria应用 | 固定链接 | 评论: 6 | 引用: 0 | 查看次数: 3908

AS3笔记(13),sendAndLoad的继承者

本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87

在As2中LoadVars和XML都有sendAndLoad方法,该方法可以使用 POST 方法将参数发送到指定的URL,下载服务器的响应并接受参数.在As3.0之前,是最普及的数据通讯方法之一.在AS3.0以后,XML方法已经参照E4X的规范来定义,早就没有了sendAndLoad方法,而LoadVars 类更是消失的无影无踪了。
其实早在AS2中就可以发现,sendAndLoad方法的设计很不合理,在两中数据对象中存在且机制相同.现在好了,AS3.0中很好的封装了这一功能,这就是URLLoader的登场.URLLoader 类以文本、二进制数据或 URL 编码变量的形式从 URL 下载数据。 在下载文本文件、XML 或其它用于动态数据驱动应用程序的信息时,它很有用。可见,除了原有的variables和xml的数据加载方法,现在还多出了二进制数据方法,这个暂时不提,先说一下模拟AS2中两个sendAndLoad的方法。完成这些方法,我们还需要下列类的帮助:

  • URLRequest 类
  • URLVariables类

URLRequest 类用以捕获单个HTTP 请求中的所有信息,URLVariables 类可以在Flash 应用程序和服务器之间传输变量.详细的说明请参看帮助.下例为一个sendAndLoad方法范例:
sendAndLoadEX.as

查看更多...

Tags: AS3笔记 as3.0 sendAndLoad xml loadVars

分类:鸳歌-Ria应用 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3345

AS3笔记(12),抽象类与接口

本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87

抽象类:又叫抽象基类:可以包含一般类所包含的所有特性,例如,字段,属性,方法,抽象类不能被实例化他主要用在类的定义和部分实现这方面,所以他需要在扩充类中完整的扩充并实现功能.另外抽象类还包含一个很特殊的方法,叫抽象方法(这些方法基本上是没有执行代码的函数,由继承于该类的类重写(override)并提供具体实现).在Java和C#中,有abstract关键字来定义抽象类,而在As3中,并没有提供抽象类的支持,尽管abstract已经属于关键字,我们只可以通过模拟方法来实现抽象类的机制。在AS3笔记(11),适配器模式(Adapter Pattern)的范例中,Adaptee.as就是一个抽象类,而如requestB()则是一个抽象方法.

/*
被适配者类
*/

package {
    public class Adaptee {
        public function requestA():void {
            trace("Adaptee:requestA()");
        }
        public function requestB() {

        }
        public function requestC():void {
            trace("Adaptee:requestC()");
        }
    }
}

接口:接口是一种特殊的抽象类,用interface 关键字标记,他可以包含实例/静态方法和getter/setter方法,任何实现该接口的类就必须按照接口的定义实现这些方法.As3中的类可以实现(implements)多个接口.相对于类,接口更象是一种方法的协议,使用接口可以更好的管理模块的功能,方便整理和引用。在AS3笔记(11),适配器模式(Adapter Pattern)的范例中,ITarget.as则是一个典型的接口.

/*
定义接口
*/

package {
    public interface ITarget {
        function renamedRequestA():void;
        function requestA():void;
        function requestB():void;
        function requestC():void;
        function requestD():void;
    }
}

帮助中提到,接口是定义一个方法组的数据类型,其中的方法必须由实现接口的任何类定义。

查看更多...

Tags: AS3笔记 as3.0 抽象类 接口

分类:鸳歌-Ria应用 | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 7498