krpano的JavaScript接口使用

本文主要介紹如何使用krpano的JavaScript接口贵少,來(lái)實(shí)現(xiàn)播放器的展示數(shù)據(jù)以及效果添加悯嗓。

創(chuàng)建全景播放器

創(chuàng)建播放器是krpano在線(xiàn)展示的一個(gè)必經(jīng)過(guò)程县钥,那么如何創(chuàng)建播放器呢伺绽?將krpano客戶(hù)端對(duì)應(yīng)的krpano.js代碼和krpano.swf等相關(guān)資源文件甲馋,存放到一個(gè)站點(diǎn)可以訪(fǎng)問(wèn)的位置埂奈。假如存放到站點(diǎn)的根目錄下,訪(fǎng)問(wèn)基礎(chǔ)地址為http://localhost/定躏。那么構(gòu)建播放器的樣例代碼如下:

index.html

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <script type="text/javascript" src="./krpano.js"></script>
  <style type="text/css">
    html,body{width:100%;height:100%;}
  </style>
</head>
<body>
   <div id="container" style="width:100%;height:100%;"></div>
  <script type="text/javascript">
    var config = {target: "container", swf: "krpano.swf", xml: "index.xml", html5: "prefer"}
    embedpano(config)
  </script>
</body>
</html>

注:config參數(shù)中账磺,只有target芹敌、swf、xml三項(xiàng)是必填的垮抗。想要了解更多參數(shù)請(qǐng)點(diǎn)這里氏捞。那么為什么在這里的html5參數(shù)設(shè)置了prefer呢?個(gè)人經(jīng)過(guò)試驗(yàn)冒版,在大多數(shù)支持html5播放的情況下液茎,使用html5模式會(huì)比f(wàn)lash模式擁有更佳的性能和體驗(yàn)。

index.xml

<?xml version="1.0" encoding="utf-8" ?>
<krpano>
  <security>
    <allowdomain domain="*" />
  </security>
</krpano>

注:krpano默認(rèn)的展示效果的相關(guān)數(shù)據(jù)辞嗡,都由XML文件來(lái)指定捆等。上述配置文件并沒(méi)有相關(guān)的效果數(shù)據(jù),所以創(chuàng)建好播放器后只有一個(gè)沒(méi)有任何內(nèi)容效果的空播放器续室。配置中security的allowdomain聲明允許跨域調(diào)用的跨域域名栋烤,由dimain的值指定對(duì)應(yīng)域名(*表示允許任意域名)。在非必要的情況下猎贴,為了安全性起見(jiàn)建議不要使用*班缎。

krpano Javascript-Interface object

想要調(diào)用krpano的JS接口,光創(chuàng)建播放器還不夠她渴,還需要獲得播放器的krpano Javascript-Interface object达址。

獲取接口對(duì)象

在創(chuàng)建播放器時(shí),可以通過(guò)config的onready參數(shù)傳入回調(diào)函數(shù)來(lái)獲取krpano Javascript-Interface object趁耗。修改頁(yè)面的JS代碼如下:

var krpanoReady = function(krpano){
  //函數(shù)傳入的krpano參數(shù)就是krpano Javascript-Interface object
  //顯示krpano打印窗口
  krpano.call("showlog()")
}
var config = {target: "container", swf: "krpano.swf", xml: "index.xml", html5: "prefer", onready: krpanoReady}
embedpano(config)

接口對(duì)象的方法

krpano Javascript-Interface object擁有 set(variable,value)沉唠、 get(variable)call(action)苛败、 spheretoscreen(h,v)满葛、 screentosphere(x,y)這五個(gè)方法。那么要通過(guò)JS來(lái)設(shè)置播放器的效果罢屈,主要通過(guò)set嘀韧、get、call這三個(gè)方法缠捌。使用這些方法前锄贷,需要先點(diǎn)這里了解一下krpano實(shí)現(xiàn)的簡(jiǎn)單動(dòng)態(tài)腳本語(yǔ)言。

set(variable,value)

定義或者設(shè)置krpano動(dòng)態(tài)腳本語(yǔ)言的變量值曼月。使用例子如下:

//定義或設(shè)置變量a為1
krpano.set("a", 1)
//設(shè)置name為layer_1的layer對(duì)應(yīng)visible屬性為false
krpano.set("layer[layer_1].visible", false)
//設(shè)置name為layer_1的layer對(duì)應(yīng)html屬性為'txt'
krpano.set("layer[layer_1].html", "txt")

get(variable)

獲取krpano動(dòng)態(tài)腳本語(yǔ)言的變量值谊却,當(dāng)變量值未定義時(shí)返回null。使用例子如下:

//獲取變量值
var a = krpano.get("a")
//獲取name為layer_1的layer對(duì)應(yīng)visible屬性
var visible = krpano.get("layer[layer_1].visible")

call(action)

