![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2010
Сообщений: 91
|
доброе время суток уважаемые форумчане!
на днях написал небольшое приложение на actionscript javascript, привожу его ниже: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="0" height="0" creationComplete="init()"> <mx:Script> <![CDATA[ import flash.external.ExternalInterface; import mx.collections.ArrayCollection; private const SERVER_ADDRESS:String = "rtmfp://p2p.rtmfp.net/850ecff774ce98e0c0c765f3-29ce3314ba14/"; private var nc:NetConnection; private var ss:NetStream; private var rs:NetStream; private var myPeerID:String; private var recvStreams:Object = new Object(); private var sendStreams:Object = new Object(); private var soundNewMsg:Class; private function initConnection():void{ nc = new NetConnection(); nc.maxPeerConnections = 1000; nc.addEventListener(NetStatusEvent.NET_STATUS, ncStatus); nc.connect(SERVER_ADDRESS); } public function ncStatus(event:NetStatusEvent):void{ ExternalInterface.call("p2pError",event.info.code); if(event.info.code == "NetConnection.Connect.Success"){ myPeerID = nc.nearID; initSendStream(); ExternalInterface.call("alert",nc.nearID); } } private function initSendStream():void{ ss = new NetStream(nc, NetStream.DIRECT_CONNECTIONS); ss.publish('chat'); var client:Object = new Object(); client.onPeerConnect = function(subscriber:NetStream):Boolean{ if(!sendStreams[subscriber.farID])sendStreams[subscriber.farID] = subscriber; if(!recvStreams[subscriber.farID])initReceiveStream(subscriber.farID); return true; } ss.client = client; } private function initReceiveStream(peerID:String):void{ if(peerID){ rs = new NetStream(nc,peerID); rs.play('chat'); var client:Object = new Object(); client.receiveSomeData = receiveSomeData; rs.client = client; var peer:Object = new Object(); peer.stream = rs; recvStreams[peerID] = peer; } } private function sendSomeData(str:String,farIds:String):void{ if(str!=null&&str!=""){ str = str.replace(/(^[\r\n\t\s]+)|([\r\n\t\s]$)/g,""); farIds = farIds == null ? "" : farIds.replace(/[^a-z0-9;]/gi,""); if(farIds!=""){ var farId:Array = farIds.split(";"); for(var i:int;i<farId.length;i++){ if(farId[i]&&sendStreams[farId[i]]){ sendStreams[farId[i]].send('receiveSomeData', str, myPeerID); } } } else{ for(var id:String in sendStreams){ sendStreams[id].send('receiveSomeData', str, myPeerID); } } } } private function receiveSomeData(str:String, farId:String):void{ ExternalInterface.call("receiveSomeData", str, farId); } public function init():void{ ExternalInterface.addCallback("initConnection",initConnection); ExternalInterface.addCallback("sendSomeData",sendSomeData); ExternalInterface.addCallback("initReceiveStream",initReceiveStream); ExternalInterface.call("p2pStartInit"); } ]]> </mx:Script> </mx:Application> function getP2p(){
if(navigator.appName.indexOf("Microsoft")!=-1)return window.p2p;
else return document.p2p;
}
function p2pStartInit(){
try{getP2p().initConnection()}
catch(e){p2pError('flasherror')}
}
function initReceiveStream(p2pId){
try{getP2p().initReceiveStream(p2pId)}
catch(e){p2pError(e)}
}
function sendSomeData(str,ids){
try{getP2p().sendSomeData(str,ids)}
catch(e){p2pError(e)}
}
function p2pError(err){
alert(err)
}
function receiveSomeData(str,id){
alert('Received:'+str+'/'+id)
}
теперь я хочу его усовершенствовать. я хочу что бы помимо простых сообщений, его пользователи могли также вести видео чат, а также передавать файлы. если у кого есть опыт написания подобных приложений, объясните плиз мне как это сделать, только желательно простым языком, т.к. в actionscript я новичок. заранее спасибо за помощь! |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 91
|
все кажеться разобрался... ошибка была в 2 ф-циях:
в initReceiveStream нужно было добавить: и в onPeerConnect нужно заменить на в том видео которое в ответе выше нет вообще ничего полезного! |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|