林璜方
摘要:本文提出一種針對(duì)Flash CS3改良的單幀編程方法,并由此實(shí)現(xiàn)了對(duì)廣播電視衛(wèi)星上行站網(wǎng)絡(luò)管理平臺(tái)和值班室互動(dòng)全景的仿真,使值班員可以在任意支持SWF文件的播放平臺(tái)使用該應(yīng)用,并可以進(jìn)行日常操作和故障排除的考核和訓(xùn)練。
關(guān)鍵詞:Flash; 單幀模式; 網(wǎng)管平臺(tái); 互動(dòng)全景; 仿真應(yīng)用
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-2163(2014)04-0071-04
Abstract:In this paper, a single frame mode programming method is proposed to adapt to Flash CS3.This method realizes a simulation for earth station network manager and duty room interactive panorama, which allows staff to perform training and test on routine operation and transmission failure removal through any platform supporting SWF file.
Key words:Flash; Single Frame Mode; Network Manager; Interactive Panorama; Simulation
0引言
在上行站播出工作中,由于安全播出[1]的要求,上行播出系統(tǒng)需要24小時(shí)不間斷的連播。而值班員在保障系統(tǒng)正常持續(xù)運(yùn)行實(shí)現(xiàn)的基礎(chǔ)上,同時(shí)又面臨著操練網(wǎng)管的職責(zé)需求。但若對(duì)在播或備播機(jī)房網(wǎng)管進(jìn)行現(xiàn)場(chǎng)直接培訓(xùn),卻又存在著影響安全播出的誤操作風(fēng)險(xiǎn)。針對(duì)這一狀況,就需要借助PC上的模擬軟件來(lái)解決對(duì)網(wǎng)管操作的盡快熟悉以及對(duì)播出故障的實(shí)時(shí)判斷并排除的問(wèn)題。
由于地球站[2]的操作系統(tǒng)隨著時(shí)代的變遷,存在著新老交替的問(wèn)題。而且,地球站的值班人員也未必具備計(jì)算機(jī)編程的知識(shí)背景。上述特點(diǎn)即要求編寫的應(yīng)用程序需具有跨平臺(tái)的特性、同時(shí)在客戶端的設(shè)置上更要友好而便捷?;诖朔治觯?jīng)過(guò)深入探討可知,利用Adobe Flash CS3平臺(tái)及其面向?qū)ο笳Z(yǔ)言ActionScript 3.0編寫該項(xiàng)目將可同時(shí)滿足以上兩者的要求。具體是因?yàn)椋?其一,Adobe Flash CS3生成的可執(zhí)行程序SWF文件在當(dāng)今市場(chǎng)上幾乎為所有的電影播放程序所支持。其二,安裝了支持FlashPlayer 9.0版本以上的插件的瀏覽器都可以實(shí)現(xiàn)該類文件的拖入播放,且該類插件的市場(chǎng)安裝率則在90%以上[3]。
但由于Adobe Flash并不是一個(gè)基于面向?qū)ο蠡A(chǔ)而研發(fā)得到的編程軟件,其在支持完全的面向?qū)ο缶幊躺媳憩F(xiàn)了一定的局限。本文即通過(guò)采用“單幀編程”方法,規(guī)避了這些局限。通過(guò)編程方法的制定,Adobe Flash CS3將改造成一個(gè)適合系統(tǒng)圖編程的編程軟件。而使用該方法,Adobe Flash CS3則可單獨(dú)完成任意數(shù)量的系統(tǒng)操作界面軟件、帶系統(tǒng)圖的動(dòng)態(tài)軟件平臺(tái)以及二維全景反應(yīng)動(dòng)畫的編程和動(dòng)畫效果制作。若再加上Adobe Flash的SWF文件在用戶使用方面表現(xiàn)的良好便捷性和跨平臺(tái)特性,同時(shí)更結(jié)合該編程技術(shù)的Adobe Flash CS3潛具的廣闊編程應(yīng)用空間,由其編程得到的Flash仿真軟件即會(huì)創(chuàng)造優(yōu)良的用戶體驗(yàn)。下面將就此問(wèn)題展開(kāi)具體論述。
1Flash CS3 的單幀編程方法及其確立的相關(guān)代碼
實(shí)驗(yàn)1.1關(guān)鍵幀編程和文檔類綁定
首先,在Flash CS3中寫入代碼的方式主要有兩種。
其一,是在時(shí)間軸的關(guān)鍵幀中寫入ActionScript3代碼;其二,是在Flash CS3舞臺(tái)之外單獨(dú)寫成ActionScript3類文件,再作為文檔類和Flash庫(kù)文件進(jìn)行綁定,或直接和Flash文件實(shí)現(xiàn)綁定[4]。
雖然《Flash ActionScript3殿堂之路》[4]一書的作者,推崇使用第二種方法,但其書中第23章指出的使用getDefinitionByName函數(shù)的庫(kù)文件綁定方法,只適用于舞臺(tái)對(duì)象較少,關(guān)系簡(jiǎn)單的情況。一旦舞臺(tái)對(duì)象數(shù)目達(dá)到了100以上,其中從屬的邏輯關(guān)系將轉(zhuǎn)為復(fù)雜,那么對(duì)綁定函數(shù)的實(shí)現(xiàn)流程將不僅增加代碼的靜開(kāi)銷,而且對(duì)于在何種繼承關(guān)系中定義并使用綁定函數(shù),都將在無(wú)形中增加編程的復(fù)雜度,以及編程工作量。
雖然利用方法一,在時(shí)間軸的關(guān)鍵幀中寫入ActionScript3代碼可以編寫一定的面向?qū)ο蟪绦?。但本文要?shí)現(xiàn)的項(xiàng)目卻有著比普通動(dòng)畫軟件更加復(fù)雜的邏輯設(shè)計(jì)關(guān)系。并且,在《Flash ActionScript3殿堂之路》書中,作者雖然提到了ActionScript3整體命名空間的一些機(jī)制,但卻并未提及對(duì)于幀之間命名空間的現(xiàn)實(shí)運(yùn)作,也未曾提供變量參數(shù)傳遞的具體機(jī)制。
針對(duì)此一前提,本文就需要首先對(duì)相應(yīng)運(yùn)行機(jī)制上存在的一些疑問(wèn)進(jìn)行代碼實(shí)驗(yàn)。實(shí)驗(yàn)的目的,就是確定變量的有效控制范圍,以及Flash CS3 在代碼運(yùn)行上的執(zhí)行順序。
1.2確定關(guān)鍵幀間以及舞臺(tái)和文檔類間代碼執(zhí)行關(guān)系的五個(gè)代碼實(shí)驗(yàn)
由于Flash CS3是一個(gè)偏重動(dòng)畫設(shè)計(jì)的軟件,如果不在幀上加跳幀代碼的情況下,其關(guān)鍵幀即將按照幀號(hào)從小到大的時(shí)間順序而依次執(zhí)行。并且,其變量類型主要有兩種,一種是基本的變量,在代碼中創(chuàng)立,另一種則是舞臺(tái)對(duì)象的變量,在舞臺(tái)中創(chuàng)立并實(shí)現(xiàn)命名。下面即設(shè)計(jì)五個(gè)代碼實(shí)驗(yàn),以推動(dòng)本文研究的進(jìn)一步發(fā)展與實(shí)現(xiàn)。
1.2.1驗(yàn)證1
因此,為了保證關(guān)鍵幀代碼執(zhí)行順序的唯一性,以及盡可能保留上一次的運(yùn)行結(jié)果,使得編程的系統(tǒng)能夠成為一個(gè)有記憶的系統(tǒng),本文即根據(jù)項(xiàng)目需求提出了一種在Adobe Flash上采取聯(lián)合文檔類的單幀模式進(jìn)行編程的實(shí)現(xiàn)途徑,即在使用Adobe Flash CS3編程時(shí),僅使用文檔類存儲(chǔ)全局變量,而將代碼按照邏輯功能的分類合理分配到關(guān)鍵幀1的各個(gè)圖層之中,同時(shí)盡量使用函數(shù)化的代碼,由此而形成了只使用文檔類和關(guān)鍵幀1作為全部的代碼編輯空間,并利用面向?qū)ο蟮木幊谭椒▽?shí)現(xiàn)編程項(xiàng)目的編程模式。
針對(duì)一個(gè)大系統(tǒng)設(shè)計(jì)而言,只使用單獨(dú)一幀來(lái)進(jìn)行Adobe Flash編程的方法,卻可能造成千行以上的代碼集中在單一關(guān)鍵幀上,就會(huì)為編程人員對(duì)代碼的排錯(cuò)和優(yōu)化增加不小難度。為此,則提出如下解決方式,就是將代碼按照編程的邏輯進(jìn)行分類,而且將代碼分配加入單關(guān)鍵幀的各個(gè)對(duì)應(yīng)圖層之中,在使得代碼整體邏輯清晰的基礎(chǔ)上,還要盡量將代碼的設(shè)計(jì)函數(shù)化,以減少隨后添加的代碼對(duì)之前代碼在執(zhí)行順序上可能造成的影響。
2系統(tǒng)的實(shí)現(xiàn)和內(nèi)部邏輯架構(gòu)
2.1系統(tǒng)圖切換邏輯結(jié)構(gòu)的實(shí)現(xiàn)
根據(jù)廣播電視衛(wèi)星上行系統(tǒng)網(wǎng)絡(luò)管理平臺(tái)中的系統(tǒng)圖的構(gòu)圖模式,本文使用Flash CS3內(nèi)舞臺(tái)基本構(gòu)圖元素組合進(jìn)行高度仿真的繪制,其操作功能和控制結(jié)構(gòu)編程都將按照原網(wǎng)絡(luò)管理平臺(tái)上的設(shè)定來(lái)構(gòu)建與實(shí)現(xiàn)。系統(tǒng)簡(jiǎn)化拓?fù)鋱D如圖1所示。
2.2在播鏈路判斷功能、鏈路結(jié)點(diǎn)隨機(jī)故障產(chǎn)生功能以及鏈路健康判斷方程的設(shè)立
該部分主要實(shí)現(xiàn)在播鏈路隨機(jī)故障的模擬產(chǎn)生,以及值班員在進(jìn)行切換操作后軟件執(zhí)行對(duì)播出鏈路狀態(tài)將給出的各類即時(shí)判斷。
2.2.1結(jié)點(diǎn)參數(shù)設(shè)立
2.2.2隨機(jī)故障產(chǎn)生功能的設(shè)立
根據(jù)具體上行播出系統(tǒng)圖和圖中傳輸結(jié)點(diǎn)推測(cè)出最有可能出現(xiàn)的24個(gè)故障,并確定故障產(chǎn)生時(shí)網(wǎng)絡(luò)管理平臺(tái)的報(bào)警現(xiàn)象,制作得到故障行為函數(shù)庫(kù)。同時(shí),基于2.2.1中斷定的在播鏈路,并根據(jù)在播鏈路結(jié)點(diǎn)確定可以使用的故障函數(shù)子集,而將子集故障函數(shù)數(shù)量n作為隨機(jī)數(shù)運(yùn)行的最大邊界。接下來(lái)即從(1,n)的區(qū)間內(nèi)按均勻分布隨機(jī)抽取一個(gè)序號(hào),再調(diào)用該序號(hào)對(duì)應(yīng)的故障函數(shù)。
2.2.3鏈路健康判斷方程的設(shè)立
根據(jù)網(wǎng)絡(luò)管理平臺(tái)的報(bào)警行為,每個(gè)結(jié)點(diǎn)或器件都有三個(gè)狀態(tài):正常、警告、故障報(bào)警。因此,對(duì)每個(gè)器件建立int型健康變量ak,變量ak也隨之表現(xiàn)有三個(gè)取值:0、1和2,分別對(duì)應(yīng)著故障報(bào)警、正常和警告。隨后,本文即采用乘法作為聯(lián)立方程的計(jì)算方式。
2.3值班室二維全景互動(dòng)動(dòng)畫和故障現(xiàn)象在屏幕墻監(jiān)視黑場(chǎng)的關(guān)聯(lián)實(shí)現(xiàn)
由于值班員在平時(shí)的值班任務(wù)中,對(duì)播出是否正常以及播出故障時(shí)故障點(diǎn)的判斷大部分都是基于監(jiān)控臺(tái)從相應(yīng)結(jié)點(diǎn)獲取的播出監(jiān)控圖像的播放狀態(tài)而加以確定。因此,對(duì)于各個(gè)故障而言,值班室屏幕墻都有對(duì)應(yīng)的黑場(chǎng)現(xiàn)象。本文使用值班室屏幕墻的全景二維照片作為背景,并利用Photoshop軟件處理監(jiān)控臺(tái)屏幕,制作出全黑場(chǎng)現(xiàn)象,而且更在黑屏電視中嵌入值班員在平時(shí)值班工作中經(jīng)??吹降碾娨暸_(tái)節(jié)目播放內(nèi)容的GIF片段來(lái)增強(qiáng)仿真應(yīng)用的現(xiàn)場(chǎng)真實(shí)感。而在隨機(jī)故障產(chǎn)生時(shí),將即刻切換到值班室按鈕,對(duì)應(yīng)故障的黑場(chǎng)現(xiàn)象就會(huì)出現(xiàn)在值班室的屏幕墻場(chǎng)景上。
3結(jié)束語(yǔ)
本文基于項(xiàng)目用戶友好性和跨系統(tǒng)平臺(tái)特性的需求,選擇了Flash CS3平臺(tái)進(jìn)行項(xiàng)目編程,并對(duì)Flash CS3編程平臺(tái)設(shè)計(jì)了一定的代碼實(shí)驗(yàn),進(jìn)而提出了單幀編程方法。通過(guò)單幀編程方法的使用,完成了衛(wèi)星上行站網(wǎng)絡(luò)管理平臺(tái)及值班室互動(dòng)全景的仿真應(yīng)用。該項(xiàng)目已然作為值班員對(duì)故障處理業(yè)務(wù)訓(xùn)練的一個(gè)平臺(tái),并在上行站運(yùn)行使用,使播出工作得到了更為切實(shí)的安全保障。而基于Flash CS3的單幀編程方法,未來(lái)也將在更多的仿真編程上獲得應(yīng)用,以實(shí)現(xiàn)更多依據(jù)現(xiàn)實(shí)而具體定制化的圖形仿真編程。
參考文獻(xiàn):
[1]國(guó)家廣播電影電視總局.廣播電視安全播出管理規(guī)定[S].2009-12-16.
[2]陳小英.衛(wèi)星上行地球站自動(dòng)監(jiān)控系統(tǒng)設(shè)計(jì)與系統(tǒng)分析[D].南京:南京理工大學(xué),2004.
[3]高沫.Adobe Flash平臺(tái)若干新技術(shù)在富媒體課程直播系統(tǒng)中的應(yīng)用[D].上海:上海交通大學(xué),2011.
[4]孫穎.Flash ActionScript3殿堂之路[M].北京:電子工業(yè)出版社,2007.