中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁(yè) > 技術(shù)文檔 > 多媒體制作 > Flash Com Actionscript 介紹
探討三星Comdex展示的導(dǎo)航做法 回到列表 ActionScript權(quán)威指南——部分
 Flash Com Actionscript 介紹

作者:vista 時(shí)間: 2003-07-04 文檔類(lèi)型:原創(chuàng) 來(lái)自:藍(lán)色理想

第 1 頁(yè) Camera 對(duì)象
第 2 頁(yè) LocalConnection 對(duì)象
第 3 頁(yè) Microphone 對(duì)象
第 4 頁(yè) MovieClip對(duì)象
第 5 頁(yè) Video 對(duì)象
第 6 頁(yè) SharedObject對(duì)象
第 7 頁(yè) NetConnection對(duì)象 NetStream對(duì)象 等 綜合

七、NetConnection對(duì)象 NetStream對(duì)象 等 綜合

首先假設(shè)你已經(jīng)默認(rèn)安裝了Flash Communication Server,那么在硬盤(pán)上應(yīng)該是這樣的


下面這幅圖向展示了一個(gè)大概的server工作機(jī)制

由于客戶(hù)端代碼的NetConnection對(duì)象和NetStream對(duì)象不好單獨(dú)講,這里給出了一個(gè)基于遠(yuǎn)程應(yīng)用的例子,用來(lái)給有攝像頭、麥克風(fēng)的用戶(hù)錄像,并且錄像完后可以回放。為了開(kāi)發(fā)快速,使用了一些UI組件。

下面是源文件,大家可參考
- = 源文件 = -

