0

저는 Cocos2d-JS 위에 구축 된 Cocos Creator를 사용하여 모바일 게임 개발자와 함께 놀았습니다. 문제는 Javascript를 사용하여 Android에서 게임 앱의 방향 변경을 어떻게 감지 할 수 있는가입니다.Javascript (Cocos2d-JS)를 사용하여 Android에서 방향 변경 감지 방법

'window'및 'document'요소를 사용할 수 없으며 방향 변경 이벤트가 없습니다. 캔버스 크기 (보기 포트)를 가져 오는 것과 동일해야하는 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으로 변경되었습니다. 그러나 함수에서 반환 된 프레임은 변경되지 않습니다. :(

이 문제를 해결하는 방법에 대한 팁? 난 아직 iOS 용 시도하지 않은,하지만 iOS에서 그것을 수행하는 방법에 대한 어떤 장소로는 이해할 수있을 것이다!

감사합니다.

+0

'window'및 'document'요소를 사용할 수 없습니다 이유는 무엇입니까? 이것은 전체 요소입니다 – Deep

+0

@Deep perhap 그것 때문에 webview 아니에요? – evkwan

답변

0

주위를 파고 후 Cocos2d 포럼에서 약간의 설명을 드리 자면, this thread은 아직 휴대 전화의 방향 변경을 감지 할 수있는 방법이 없다고 제안합니다. 처음에는 원래 방향으로 방향을 잠글 수 있고 필요한 경우 방향을 프로그래밍 방식으로 변경할 수 있습니다.