cocoscreator全平臺(tái)橫豎屏切換

筆者所使用的方案經(jīng)歷了正式的線上項(xiàng)目使用喇勋,請放心食用

假設(shè)項(xiàng)目的設(shè)計(jì)分辨率為1920x1080


一酗钞、全平臺(tái)通用邏輯

無論是Android岸裙、IOS還是h5揩页,進(jìn)行橫豎屏切換旷偿,都需要執(zhí)行下面對應(yīng)代碼,

而h5執(zhí)行之后爆侣,就能完美適配橫豎屏切換了萍程。

Andriod、IOS 還需要一些其他的處理兔仰。

首先

// 獲取屏幕物理分辨率

let frameSize = cc.view.getFrameSize()

豎屏

cc.view.setOrientation(cc.macro.ORIENTATION_PORTRAIT)?

if (frameSize.width > frameSize.height)

? ??????cc.view.setFrameSize(frameSize.height, frameSize.width)

// this.canvas 為當(dāng)前fire場景的畫板??

this.canvas.designResolution = cc.size(1080, 1920)

橫屏

cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE)

if (frameSize.height > frameSize.width)

? ??????cc.view.setFrameSize(frameSize.height, frameSize.width)

this.canvas.designResolution = cc.size(1920, 1080)



二茫负、Android原生處理

豎屏

// instance 為AppActivity,我的做法是做了對象?public static AppActivity instance乎赴,然后在 onCreate 賦值

instance.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);

橫屏

// instance 為AppActivity忍法,我的做法是做了對象?public static AppActivity instance,然后在 onCreate 賦值

instance.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

上面的兩個(gè)函數(shù)榕吼,需要腳本層通過反射調(diào)用饿序。



三、IOS原生處理

// 首先羹蚣,將設(shè)備方向設(shè)為未知嗤堰,這段必要,否則直接切換橫豎屏度宦,有可能會(huì)切換失敗

[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIDeviceOrientationUnknown] forKey:@"orientation"];

float w = cocosView.bounds.size.width;

float h = cocosView.bounds.size.height;

豎屏

oMask = UIInterfaceOrientationMaskPortrait;

[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationPortrait] forKey:@"orientation"];

if (w > h){

? ??????cocosView.bounds = CGRectMake(0, 0, h, w);

}

橫屏

oMask = UIInterfaceOrientationMaskLandscape;

[[UIDevice currentDevice] setValue:[NSNumber numberWithInteger:UIInterfaceOrientationLandscapeRight] forKey:@"orientation"];

if (h > w){

? ??????cocosView.bounds = CGRectMake(0, 0, h, w);

}

最后不管橫豎屏

cocosView.center = CGPointMake(cocosView.frame.size.width * 0.5, cocosView.frame.size.height * 0.5);



四、Android告匠、IOS 通用腳本處理

?IOS戈抄、Android設(shè)備在屏幕旋轉(zhuǎn)的時(shí)候并不會(huì)觸發(fā)布局重新刷新,但是我們可以主動(dòng)調(diào)用事件觸發(fā)刷新

window.dispatchEvent(new cc.Event.EventCustom('resize', true))

為什么resize能刷新能后专,你可以在CCWidgetManager.js划鸽,找到如下代碼

init: function init(director) {

...

? ??if (cc.sys.isMobile) {

? ??????window.addEventListener('resize', this.onResized.bind(this));

? ? }

...

}

onResized: function onResized() {

? ??var scene = cc.director.getScene();

? ??if (scene) {

? ??????this.refreshWidgetOnResized(scene);

? ? }

}

更詳細(xì)的自己去跟蹤引擎代碼吧。



至此全平臺(tái)的屏幕旋轉(zhuǎn)實(shí)現(xiàn)戚哎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末裸诽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子型凳,更是在濱河造成了極大的恐慌丈冬,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甘畅,死亡現(xiàn)場離奇詭異埂蕊,居然都是意外死亡往弓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門蓄氧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來函似,“玉大人,你說我怎么就攤上這事喉童∑材” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵堂氯,是天一觀的道長蔑担。 經(jīng)常有香客問我,道長祖灰,這世上最難降的妖魔是什么钟沛? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮局扶,結(jié)果婚禮上恨统,老公的妹妹穿的比我還像新娘。我一直安慰自己三妈,他們只是感情好畜埋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著畴蒲,像睡著了一般悠鞍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上模燥,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天咖祭,我揣著相機(jī)與錄音,去河邊找鬼蔫骂。 笑死么翰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辽旋。 我是一名探鬼主播浩嫌,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼补胚!你這毒婦竟也來了码耐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤溶其,失蹤者是張志新(化名)和其女友劉穎骚腥,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瓶逃,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡桦沉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年每瞒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纯露。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剿骨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出埠褪,到底是詐尸還是另有隱情浓利,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布钞速,位于F島的核電站贷掖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏渴语。R本人自食惡果不足惜苹威,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驾凶。 院中可真熱鬧牙甫,春花似錦、人聲如沸调违。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽技肩。三九已至且轨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間虚婿,已是汗流浹背旋奢。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留然痊,地道東北人黄绩。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像玷过,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子筑煮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

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