下面是主要的代碼和解釋?zhuān)?BR>stop();
//設(shè)置按鈕的外觀顏色
Record_btn.setStyleProperty("face", 0xf4f4f4);
Remove_btn.setStyleProperty("face", 0xf4f4f4);
Play_btn.setStyleProperty("face", 0xf4f4f4);
// 建立新的聯(lián)接對(duì)象
client_nc = new NetConnection();
//NetConnection.onStatus(para)用來(lái)監(jiān)測(cè)server返回的信息
//當(dāng)server返回的信息時(shí),此處理器被觸發(fā)
//參數(shù)是一個(gè)包含著返回信息的對(duì)象,包含著兩個(gè)固定變量level和code,該參數(shù)名稱(chēng)可隨便命名
client_nc.onStatus = function(info) {
// 利用trace功能將server返回的信息可視化
trace("Level: "+info.level+newline+"Code: "+info.code);
};
// 連接到server上,建立rtmp連接
//下面寫(xiě)的是相對(duì)地址,原因是我的web server和flash communication server在一臺(tái)機(jī)器上
//如果你的web server和flash communication server不在一臺(tái)機(jī)器上,只要滿(mǎn)足兩臺(tái)機(jī)器的ip在一個(gè)域
//你就可以同樣成功建立連接,可以寫(xiě)成client_nc.connect("rtmp:/192.168.0.1/record_video");
//record_video是文件夾的名字,該文件夾必須事先存在
//假設(shè)你是按照默認(rèn)安裝的communication server,那么record_video文件夾就應(yīng)該放在
//C:\Program Files\Macromedia\Flash Communication Server MX\flashcom\applications目錄下面
client_nc.connect("rtmp:/record_video");
// 使用SharedObject.getRemote方法,創(chuàng)建遠(yuǎn)程SharedObject
//"myvideo"是SharedObject文件名稱(chēng),對(duì)應(yīng)在server硬盤(pán)上的文件是myvideo.fso
// client_nc.uri是一個(gè)必要的參數(shù),指向當(dāng)前rtmp的連接
// 第三個(gè)是可選參數(shù),true代表將myvideo.fso寫(xiě)入硬盤(pán),false、null或者省略代表不寫(xiě)入,只作臨時(shí)存在
rec_so = SharedObject.getRemote("myvideo", client_nc.uri, true);
//sharedobject.onSync(para)用來(lái)動(dòng)態(tài)監(jiān)測(cè)sharedobject的變化情況
//每當(dāng)sharedobject發(fā)生變化時(shí),此處理器被觸發(fā)
//參數(shù)是一個(gè)數(shù)組,記錄sharedobject.data中發(fā)生變化的內(nèi)容,該參數(shù)名稱(chēng)可隨便命名
//該數(shù)組的每個(gè)成員都是一個(gè)對(duì)象,對(duì)象又有兩個(gè)成員code和name
//name代表的是發(fā)生變化的sharedobject.data里面的發(fā)生變化的內(nèi)容
//code代表的是這個(gè)內(nèi)容發(fā)生了什么變化,是系統(tǒng)返回信息
rec_so.onSync = function(list) {
//用for循環(huán)察看list中的內(nèi)容
for (var i in list) {
trace("code: "+list[i].code+newline+"name: "+list[i].name);
}
//每次sharedobject.onSync(para)觸發(fā)的時(shí)候
//先刪除列表中的所有內(nèi)容
_root.Play_list.removeAll();
//用for循環(huán)讀取rec_so.data里面的內(nèi)容
//再往list中添加條目,達(dá)到刷新列表的作用
for (var i in _root.rec_so.data) {
_root.Play_list.addItem(i);
}
};
// 將sharedobject功能連接到server上
rec_so.connect(client_nc);
//******************************************************************
//******************************************************************
// 設(shè)置錄像功能
function doRecord() {
this.cam = Camera.get();
this.mic = Microphone.get();
if (ListItem.text == undefined || ListItem.text == "") {
Status_msg.text = "Please enter a title.";
} else if (Record_btn.getLabel() == "Record") {
Status_msg.text = "Recording...";
// 錄音的時(shí)候,停止當(dāng)前所有正在播放的條目
if (Play_btn.getLabel() == "Stop") {
doPlay();
}
// 錄音狀態(tài)下,禁用“播放”和“刪除”按鈕
Play_btn.setEnabled(false);
Remove_btn.setEnabled(false);
Play_list._visible = false;
//************************************
// 在client_nc連接上,創(chuàng)建NetStream對(duì)象
out_ns = new NetStream(client_nc);
// 通過(guò)NetStream.attachVideo方法獲得攝像頭的圖像
out_ns.attachVideo(this.cam);
// 通過(guò)NetStream.attachAudio方法獲得麥克風(fēng)的聲音
out_ns.attachAudio(this.mic);
//mybox是放置在舞臺(tái)上的Video對(duì)象
mybox.attachVideo(this.cam);
// 通過(guò)NetStream.publish(p1,p2)方法向服務(wù)器發(fā)布你的視頻和音頻流
//參數(shù)p1代表你發(fā)布的流媒體文件的名稱(chēng),流媒體文件是flv格式的
//參數(shù)p2可選,有"record"、"live"、"append"可選值,分別表
//示:記錄(寫(xiě)在server硬盤(pán)上)、現(xiàn)場(chǎng)(不寫(xiě)在硬盤(pán)上)、續(xù)寫(xiě)
out_ns.publish(ListItem.text, "record");
// 向SharedObject.data寫(xiě)入錄像的名稱(chēng),將會(huì)用來(lái)作為list的條目信息
_root.rec_so.data[ListItem.text] = ListItem.text;
// 錄音的時(shí)候,將錄音按鈕上面的標(biāo)簽由"Record"變成"Stop"
Record_btn.setLabel("Stop");
} else if (Record_btn.getLabel() == "Stop") {
// 通過(guò)NetStream.close方法關(guān)閉流,停止錄音
out_ns.close();
//停止在Video對(duì)象里面播放攝像頭的圖像
mybox.attachVideo(null);
//清除Video內(nèi)容
mybox.clear();
Play_list._visible = true;
// 停止錄音后,用戶(hù)可以使用“播放”按鈕
Play_btn.setEnabled(true);
Remove_btn.setEnabled(true);
// 停止錄音后,將錄音按鈕上面的標(biāo)簽由"Stop"變成"Record"
Record_btn.setLabel("Record");
// 重置“標(biāo)題”和“狀態(tài)” 本文信息
ListItem.text = "";
Status_msg.text = "...";
}
}
//***************************************************************
//***************************************************************
// 設(shè)置播放功能
function doPlay() {
if (Play_btn.getLabel() == "Play") {
Status_msg.text = "Playing...";
Play_btn.setLabel("Stop");
//局部變量playFileName用來(lái)儲(chǔ)存選中的list的標(biāo)簽label名稱(chēng)
//標(biāo)簽label的名稱(chēng)就是錄像文件的名稱(chēng)
var playFileName = Play_list.getSelectedItem().label;
//創(chuàng)建新的NetStream流對(duì)象,將會(huì)用來(lái)播放留言信息
in_ns = new NetStream(client_nc);
//通過(guò)NetStream.play方法播放server上的flv文件
in_ns.play(playFileName);
Play_list._visible = false;
//通過(guò)NetStream.onStatus(para)處理器動(dòng)態(tài)檢測(cè)server有關(guān)stream的返回信息
//參數(shù)para是一個(gè)對(duì)象,包含著兩個(gè)固定變量level和code,該參數(shù)名稱(chēng)可隨便命名
in_ns.onStatus = function(info) {
trace("Level: "+info.level+newline+"Code: "+info.code);
if (info.level == "error" || info.code == "NetStream.Play.Stop") {
Status_msg.text = "Stopped sending data...";
Play_btn.setLabel("Play");
Record_btn.setEnabled(true);
Remove_btn.setEnabled(true);
mybox.clear();
Play_list._visible = true;
}
};
//Video對(duì)象mybox作為視頻流的播放載體,使媒體流可視化
mybox.attachVideo(in_ns);
Record_btn.setEnabled(false);
Remove_btn.setEnabled(false);
} else if (Play_btn.getLabel() == "Stop") {
//停止播放錄音,重置“狀態(tài)”文本
Status_msg.text = "...";
// 關(guān)閉流通道
in_ns.close();
//重置stream聯(lián)接狀態(tài)
in_ns.onStatus = null;
mybox.attachVideo(null);
//清除Video內(nèi)容
mybox.clear();
Play_btn.setLabel("Play");
Record_btn.setEnabled(true);
Remove_btn.setEnabled(true);
Play_list._visible = true;
}
}
//************************************************************
//************************************************************
//設(shè)置刪除功能
function doRemove() {
//設(shè)置局部變量,用來(lái)儲(chǔ)存被選擇的list標(biāo)簽(Index)
var selectedItem = Play_list.getSelectedIndex();
//刪除SharedObject中相對(duì)應(yīng)的項(xiàng)目
delete _root.rec_so.data[Play_list.getSelectedItem().label];
//在硬盤(pán)上重寫(xiě)SO
rec_so.flush();
//在list中刪除選中的條目
Play_list.removeItemAt(selectedItem);
}

