- 浏览: 92650 次
- 性别:
- 来自: 上海
文章分类
最新评论
一. 相关说明:
本篇将呈现完整的Flash Remoting访问远程服务器,包括以可视化组件方式和以编程方式访问远程服务器。Asp.net服务器端和Flex客户端完整代码下载。
二. 相关代码预览:
1.frServices.as,以编程方式访问远程服务器。
package com.demo.fr
{
import flash.events.EventDispatcher;
import flash.net.NetConnection;
import flash.net.Responder;
//用代码调用flash Remoting。
public class frServices
{
//Remoting服务器对象完整名称。
private var name_ServerClass : String = "Hxw.Demo.FlashRemoting.Hellow";
//初始化一个事件广播对象。
private var eventDispatcher : EventDispatcher = new EventDispatcher();
//事件关键字定义:Event_KEY_Success_DisplayHellow。
public static var Event_KEY_Success_DisplayHellow : String = "Event_KEY_Success_DisplayHellow";
//事件关键字定义:Event_KEY_Success_SayHellowWorld。
public static var Event_KEY_Success_SayHellowWorld : String = "Event_KEY_Success_SayHellowWorld";
//事件关键字定义:Event_KEY_Success_GetUsers。
public static var Event_KEY_Success_GetUsers : String = "Event_KEY_Success_GetUsers";
//事件关键字定义:Event_KEY_Fault。
public static var Event_KEY_Fault : String = "Event_KEY_Fault";
//Remoting连接对象。
private var conn : NetConnection = null;
//Flash Remoting方法返回值获取对象。
private var rp :Responder = null;
//构造器。
public function frServices()
{
}
//开始调用远程服务方法。
public function preCall(result : Function):void
{
//初始化Remoting连接对象。
this.conn = new NetConnection();
//调用connect( )方法,传递进Flash Remoting网关的URL。
this.conn.connect("http://localhost:5678/WebFR/Gateway.aspx");
this.rp = new Responder(result,onError);
}
//调用远程服务方法。
public function call_DisplayHellow():void
{
this.preCall(onResult_DisplayHellow);
//对象的call( )方法调用Flash Remoting方法,call( )方法需要两个参数,
//第一个参数指定方法名称和路径,第二个参数指定响应处理函数,如果不需要处理函数,可直接设为null
//处理FlashRemoting响应。
this.conn.call(this.name_ServerClass + ".DisplayHellow",this.rp);
}
//调用远程服务方法。
public function call_SayHellowWorld(name : String):void
{
this.preCall(onResult_SayHellowWorld);
this.conn.call(this.name_ServerClass + ".SayHellowWorld",this.rp,name);
}
//调用远程服务方法。
public function call_GetUsers():void
{
this.preCall(onResult_GetUsers);
this.conn.call(this.name_ServerClass + ".GetUsers",this.rp);
}
//调用服务成功。
private function onResult_DisplayHellow(result : Object) : void
{
this.resultHandler(result,"DisplayHellow",frServices.Event_KEY_Success_DisplayHellow);
}
private function onResult_SayHellowWorld(result : Object) : void
{
this.resultHandler(result,"SayHellowWorld",frServices.Event_KEY_Success_SayHellowWorld);
}
private function onResult_GetUsers(result : Object) : void
{
this.resultHandler(result,"GetUsers",frServices.Event_KEY_Success_GetUsers);
}
//调用服务成功的处理。
private function resultHandler(result : Object,targetName : String ,eventKey : String) : void
{
var ce : CUEvent = new CUEvent(eventKey);
ce.Sender = result;
ce.CurrentTargetName = targetName;
this.eventDispatcher.dispatchEvent(ce);
}
//调用服务失败。
private function onError(error : Object):void
{
var ce : CUEvent = new CUEvent(Event_KEY_Fault);
ce.Sender = error;
this.eventDispatcher.dispatchEvent(ce);
}
//创建一个供外部调用的附加事件侦听的方法。
public function addEventListener(type : String , listener : Function):void
{
this.eventDispatcher.addEventListener(type,listener);
}
}
}
2.CUEvent.as,自定义事件。
package com.demo.fr
{
import flash.events.Event;
//从Event继承一个类。
//为什么as3中仅仅能够定义一个构造器,郁闷。
public class CUEvent extends Event
{
//数据实体。
private var _sender : Object = null;
//方法名。
private var _currentTargetName: String = "";
//构造器(为什么as3中仅仅能够定义一个构造器,郁闷)。
public function CUEvent(type : String,bubbles : Boolean = false,cancelable : Boolean = false)
{
super(type,bubbles,cancelable);
}
//获取 数据实体。
public function get Sender():Object
{
return this._sender;
}
//设置 数据实体。
public function set Sender(value : Object) : void
{
this._sender = value;
}
//获取 方法名称。
public function get CurrentTargetName() : String
{
return this._currentTargetName;
}
//设置 方法名称。
public function set CurrentTargetName(value : String) :void
{
this._currentTargetName = value;
}
}
}
3.User.as,数据模型,对应服务器端的User.cs。
package com.demo.fr
{
[RemoteClass(alias="Hxw.Demo.FlashRemoting.User")]
public class User
{
public function User()
{
}
private var _name : String = "";
private var _age : int = 0;
private var _sex : String = "";
public function get Name():String
{
return this._name;
}
public function set Name(v:String):void
{
this._name = v;
}
public function get Age():int
{
return this._age;
}
public function set Age(v:int):void
{
this._age = v;
}
public function get Sex():String
{
return this._sex;
}
public function set Sex(v:String):void
{
this._sex = v;
}
public function toString():String
{
return "姓名:" + this._name + ";年龄:" + this._age.toString() + ";性别:" + this._sex;
}
}
}
4.MXML Application代码。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import com.demo.fr.CUEvent;
import flash.net.navigateToURL;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import com.demo.fr.User;
import com.demo.fr.frServices;
import mx.styles.StyleManager;
//1表示以可视化组件方式访问过程服务器。
//2表示以编程方式访问过程服务器。
private var mode : int = 2;
//调用相关的Remoting服务或模式。
private function callServer(fn : String):void
{
if(this.mode == 1)
{
switch(fn)
{
case "DisplayHellow":
sampleRemoteObject.DisplayHellow();
break;
case "SayHellowWorld":
sampleRemoteObject.SayHellowWorld(this.txtMessage.text);
break;
case "GetUsers":
sampleRemoteObject.GetUsers();
break;
}
}
else
{
var fr : frServices = new frServices();
this.addEventListener(frServices.Event_KEY_Fault,onRemoteFault2);
switch(fn)
{
case "DisplayHellow":
fr.addEventListener(frServices.Event_KEY_Success_DisplayHellow,onRemoteResult2);
fr.call_DisplayHellow();
break;
case "SayHellowWorld":
fr.addEventListener(frServices.Event_KEY_Success_SayHellowWorld,onRemoteResult2);
fr.call_SayHellowWorld(this.txtMessage.text);
break;
case "GetUsers":
fr.addEventListener(frServices.Event_KEY_Success_GetUsers,onRemoteResult2);
fr.call_GetUsers();
break;
}
}
}
//当Remoting服务调用成功的回调函数(控件调用)。
private function onRemoteResult(event:ResultEvent) : void
{
this.remoteSuccessHandler(event.result,event.currentTarget.name);
}
//当Remoting服务调用失败的回调函数(控件调用)。
private function onRemoteFault(event:FaultEvent) : void
{
this.remoteFault(event.fault.toString());
}
//当Remoting服务调用成功的回调函数(代码实现)。
private function onRemoteResult2(event : CUEvent):void
{
this.remoteSuccessHandler(event.Sender,event.CurrentTargetName);
}
//当Remoting服务调用失败的回调函数(代码实现)。
private function onRemoteFault2(event : CUEvent) : void
{
this.remoteFault(event.Sender.toString());
}
//当Remoting服务调用成功的处理。
private function remoteSuccessHandler(data : Object,fn : String):void
{
switch(fn)
{
case "DisplayHellow":
Alert.show(data as String,"DisplayHellow");
break;
case "SayHellowWorld":
Alert.show(data as String,"SayHellowWorld");
break;
case "GetUsers":
var userList : ArrayCollection = data as ArrayCollection;
this.dgUsers.dataProvider = userList;
break;
}
}
//当Remoting服务调用失败的处理。
private function remoteFault(desc:String):void
{
Alert.show(desc,"Remoting调用出错");
}
//清空DataGrid中的数据。
private function clearUsers() : void
{
this.dgUsers.dataProvider = null;
}
//链接到本人的博客。
private function getURL():void
{
flash.net.navigateToURL(new URLRequest("http://mrhgw.cnblogs.com"));
}
]]>
</mx:Script>
<mx:RemoteObject id="sampleRemoteObject"
destination="fluorine"
source="Hxw.Demo.FlashRemoting.Hellow"
showBusyCursor="true">
<!--这里是.NET中的方法,name = 方法名 -->
<mx:method name="DisplayHellow" result="onRemoteResult(event)" fault="onRemoteFault(event)"/>
<mx:method name="SayHellowWorld" result="onRemoteResult(event)" fault="onRemoteFault(event)"/>
<mx:method name="GetUsers" result="onRemoteResult(event)" fault="onRemoteFault(event)"/>
</mx:RemoteObject>
<mx:Panel layout="absolute" title="Flash Remoting Demo" fontSize="25" right="19" left="19" bottom="67" top="20">
<mx:TitleWindow x="28" y="29" width="290" height="116" layout="absolute" title="Display Hellow World" fontSize="15">
<mx:Button x="10" y="21" label="Call" id="btDisplayHellow" width="120" fontSize="15" click="callServer('DisplayHellow');"/>
</mx:TitleWindow>
<mx:TitleWindow layout="absolute" title="Say Hellow World" top="168" bottom="30" left="28" width="290" fontSize="15">
<mx:TextInput x="10" y="30" width="232" id="txtMessage" fontSize="13"/>
<mx:Button x="10" y="76" label="Call" id="btSayHellowWorld" width="120" fontSize="15" click="callServer('SayHellowWorld')"/>
<mx:Label x="10" y="0" text="Name:" fontSize="13" fontWeight="bold"/>
</mx:TitleWindow>
<mx:TitleWindow layout="absolute" title="Get Users" left="340" right="34" bottom="30" top="29" fontSize="15">
<mx:Button x="10" y="21" label="Call" id="btGetUser" width="120" fontSize="15" click="callServer('GetUsers')"/>
<mx:DataGrid id="dgUsers" fontSize="13" right="10" left="10" top="65" bottom="10">
<mx:columns>
<mx:DataGridColumn headerText="姓名" dataField="Name"/>
<mx:DataGridColumn headerText="性别" dataField="Sex"/>
<mx:DataGridColumn headerText="年龄" dataField="Age"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="148" y="21" label="Clear" id="btClear" width="120" fontSize="15" click="clearUsers()"/>
</mx:TitleWindow>
</mx:Panel>
<mx:HRule right="10" left="10" bottom="44" height="10"/>
<mx:LinkButton label="Powered by Hxw(http://mrhgw.cnblogs.com)" fontSize="15" fontStyle="italic" right="45" bottom="8" click="getURL();"/>
</mx:Application>
5. 注意。
在MXML Application的代码中,有代码:private var mode : int = 2;mode值为1表示以可视化组件方式访问远程服务器;mode值为2表示以编程方式访问远程服务器。
我的网站设计 web design home page
http://www.webdesign-cn.com
http://www.webdesign-china.cn
本篇将呈现完整的Flash Remoting访问远程服务器,包括以可视化组件方式和以编程方式访问远程服务器。Asp.net服务器端和Flex客户端完整代码下载。
二. 相关代码预览:
1.frServices.as,以编程方式访问远程服务器。
package com.demo.fr
{
import flash.events.EventDispatcher;
import flash.net.NetConnection;
import flash.net.Responder;
//用代码调用flash Remoting。
public class frServices
{
//Remoting服务器对象完整名称。
private var name_ServerClass : String = "Hxw.Demo.FlashRemoting.Hellow";
//初始化一个事件广播对象。
private var eventDispatcher : EventDispatcher = new EventDispatcher();
//事件关键字定义:Event_KEY_Success_DisplayHellow。
public static var Event_KEY_Success_DisplayHellow : String = "Event_KEY_Success_DisplayHellow";
//事件关键字定义:Event_KEY_Success_SayHellowWorld。
public static var Event_KEY_Success_SayHellowWorld : String = "Event_KEY_Success_SayHellowWorld";
//事件关键字定义:Event_KEY_Success_GetUsers。
public static var Event_KEY_Success_GetUsers : String = "Event_KEY_Success_GetUsers";
//事件关键字定义:Event_KEY_Fault。
public static var Event_KEY_Fault : String = "Event_KEY_Fault";
//Remoting连接对象。
private var conn : NetConnection = null;
//Flash Remoting方法返回值获取对象。
private var rp :Responder = null;
//构造器。
public function frServices()
{
}
//开始调用远程服务方法。
public function preCall(result : Function):void
{
//初始化Remoting连接对象。
this.conn = new NetConnection();
//调用connect( )方法,传递进Flash Remoting网关的URL。
this.conn.connect("http://localhost:5678/WebFR/Gateway.aspx");
this.rp = new Responder(result,onError);
}
//调用远程服务方法。
public function call_DisplayHellow():void
{
this.preCall(onResult_DisplayHellow);
//对象的call( )方法调用Flash Remoting方法,call( )方法需要两个参数,
//第一个参数指定方法名称和路径,第二个参数指定响应处理函数,如果不需要处理函数,可直接设为null
//处理FlashRemoting响应。
this.conn.call(this.name_ServerClass + ".DisplayHellow",this.rp);
}
//调用远程服务方法。
public function call_SayHellowWorld(name : String):void
{
this.preCall(onResult_SayHellowWorld);
this.conn.call(this.name_ServerClass + ".SayHellowWorld",this.rp,name);
}
//调用远程服务方法。
public function call_GetUsers():void
{
this.preCall(onResult_GetUsers);
this.conn.call(this.name_ServerClass + ".GetUsers",this.rp);
}
//调用服务成功。
private function onResult_DisplayHellow(result : Object) : void
{
this.resultHandler(result,"DisplayHellow",frServices.Event_KEY_Success_DisplayHellow);
}
private function onResult_SayHellowWorld(result : Object) : void
{
this.resultHandler(result,"SayHellowWorld",frServices.Event_KEY_Success_SayHellowWorld);
}
private function onResult_GetUsers(result : Object) : void
{
this.resultHandler(result,"GetUsers",frServices.Event_KEY_Success_GetUsers);
}
//调用服务成功的处理。
private function resultHandler(result : Object,targetName : String ,eventKey : String) : void
{
var ce : CUEvent = new CUEvent(eventKey);
ce.Sender = result;
ce.CurrentTargetName = targetName;
this.eventDispatcher.dispatchEvent(ce);
}
//调用服务失败。
private function onError(error : Object):void
{
var ce : CUEvent = new CUEvent(Event_KEY_Fault);
ce.Sender = error;
this.eventDispatcher.dispatchEvent(ce);
}
//创建一个供外部调用的附加事件侦听的方法。
public function addEventListener(type : String , listener : Function):void
{
this.eventDispatcher.addEventListener(type,listener);
}
}
}
2.CUEvent.as,自定义事件。
package com.demo.fr
{
import flash.events.Event;
//从Event继承一个类。
//为什么as3中仅仅能够定义一个构造器,郁闷。
public class CUEvent extends Event
{
//数据实体。
private var _sender : Object = null;
//方法名。
private var _currentTargetName: String = "";
//构造器(为什么as3中仅仅能够定义一个构造器,郁闷)。
public function CUEvent(type : String,bubbles : Boolean = false,cancelable : Boolean = false)
{
super(type,bubbles,cancelable);
}
//获取 数据实体。
public function get Sender():Object
{
return this._sender;
}
//设置 数据实体。
public function set Sender(value : Object) : void
{
this._sender = value;
}
//获取 方法名称。
public function get CurrentTargetName() : String
{
return this._currentTargetName;
}
//设置 方法名称。
public function set CurrentTargetName(value : String) :void
{
this._currentTargetName = value;
}
}
}
3.User.as,数据模型,对应服务器端的User.cs。
package com.demo.fr
{
[RemoteClass(alias="Hxw.Demo.FlashRemoting.User")]
public class User
{
public function User()
{
}
private var _name : String = "";
private var _age : int = 0;
private var _sex : String = "";
public function get Name():String
{
return this._name;
}
public function set Name(v:String):void
{
this._name = v;
}
public function get Age():int
{
return this._age;
}
public function set Age(v:int):void
{
this._age = v;
}
public function get Sex():String
{
return this._sex;
}
public function set Sex(v:String):void
{
this._sex = v;
}
public function toString():String
{
return "姓名:" + this._name + ";年龄:" + this._age.toString() + ";性别:" + this._sex;
}
}
}
4.MXML Application代码。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import com.demo.fr.CUEvent;
import flash.net.navigateToURL;
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import com.demo.fr.User;
import com.demo.fr.frServices;
import mx.styles.StyleManager;
//1表示以可视化组件方式访问过程服务器。
//2表示以编程方式访问过程服务器。
private var mode : int = 2;
//调用相关的Remoting服务或模式。
private function callServer(fn : String):void
{
if(this.mode == 1)
{
switch(fn)
{
case "DisplayHellow":
sampleRemoteObject.DisplayHellow();
break;
case "SayHellowWorld":
sampleRemoteObject.SayHellowWorld(this.txtMessage.text);
break;
case "GetUsers":
sampleRemoteObject.GetUsers();
break;
}
}
else
{
var fr : frServices = new frServices();
this.addEventListener(frServices.Event_KEY_Fault,onRemoteFault2);
switch(fn)
{
case "DisplayHellow":
fr.addEventListener(frServices.Event_KEY_Success_DisplayHellow,onRemoteResult2);
fr.call_DisplayHellow();
break;
case "SayHellowWorld":
fr.addEventListener(frServices.Event_KEY_Success_SayHellowWorld,onRemoteResult2);
fr.call_SayHellowWorld(this.txtMessage.text);
break;
case "GetUsers":
fr.addEventListener(frServices.Event_KEY_Success_GetUsers,onRemoteResult2);
fr.call_GetUsers();
break;
}
}
}
//当Remoting服务调用成功的回调函数(控件调用)。
private function onRemoteResult(event:ResultEvent) : void
{
this.remoteSuccessHandler(event.result,event.currentTarget.name);
}
//当Remoting服务调用失败的回调函数(控件调用)。
private function onRemoteFault(event:FaultEvent) : void
{
this.remoteFault(event.fault.toString());
}
//当Remoting服务调用成功的回调函数(代码实现)。
private function onRemoteResult2(event : CUEvent):void
{
this.remoteSuccessHandler(event.Sender,event.CurrentTargetName);
}
//当Remoting服务调用失败的回调函数(代码实现)。
private function onRemoteFault2(event : CUEvent) : void
{
this.remoteFault(event.Sender.toString());
}
//当Remoting服务调用成功的处理。
private function remoteSuccessHandler(data : Object,fn : String):void
{
switch(fn)
{
case "DisplayHellow":
Alert.show(data as String,"DisplayHellow");
break;
case "SayHellowWorld":
Alert.show(data as String,"SayHellowWorld");
break;
case "GetUsers":
var userList : ArrayCollection = data as ArrayCollection;
this.dgUsers.dataProvider = userList;
break;
}
}
//当Remoting服务调用失败的处理。
private function remoteFault(desc:String):void
{
Alert.show(desc,"Remoting调用出错");
}
//清空DataGrid中的数据。
private function clearUsers() : void
{
this.dgUsers.dataProvider = null;
}
//链接到本人的博客。
private function getURL():void
{
flash.net.navigateToURL(new URLRequest("http://mrhgw.cnblogs.com"));
}
]]>
</mx:Script>
<mx:RemoteObject id="sampleRemoteObject"
destination="fluorine"
source="Hxw.Demo.FlashRemoting.Hellow"
showBusyCursor="true">
<!--这里是.NET中的方法,name = 方法名 -->
<mx:method name="DisplayHellow" result="onRemoteResult(event)" fault="onRemoteFault(event)"/>
<mx:method name="SayHellowWorld" result="onRemoteResult(event)" fault="onRemoteFault(event)"/>
<mx:method name="GetUsers" result="onRemoteResult(event)" fault="onRemoteFault(event)"/>
</mx:RemoteObject>
<mx:Panel layout="absolute" title="Flash Remoting Demo" fontSize="25" right="19" left="19" bottom="67" top="20">
<mx:TitleWindow x="28" y="29" width="290" height="116" layout="absolute" title="Display Hellow World" fontSize="15">
<mx:Button x="10" y="21" label="Call" id="btDisplayHellow" width="120" fontSize="15" click="callServer('DisplayHellow');"/>
</mx:TitleWindow>
<mx:TitleWindow layout="absolute" title="Say Hellow World" top="168" bottom="30" left="28" width="290" fontSize="15">
<mx:TextInput x="10" y="30" width="232" id="txtMessage" fontSize="13"/>
<mx:Button x="10" y="76" label="Call" id="btSayHellowWorld" width="120" fontSize="15" click="callServer('SayHellowWorld')"/>
<mx:Label x="10" y="0" text="Name:" fontSize="13" fontWeight="bold"/>
</mx:TitleWindow>
<mx:TitleWindow layout="absolute" title="Get Users" left="340" right="34" bottom="30" top="29" fontSize="15">
<mx:Button x="10" y="21" label="Call" id="btGetUser" width="120" fontSize="15" click="callServer('GetUsers')"/>
<mx:DataGrid id="dgUsers" fontSize="13" right="10" left="10" top="65" bottom="10">
<mx:columns>
<mx:DataGridColumn headerText="姓名" dataField="Name"/>
<mx:DataGridColumn headerText="性别" dataField="Sex"/>
<mx:DataGridColumn headerText="年龄" dataField="Age"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="148" y="21" label="Clear" id="btClear" width="120" fontSize="15" click="clearUsers()"/>
</mx:TitleWindow>
</mx:Panel>
<mx:HRule right="10" left="10" bottom="44" height="10"/>
<mx:LinkButton label="Powered by Hxw(http://mrhgw.cnblogs.com)" fontSize="15" fontStyle="italic" right="45" bottom="8" click="getURL();"/>
</mx:Application>
5. 注意。
在MXML Application的代码中,有代码:private var mode : int = 2;mode值为1表示以可视化组件方式访问远程服务器;mode值为2表示以编程方式访问远程服务器。
我的网站设计 web design home page
http://www.webdesign-cn.com
http://www.webdesign-china.cn
发表评论
-
Android游戏开发
2011-07-01 15:26 196Android开发中Activity是个 -
Flash WebGame 开发经验心得和PureMVC框架细说
2011-06-28 14:02 1525→前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的 ... -
Flash中的深度排序
2011-06-28 11:34 1239As for Multiplayer Games and Vi ... -
Flex 中的callback
2011-06-28 11:16 935Flash支持传递函数做完参数传递。 下面是主函数中的方法 ... -
常用flash引擎和框架
2011-06-27 11:08 2912官方在线帮助(没标英文的都是中文) 用于 Adobe Flas ... -
原来flash player对图片的解码不是异步的,AIR2.6后就异步了
2011-06-27 10:53 819用过 Loader 对象的人都知道,加载图片时,无论是使用 l ... -
Flash WebGame 开发经验心得和PureMVC框架细说
2011-06-27 10:32 1037→前端的主程序架构和模块划分与人手和人事分工是紧密联系在一起的 ... -
简要评说Adobe的FlashPlayer的渲染算法
2011-06-27 10:22 974前些时候看到CSDN上一篇文章介绍FlashPlayer的渲染 ... -
游戏中的智能寻路
2011-05-22 18:20 1223近年来,游戏产业的快 ... -
as3中ProgressEvent的bytesTotal始终为0
2011-05-16 09:50 1480as3中ProgressEvent的bytesTotal始终为 ... -
使用URI-Style Namespace编译ActionScript/Flex Library
2011-05-12 11:10 794当你开发了一个有着多个Pacakge的类库,并在MXML中使用 ... -
环境贴图
2011-03-29 10:49 1047教程:实时环境映射贴图技术实时环境映射贴图技术(Real-ti ... -
Python之旅
2010-12-09 19:40 924一直用AS3+Red5做一些小游戏,感觉挺方便的,特别在做上下 ... -
flash player10的rotationY的使用
2010-12-07 12:26 1581flash player10提供了对3D的支持,虽然功能不够强 ... -
red5的常用方法
2010-12-03 10:11 954在使用red5+flash做rpg游戏开发的时候有些功能是需要 ... -
PV3d性能优化
2010-11-25 14:19 1316当你优化你的程序时, ... -
PV3D处理3D矢量绘图与3D文本
2010-08-23 11:46 1140Papervision3D主要以位图为 ... -
Flash中矢量和位图的使用
2010-06-09 16:47 855最近在做一个世界地图的Flash,其中导入一个很大的矢量图形, ... -
关于PV3D常用材质的讨论
2009-12-17 14:05 1087PV3D中的贴图材质有很多。 颜色材质Co ... -
AS3中的loading与stage
2009-12-16 13:53 981在AS3中如果用loading在主flash中是不能使用sta ...
相关推荐
flex 3 + .net开发flash Remoting
Microsoft .NET RemotingMicrosoft .NET Remoting Microsoft .NET RemotingMicrosoft .NET Remoting Microsoft .NET RemotingMicrosoft .NET Remoting
Flex与ASP.NET通过remoting交互实例
Flex 与 Asp.Net 通过 Remoting 方式进行通讯
Flex与ASP.NET通过Remoting方式交互实例(原创) 开发工具: 1.Flex平台:Adobe Flex Builder 4.5 2..Net平台:Visual Studio .Net 2008 3.Remoting网关:Fluorine 4.Windows service 20003(XP也行) 5.IIS6.0(XPIIS也行...
Flex 与 ASP.NET 通过 Remoting 方式进行通讯前两天研究了一下 Flex 与.NET 如何进行数据交互, 并写了一个文档, 叙述得很详细,有多种“传数据”源代码,(1参数传梯,2数组传梯...等)自测通过
.Net Remoting非常简单范例代码
MSMQ和.Net+Remoting在MES开发中的应用
.NET下使用remoting技术实现的即时通信/聊天程序源代码
Wrox - C# Web Services - Building Web Services with ASP.NET and .NET Remoting
自己弄的三层框架Spring.net,Remoting 本系统共分3部分: 1, DataAccess 数据访问层, 使用Ado.Net和Sql2005交互..数据访问层基本的Model, 单表基本操作存储过程, Dao代码可以由"动软代码生成工具修改版"生成 2, ...
.NET Remoting程序开发入门 .NET Remoting程序开发入门 .NET Remoting程序开发入门 .NET Remoting程序开发入门
介绍.net下的Remoting技术. Microsoft .Net Remoting系列专题之一
flex+asp.net通过FluorineFx实现对数据库的增删改查,简单数据操作,使用了FluorineFx Remoting方式,word文档格式,有详细的组图说明
VB.NET Remoting 技术手册VB.NET Remoting 技术手册
简单明了的一个Remoting源代码,入门的好资源,帮助你更快的掌握Remoting的工作流程。
Advanced .NET Remoting.pdf
.Net Remoting技术.pdf
C# .Net Remoting 两个简单示例,一个为普通的,一个为工厂模式的,更为安全一点.简单范例却是打好了一个框架,想要做东西,扩展就可以了. 使用说明和运行截图:http://www.our-code.com/news/2010105/n4920152.html 关于2...
Microsoft.NET+Remoting+权威指南 中文版的 想学习.NetRemoting的人可以来学习下载。 外国人编写的,已经翻译成中文版