请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 8751|回复: 37

[AS3] [速成教学! AMF3 + AS3 + .NET Remoting 配置过程及源文件][8.17更新 Fla测试文件] [复制链接]

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 09:33:41 |显示全部楼层
还在用 AMF0?  还在用 XML传数据? 还在抱怨 byteArray 要转换成 base64 ? 还在苦恼 fms 生成图片的高消耗和低效率?
// fms 2 其他都很好 我就说这一点不好 跟贴的别乱来!

跟我用超帅的 AMF3 吧!
// 这次转牛角尖  找资料: 历时4 天  浏览过的贴子:无数  找到范例数:0  // 盛怒之下  决定自己写!!!

我使用的是  Fluorine Gateway      
这个软件的优点是 绝对免费 且无任何限制 数据类型支持面广
从这个网址下载fluorine.exe 并安装它
官网: http://fluorine.thesilentgroup.com/index.htm


第一步
打开    Microsoft Visual Web Developer 2005 速成版  (我用免费的 其他版本都一样)
新建一个 网站  选择模板[A project for creating a Fluorine enabled ASP.NET Web application]
命名为 “fluorine”  // 必需用这个! 等你懂了你再换其他 别给我捣乱

在 fluorines 网站的“解决方案资源管理器”里面你会看到

1) bin 文件夹  里面就是  Fluorine的核心    支持 AMF3和 AMF0 的 DLL 动态连接库
2) Gateway.aspx  这是默认的    不用改  里面也差不多是空的 它的存在仅仅是为了  建立一个 AS3的 NetConnection
3) web.config和 WEB-INF文件夹里的那两个文件  不是我们菜鸟能看得懂的 但是是关键和必须的 也不需要你改
4) App_Code 文件夹 我们只需要弄这个   把我们自己写的 *.cs文件放到这里 就可以  用NetConnection.call
来实现里面的 function 了

第二步

加代码    C# 的    放在 App_Code 文件夹 里面

文件名 { "KitaRemoting.cs" } 别乱改哦! 等你懂了你再换其他 !
  1. using System;
  2. using System.IO;
  3. using System.Data;
  4. using System.Configuration;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. using System.Drawing;
  12. using System.Drawing.Imaging;

  13. using com.TheSilentGroup.Fluorine;
  14. using com.TheSilentGroup.Fluorine.AMF3;
  15. //你要使用其他AS3的数据类型就在那个 Bin/com.TheSilentGroup.Fluorine.dll 文件里面慢慢找吧!

  16. namespace fluorine
  17. {
  18.     /// <summary>
  19.     /// Fluorine sample service.
  20.     /// </summary>
  21.     [RemotingService("Fluorine sample service")]
  22.     public static class KitaRemoting
  23.     {
  24.         public static string Echo(string text)
  25.         {
  26.             return "Gateway echo: " + text;
  27.         }
  28.         public static String SaveImage(ByteArray byteArray, String fileName)
  29.         {
  30.             uint length = byteArray.Length;
  31.             byte[] bytes = new byte[length];
  32.             byteArray.ReadBytes(bytes, 0, length);
  33.             MemoryStream ms = new MemoryStream(bytes);

  34.             System.Drawing.Image img = System.Drawing.Bitmap.FromStream(ms);
  35.             Bitmap bmp = new Bitmap(img);

  36.             //To save the image to a file
  37.             MemoryStream tempStream = new MemoryStream();
  38.             bmp.Save(tempStream, System.Drawing.Imaging.ImageFormat.Jpeg);
  39.             FileStream fs = new FileStream(System.Web.HttpContext.Current.Server.MapPath(fileName), FileMode.Create);
  40.             tempStream.WriteTo(fs);
  41.             tempStream.Close();
  42.             fs.Close();
  43.             tempStream.Dispose();
  44.             fs.Dispose();
  45.             //GC.Collect();
  46.             return "Gateway SaveImage Finish!";
  47.         }
  48.     }
  49. }
复制代码


第三步

再做一个  as3 文件   你有安装 com.adobe.images.JPGEncoder这个类吗  在一个叫corelib-.90的压缩包里面  上 google code 搜索吧  不懂安装的朋友  直接 QQ  :289435275

  1. import flash.net.NetConnection;
  2. import com.adobe.images.JPGEncoder;

  3. var nc:NetConnection = new NetConnection();
  4. nc.client = nc;
  5. nc.objectEncoding = flash.net.ObjectEncoding.AMF3;
  6. // 没错 你用的是  flash.net.ObjectEncoding.AMF3   帅吧!

  7. nc.connect ("http://localhost/fluorine/Gateway.aspx");
  8. bt.addEventListener (MouseEvent.CLICK,clickHandler);

  9. function clickHandler (evt:MouseEvent)
  10. {
  11.         var time:uint =  getTimer();
  12.         var bmd:BitmapData = new BitmapData(400,400,false,0xFFFFFFFF);
  13.         bmd.draw (pic);
  14.        
  15.         var JPG:JPGEncoder = new JPGEncoder(30);
  16.         var bary:ByteArray = JPG.encode(bmd);
  17.         var name:String = "a.jpg";

  18.         nc.call ("fluorine.KitaRemoting.SaveImage",new Responder(Result,Status),bary,name);
  19.         bmd.dispose ();
  20.         trace("Excute Time: "+String(getTimer()-time));
  21. }
  22. function Result (re:String)
  23. {
  24.         trace (re);
  25.         trace ("成功!");
  26. }
  27. function Status (re:Boolean)
  28. {
  29.         trace ("错误!");
  30. }
