「我原來」你必須接受NAVIGATOR_WINDOW_ACTIVE時要調用的幾件事情:
bps_event_t *event = NULL;
for (;;)
{
if (BPS_SUCCESS != bps_get_event(&event, 0))
{
fprintf(stderr, "bps_get_event failed\n");
break;
}
if (event)
{
int domain = bps_event_get_domain(event);
if (domain == navigator_get_domain())
{
UINT ID = bps_event_get_code(event);
if (ID == NAVIGATOR_EXIT)
{
exit_application = 1;
}
else if(ID == NAVIGATOR_WINDOW_ACTIVE)
{
SetRotationDammIt();
}
}
}
}
//...
void SetRotationDammIt()
{
int angle = 90;
screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_ROTATION, &angle);
navigator_set_orientation(NAVIGATOR_RIGHT_UP, NULL);
}
有幾件事情留給雖然修復。你需要的分辨率獲取切換X爲Y,因爲窗口是本身仍處於縱向模式(X < Y),你也必須做一個開關aroo與輸入類似:
float RatioX = TouchX/PortraitX;
float RatioY = TouchY/PortraitY;
Vector2 Res(PortraitY, PortraitX);
Vector2 RealCoords(RatioX * Res.x, RatioY * Res.y);
這似乎只雖然發生在最新的模擬器上(版本10.1.0.1720,請注意,我沒有物理設備,以防萬一這對您不起作用),但在較舊的模擬器上,它僅與清單設置一起工作(出於某種原因),但我需要這個才能播放.wav文件,導致較舊的文件無法播放。
我沒有QML文件,它是純粹使用BlackBerry平臺服務的C++應用程序 – donturner
我更新了我的答案,請檢查;我希望它能解決您的問題 – hakim
非常感謝您的更新。對不起,我應該更具體:我沒有使用**瀑布**。這是一個OpenGLES應用程序,它不包含任何Cascades庫,所以我不能使用'OrientationSupport'類。 – donturner