저는 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에서 그것을 수행하는 방법에 대한 어떤 장소로는 이해할 수있을 것이다!
감사합니다.
'window'및 'document'요소를 사용할 수 없습니다 이유는 무엇입니까? 이것은 전체 요소입니다 – Deep
@Deep perhap 그것 때문에 webview 아니에요? – evkwan