复制代码


flash文件 你放在哪里都行  
测试 看看 !~


运行时间  Excute Time: 937
图片大小  400*400  20kb

实际flash 至 C# 数据传输长度  16065    取自 [Microsoft Visual Web Developer 2005 ] 调试结果 二进制数组长度


摆脱 虚伪的 base64  踢走AMF0  吧!!!

[ 本帖最后由 kita32 于 2007-8-22 12:42 编辑 ]
做人还是低调点好。。。
西部数码顶级域名注册商39元抢注!
kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 10:13:30 |显示全部楼层
//////////////////////////见楼顶

[ 本帖最后由 kita32 于 2007-7-31 22:17 编辑 ]
做人还是低调点好。。。
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 10:23:53 |显示全部楼层
//////////////////////////见楼顶

[ 本帖最后由 kita32 于 2007-7-31 22:17 编辑 ]
做人还是低调点好。。。

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 10:31:56 |显示全部楼层
//////////////////////////见楼顶

[ 本帖最后由 kita32 于 2007-7-31 22:17 编辑 ]
做人还是低调点好。。。

使用道具 举报

hack86 
帖子
1018
体力
3157
威望
80
居住地
浙江省 杭州市
发表于 2007-7-31 10:40:08 |显示全部楼层
麻烦你 发贴一次发完  或者修改好吗??    不要总是一发3~5帖!     谢谢合作!
Flash Game Development
Rich Internet Application

使用道具 举报

黑羽翔天

金牌会员

帖子
450
体力
2731
威望
399
发表于 2007-7-31 10:41:47 |显示全部楼层
为什么不用现成的AMFPHP呢?
还是用C写的扩展,效率相当不错
黑羽翔天◎足下八邦
欢迎来我的博客 :)
www.kingda.org  (AS3教程)

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 10:45:33 |显示全部楼层
哎呀 因为这个项目是用 C# 做的啊 我总不能为了传送些数据而把整个网站也换成 PHP吧
做人还是低调点好。。。

使用道具 举报

黑羽翔天

金牌会员

帖子
450
体力
2731
威望
399
发表于 2007-7-31 11:01:12 |显示全部楼层
黑羽翔天◎足下八邦
欢迎来我的博客 :)
www.kingda.org  (AS3教程)

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 11:41:22 |显示全部楼层
//////////////////////////见楼顶

[ 本帖最后由 kita32 于 2007-7-31 22:17 编辑 ]
做人还是低调点好。。。

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 16:38:56 |显示全部楼层
//////////////////////////见楼顶

[ 本帖最后由 kita32 于 2007-7-31 22:17 编辑 ]
做人还是低调点好。。。

使用道具 举报

telds 
帖子
84
体力
131
威望
0
居住地
美洲 加拿大
发表于 2007-7-31 17:41:17 |显示全部楼层
拜托楼主注重帖子的含金量...

如果要让一个帖子有较好的关注度和获得更多探讨价值。

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 21:52:56 |显示全部楼层
你莫名奇妙。。。。。。。。。。。。。
我搜索了半天还没看到谁写过一个能让我们菜鸟能看懂的Flash使用 AMF3进行数据交互的教程  我上 论坛 看有没有谁有资料 你看你给我写了些什么!
做人还是低调点好。。。

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 22:18:59 |显示全部楼层
提醒一要点

