对象概述--FlashCom Develop阅读笔记 (六)

2006-03-09 00:36:58

第三章 使用对象 Macromedia Flash Communication Server MX 1.5提供了两部分API,即客户端API和服务器端API。本章主要讲述客户端API和服务器端API是怎样使用的。也会涉及到共享对象的讨论,怎样存储关于应用程序和用户的相关信息。概述FlashMX Com Server的核心对象之后,我们也会重点描述一些类的细节内容,例如Camera, Microphone, NetStream, Stream, System和 Video 对象以及关于如何优化应用程序、保护客户端对象和使得NetConnection对象更安全。 客户端API提供了: Camera(摄影机), Microphone(麦克风), NetConnection(联机),NetStream(串流), SharedObject(共享对象)和 Video(视频). 服务器端API提供了下面这些对象: Application(应用程序), Client(客户端), NetConnection(联机), SharedObject(共享对象)和 Stream(串流). 客户端对象 下面的对象只能用于客户端的as脚本中 Camera 对象:允许你从摄影机捕捉视频并追加到任何一个MC中,当使用FlashMx Com server的时候,还可以在联机对象间传输、显示,甚至录制捕捉到的视频。应用这个特性,你可以开发例如视频会议、视频聊天等应用程序。 Microphone 对象 :该对象用于取得麦克风的声音来源,并且可以在联机对象之间传输、播放等,可以开发例如语音聊天之类的应用程序,如果不使用联机对象,也可以把声音通过音箱在本地输出。 NetConnection 对象:允许Flash客户端通过TCP socket与FlashCom Server建立连接,并且使用RTMP(Real- Time Messaging Protocol,实时讯息通讯协议)交互数据。 NetStream 对象:在使用Netconnect对象所建立的联机对象上,进行数据、声音和视频信息的传输,就如同NetConnect的通道一样。 可以使用NetStream.publish方法来发步数据流,使用NetStream.play来播放接收到的数据流。 Localshared 对象:记录用户的资料,或者把讯息实时传递给所有联机用户。 Video 对象:用于显示通过NetStream.play方法或Camera.get方法捕捉到的视频流。并通过Video.attachVideo方法把该视频对象放置到flash的舞台。 服务器端对象 Application 对象:包含应用程序实体的信息与状态,直到程序结束为止。Application对象也可以让程序决定是否接收用户的联机或者关闭用户的联机,以及清除应用程序特定的流、清除在服务器端的共享对象,并让你在有效范围内访问整个应用程序的变量、定义相关事件所执行的函数等。 Client 对象:包含每个联机用户的信息,例如客户端的IP地址、Flash的版本信息、分配用户的频宽,或者呼叫客户端定义的方法等。 NetConnection 对象:可以在应用程序实体和服务器端,或者同一台服务器的另外一个应用程序之间创建一种双向的连接。你甚至可以使用服务器端的 NetConnection 对象来创建更强大的应用程序,例如你可以获取天气信息从另一个应用程序服务器或者和其他的Flashcom服务器及应用程序实体共享加载。使用联机对象,你可以使用标准的http协议或者rtmp协议在服务器之间交互和传递数据。 Remoteshared 对象:远程共享对象是在客户端建立的,但是可以在服务器端仍然可以使用,它可以实时地在客户端的多个应用程序之间共享和存储数据 SharedObject对象:作用和客户端建立的远程共享对象一样,让不同联机用户能够通过服务器端的共享对象实时分享信息。不过所提供的方法和客户端的有所区别。例如,读取服务器端的共享对象要用get方法,设定存储资料不用data属性,而使用setproperty和getProperty方法,另外还有暂时锁住和解锁的方法lock和unlock,防止资料会覆写。 Stream 对象:处理影音串流,传回录像文件的时间秒数、呼叫客户端串流对象中的自定义方法、以及播放与录像等方法。 客户端和服务器端的对象交流 某些对象的方法是可以在客户端或者服务器端建立和相互调用。例如当客户端的NetConnect对象联机到服务器端,服务器端的Netconnect对象同时也建立了,这个对象可以调用客户端NetConnect对象的副本的所有方法。下面的表格显示了对应的调用关系 1: 客户端对象 2: my_nc (NetConnection object) 3: my_ns (NetStream object) 4: my_so (remote shared object) 5: 回应的服务器端对象 6: my_client (Client object or application.clients object) 7: my_server_stream (Stream object) 8: my_server_so (server-side shared object) 9: 下面表示了客户端的调用和服务器端的回应 1: 2: 客户端的调用 3: my_nc.connect 4: my_nc.close 5: my_nc.call('doThing', myCallbackFcn, 1, 'foo') 6: my_so.send('doThing', 1, 'foo') 7: 服务器端的回应分别对应为 8: application.onConnect 9: application.onDisconnect 10: my_client.doThing(1, 'foo') 11: my_server_so.doThing(1, 'foo') 12: 下面显示了服务器端的调用和客户端的回应 1: 2: 服务器端的调用 3: my_client.call ('doThing', myCallbackFcn,1, 'foo') 4: my_server_stream.send ('doThing', 1,'foo') 5: my_server_so.send('doThing', 1, 'foo') 6: 客户端的回应分别对应为 7: my_nc.doThing (1, 'foo') 8: my_ns.doThing (1, 'foo') 9: my_so.doThing(1, 'foo')