錄像完成了,你能在硬盤(pán)上找到flv文件和相應(yīng)的fso文件,列如,我錄了一段錄像叫做aa

NetConnection對(duì)象:
方法:NetConnection.call,NetConnection.close,NetConnection.connect
處理器:NetConnection.onStatus

NetStream對(duì)象:
方法:NetStream.attachAudio,NetStream.attachVideo,NetStream.close,NetStream.pause,NetStream.play,NetStream.publish,NetStream.receiveAudio,NetStream.receiveVideo,NetStream.seek,NetStream.send,NetStream.setBufferTime
屬性:NetStream.bufferLength,NetStream.bufferTime,NetStream.currentFps,NetStream.time
處理器:NetStream.onStatus

客戶(hù)端的代碼說(shuō)完了,說(shuō)的很粗糙,因?yàn)樽约航衲旯ぷ骱苊,可能以后發(fā)彪拙文爛稿的速度會(huì)很慢。
有興趣的朋友還是安裝一個(gè)試用的Communication Server玩玩,自己看看英文的幫助文件,里面有不少例子。
服務(wù)端的代碼介紹,偶盡量抽時(shí)間給大家介紹,可能會(huì)很慢。
http://www.macromedia.com 可以下載試用版。

出處:藍(lán)色理想
責(zé)任編輯:無(wú)意

上一頁(yè) SharedObject對(duì)象 下一頁(yè)

◎進(jìn)入論壇Flash專(zhuān)欄版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
Flash 酷站獵手
中文ID3亂碼問(wèn)題MX解決方案
用AS2解決中文ID3的亂碼
Flash常用效果-移動(dòng)模糊效果
Flash MX 2005 制作環(huán)境預(yù)覽
作者文章
Flash Com Actionscript 介紹
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門(mén)搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁(yè)制作 web標(biāo)準(zhǔn) 用戶(hù)體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開(kāi)啟
國(guó)際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國(guó)國(guó)防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問(wèn)題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買(mǎi)真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語(yǔ)言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡(jiǎn)單繪制一個(gè)可愛(ài)的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡(jiǎn)單的作品展示頁(yè)面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開(kāi)發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁(yè) 首頁(yè) 前頁(yè) 后頁(yè) 尾頁(yè) 頁(yè)次:7/7頁(yè) 1個(gè)記錄/頁(yè) 轉(zhuǎn)到 頁(yè) 共7個(gè)記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來(lái)自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來(lái)自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫(huà),設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶(hù)名:  口令:
說(shuō)明:輸入正確的用戶(hù)名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無(wú)關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專(zhuān)業(yè)書(shū)推薦 更多內(nèi)容
網(wǎng)站可用性測(cè)試及優(yōu)化指南
《寫(xiě)給大家看的色彩書(shū)1》
《跟我去香港》
眾妙之門(mén)—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開(kāi)發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開(kāi)發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2