0

Я играл с мобильным игровым разработчиком, используя Cocos Creator, который построен поверх Cocos2d-JS. Вопрос в том, как мы можем обнаружить изменение ориентации в игровом приложении на Android с помощью Javascript?Как определить изменение ориентации в Android с помощью Javascript (Cocos2d-JS)

Элемент «окно» и «документ» недоступен, и нет событий изменения ориентации. Я попытался обнаружить изменения, используя размер экрана, вместо этого, используя cc.view.getFrameSize(), что должно быть эквивалентно получению размера холста (порт просмотра). Я начал с получения {width:2560, height:1440} в ландшафтном режиме.

Но когда я повернул устройство в портретный режим, cc.view.getFrameSize() все еще возвращал мне {width:2560, height:1440}. Однако, с помощью ADB LogCat я мог видеть события ниже:

> 09-29 19:24:50.151 3449 3449 V WindowOrientationListener: 
> OrientationSensorJudge.onSContextChanged, Rotation: 0 09-29 
> 19:24:50.161 3449 3526 V WindowOrientationListener: 
> OrientationSensorJudge.getProposedRotation, Rotation: 0 09-29 
> 19:24:50.161 3449 3526 V WindowManager: 
> rotationForOrientationLw(orient=4, last=1); user=0 sensorRotation=0 
> mLidState=-1 mDockMode=0 mHdmiPlugged=false 
> mMobileKeyboardEnabled=false displayId=0 09-29 19:24:50.161 3449 3526 
> V WindowOrientationListener: 
> OrientationSensorJudge.getProposedRotation, Rotation: 0 09-29 
> 19:24:50.161 3449 3526 D SamsungWindowManager: setRotationLw() : 
> rotation=0 09-29 19:24:50.201 3449 3965 I InputReader: Reconfiguring 
> input devices. changes=0x00000004 09-29 19:24:50.201 3449 3965 I 
> InputReader: Device reconfigured: id=4, name='sec_touchscreen', **size 
> 1440x2560,** orientation 0, mode 1, display id 0 

Размер изменился на 1440x2560 вместо этого. Но кадр, возвращаемый функцией, не меняется. :(

Любых советов о том, как решить эту проблему? Я не пробовал для прошивки еще, но любые пункты о том, как сделать это на прошивке также будут оценен!

Спасибо.

+0

Элемент 'window' и 'document' недоступен Почему? Это глобальные элементы. – Deep

+0

@Deep perhap потому что это не веб-просмотр? – evkwan

ответ

0

После копаться в Cocos2d Forum немного, this thread предполагает, что в телефоне пока нет способа обнаружить изменение ориентации. На данный момент можно заблокировать ориентацию только на начальном этапе, и при необходимости программно изменить ориентацию.

 Смежные вопросы

  • Нет связанных вопросов^_^