C# 的
namespace fluorine
{

中的 fluorine

AS3的
nc.connect ("http://localhost/fluorine/Gateway.aspx");

中的 fluorine

AS3的
nc.call ("fluorine.KitaRemoting.SaveImage",new Responder(Result,Status),bary,name);

中的 fluorine

必须一致!!

而 nc.call ("fluorine.KitaRemoting.SaveImage",这里
KitaRemoting 为你的 C# 静态类名  SaveImage为方法



另外  你运行  Console.aspx  有很多有趣的事例代码 不过很郁闷的是 那是 AS2 和1 的 不过很有启发 我就是跟着这个改编出来的!


不用 FMS 生成图片  因为 CPU占用 比较高  写入也超那个慢!

[ 本帖最后由 kita32 于 2007-7-31 22:51 编辑 ]
做人还是低调点好。。。

使用道具 举报

帖子
243
体力
1108
威望
1
发表于 2007-7-31 23:32:16 |显示全部楼层
头一回写程序吗,那么兴奋,
都说了用FMS是来测试的,电脑装了FMS,写来就用,都是去年底,今年初的事了,还在搞~~

那么麻烦,直接用AIR将图片写入本地,
--oo-----------------------------------

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-7-31 23:36:11 |显示全部楼层
哎呀 我是做一个项目要用到批量生成图片这个功能
要放在服务器上的

不能不高要求
做人还是低调点好。。。

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-8-1 11:22:41 |显示全部楼层
AIR  Flex  Flash 都会用到 AMF3    因为它支持 Flash 的大部分类型 能够直接传送给 其他脚本语言

而且数据长度比 XML HTTPS 传输的要短      AMF3 是最先进的轻量级二进制传输 不管你AIR 还是FLEX  迟早都要配置的 等着看吧


感觉你们不太重视 AMF3  啊  
可是 AS3  RIA 的标志 就是 AMF3
做人还是低调点好。。。

使用道具 举报

telds 
帖子
84
体力
131
威望
0
居住地
美洲 加拿大
发表于 2007-8-1 11:51:52 |显示全部楼层
呵呵 楼主看看目前状况又何尝不是呢?

往往一款新事物的普及和应用只有两条路:
1。商业上的普及
2。自身的亲和力

所谓的商业上的普及,是指该该商品有经济价值,以及快速使用和批量生产。目前as2作为全包含as1的scprit,所以目前商用的普及语言依然是as2,而as3则属于创新公司的资本。
也就是说 as2的广泛性和资源丰富性vs as3的新特性

AMF3也是一样


亲和力,主要在于引领使用者快速进入该领域的教程之类的东东,由于目前就连as3的专业点的资料都很难找到,更何况中文的,虽然大部分开发者都有一定的英文水平。

因此

一款新生事物总有那么一个过程:
尝试者---〉爱好者团队---〉“引领”资源---〉普及资源---〉商业应用

总的来说我很欣赏像楼主这样的引领者,目前我们需要的是更多的“爱好者团队”来生产更多的引领资源。

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-8-1 17:27:33 |显示全部楼层
你在上面还骂了我呢 。。。 嘿嘿
做人还是低调点好。。。

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-8-2 11:50:24 |显示全部楼层
//////////////////////////见楼顶

[ 本帖最后由 kita32 于 2007-8-17 11:10 编辑 ]
做人还是低调点好。。。

使用道具 举报

帖子
248
体力
1125
威望
0
发表于 2007-8-3 10:52:58 |显示全部楼层
http://www.actionscript3.cn/magicianzrh

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-8-3 11:24:42 |显示全部楼层
那是 PHP...   你眩个鸟啊   这里是 。NET

而且那人也没有写出详细配置方法  只顾自己炫耀技术  跟本不管人家看不看得明白

[ 本帖最后由 kita32 于 2007-8-3 11:30 编辑 ]
做人还是低调点好。。。

使用道具 举报

帖子
248
体力
1125
威望
0
发表于 2007-8-3 16:48:16 |显示全部楼层
人家说了教程吗?
我只是说资料

你自己先看清楚点到底有没有.net

本来flash就是后台无关性的
php和.net区别也不大
除去amfphp还有json

最后就是你嘴巴放干净点

[ 本帖最后由 magicianzrh 于 2007-8-3 16:52 编辑 ]
http://www.actionscript3.cn/magicianzrh

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-8-3 17:54:17 |显示全部楼层
标题就写了 [  ASP .NET ]  。。。

Flash 变量通过 AMF3 翻译成后台数据绝对 不是每个平台都一样的

区别大的很

寒 。。。

寒 。。。

寒 。。。

[ 本帖最后由 kita32 于 2007-8-3 18:22 编辑 ]
做人还是低调点好。。。

使用道具 举报

orcsor 
帖子
237
体力
336
威望
0
居住地
四川省 成都市
发表于 2007-8-4 10:06:26 |显示全部楼层
有没有 amf3 for asp的呢?
http://www.5ucai.com
无忧素材网

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-8-4 11:10:53 |显示全部楼层
你下载我那个 IIS 把后台代码改成 ASP看看行不行  asp 和 。net 我不是很熟悉  上大学时候根本就没听过课 sorry啦

[ 本帖最后由 kita32 于 2007-8-4 11:18 编辑 ]
做人还是低调点好。。。

使用道具 举报

帖子
142
体力
553
威望
0
居住地
广东省 广州市
发表于 2007-8-4 14:26:18 |显示全部楼层
路过.......这个组合的功能是什么?

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-8-4 14:52:05 |显示全部楼层
通信用的
做人还是低调点好。。。

使用道具 举报

帖子
142
体力
553
威望
0
居住地
广东省 广州市
发表于 2007-8-4 14:57:15 |显示全部楼层
例如webcam截图放在服务器吗?

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-8-4 15:05:42 |显示全部楼层
嗯 超高效率的
做人还是低调点好。。。

使用道具 举报

kita32 楼主
帖子
368
体力
784
威望
1
发表于 2007-8-17 11:15:06 |显示全部楼层
因为 SWF 不能通过安全沙漏
我现在放 fla 上来给大家测试
Sorry~~
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
做人还是低调点好。。。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-13 11:46 , Processed in 0.155792 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部