執(zhí)行指定的任意krpano動(dòng)態(tài)語(yǔ)言語(yǔ)句哑芹。使用例子如下:

//顯示krpano打印窗口
krpano.call("showlog()")

通過(guò)JavaScript添加場(chǎng)景

上述樣例代碼只創(chuàng)建了一個(gè)空播放器炎辨,那么我們?cè)趺礃邮褂肑avaScript來(lái)添加場(chǎng)景等相關(guān)播放器數(shù)據(jù)呢?

我們先來(lái)看一下聪姿,如何添加并設(shè)置一個(gè)場(chǎng)景的圖片資源碴萧。JS代碼如下:

var krpanoReady = function(krpano){
  var xml = '<scene name="scene_1"><image><sphere url="sphere.jpg" /></image></scene>'
  krpano.call("loadxml(" + xml + ");loadscene(scene_1);")
}
var config = {target: "container", swf: "krpano.swf", xml: "index.xml", html5: "prefer", onready: krpanoReady}
embedpano(config)

添加數(shù)據(jù)主要通過(guò)調(diào)用krpano動(dòng)態(tài)語(yǔ)言的loadxml方法實(shí)現(xiàn)乙嘀。那么loadscene方式的作用是:根據(jù)指定scene的name來(lái)加載并渲染指定的場(chǎng)景。詳細(xì)請(qǐng)參考krpano文檔破喻。

loadxml不止可以添加場(chǎng)景乒躺,還可以添加任何krpano的XML配置允許的數(shù)據(jù)來(lái)達(dá)到展示效果。比如添加plugin低缩、layer、hotspot等曹货。但是loadxml有一定的限制咆繁,當(dāng)執(zhí)行l(wèi)oadxml時(shí),會(huì)將沒(méi)有聲明keep屬性為true的數(shù)據(jù)對(duì)象都移除并切換掉當(dāng)前的場(chǎng)景顶籽。時(shí)間有限玩般,今天的就先介紹到這里。使用loadxml相關(guān)注意的具體應(yīng)用問(wèn)題礼饱,在后續(xù)的文章中進(jìn)行介紹坏为。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市镊绪,隨后出現(xiàn)的幾起案子匀伏,更是在濱河造成了極大的恐慌,老刑警劉巖蝴韭,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件够颠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡榄鉴,警方通過(guò)查閱死者的電腦和手機(jī)履磨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)庆尘,“玉大人剃诅,你說(shuō)我怎么就攤上這事∈患桑” “怎么了矛辕?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)位岔。 經(jīng)常有香客問(wèn)我如筛,道長(zhǎng),這世上最難降的妖魔是什么抒抬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任杨刨,我火速辦了婚禮,結(jié)果婚禮上擦剑,老公的妹妹穿的比我還像新娘妖胀。我一直安慰自己芥颈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布赚抡。 她就那樣靜靜地躺著爬坑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涂臣。 梳的紋絲不亂的頭發(fā)上盾计,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音赁遗,去河邊找鬼署辉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛岩四,可吹牛的內(nèi)容都是我干的哭尝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼剖煌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼材鹦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起耕姊,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤桶唐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后箩做,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體莽红,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年邦邦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了安吁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡燃辖,死狀恐怖鬼店,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情黔龟,我是刑警寧澤妇智,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站氏身,受9級(jí)特大地震影響巍棱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛋欣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一航徙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧陷虎,春花似錦到踏、人聲如沸杠袱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)楣富。三九已至,卻和暖如春伴榔,著一層夾襖步出監(jiān)牢的瞬間纹蝴,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工踪少, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留骗灶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓秉馏,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親脱羡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子萝究,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)锉罐,斷路器帆竹,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,112評(píng)論 25 707
  • 致高考后 樓高倚遍頓生空,人事當(dāng)年如夢(mèng)中脓规。 前路依稀去與住栽连,知音寥落西和東。 門(mén)邊舊水凝新碧侨舆,樹(shù)下鮮花爭(zhēng)老紅秒紧。 應(yīng)...
    聽(tīng)我說(shuō)件事閱讀 182評(píng)論 0 6
  • 凌晨3:30熔恢,聽(tīng)時(shí)間噠噠前行。濃稠的黑幕里臭笆,秒針上的熒光顫顫悠悠叙淌,一點(diǎn)一點(diǎn)爬出一條弧線(xiàn)。 打開(kāi)床頭燈愁铺,藍(lán)色的香薰?fàn)t...
    繹如閱讀 462評(píng)論 6 2
  • 其實(shí)好的不止媽媽?zhuān)乓彩俏疑胁豢苫蛉钡囊徊糠钟セ簟L拍兀褪菭敔數(shù)膵寢專(zhuān)职值哪棠獭?我的家族甚是龐大茵乱,曾經(jīng)一...
    咸陽(yáng)閱讀 430評(píng)論 0 2