0

例から始めます

ImageButton {
    defaultImageSource: "asset:///images/test_p.png"
    pressedImageSource: "asset:///images/test_p_pressed.png"

    attachedObjects: [ 
        OrientationHandler { //gives "orientation"
            onOrientationAboutToChange: {
                if (orientation == UIOrientation.Landscape) {
                    defaultImageSource = "asset:///images/test_l.png"
                    pressedImageSource = "asset:///images/test_l_pressed.png"
                } else {
                    defaultImageSource = "asset:///images/test_p.png"
                    pressedImageSource = "asset:///images/test_p_pressed.png"
                } 
            }
        }
    ]  
}

画面の回転は問題なく機能します。横向きの場合は _l を使用し、縦向きの場合は _p 画像を使用します。問題は、横向きでアプリを起動すると、_l 画像ではなく _p が表示されることです (デフォルトであるため)。onCreationCompleted で向きを確認するにはどうすればよいですか?

4

1 に答える 1

0

私はそれを理解しました、それは本当に明白なものです。OrientationHandler に id を設定し、onCreationCompleted で使用します。

ImageButton {
    defaultImageSource: "asset:///images/test_p.png" //do I still need this?
    pressedImageSource: "asset:///images/test_p_pressed.png"

    attachedObjects: [ 
        OrientationHandler { //gives "orientation"
        id: orientationHandler //make id so you can call it
            onOrientationAboutToChange: {
                changeImages(orientation);
            }
        }
    ]  
    function changeImages(orientation){
        if (orientation == UIOrientation.Landscape) {
            defaultImageSource = "asset:///images/test_l.png"
            pressedImageSource = "asset:///images/test_l_pressed.png"
        } else {
            defaultImageSource = "asset:///images/test_p.png"
            pressedImageSource = "asset:///images/test_p_pressed.png"
        } 
    }
    onCreationCompleted: {
        changeImages(orientationHandler.orientation); //call it here
    }
}
于 2013-08-29T17:32:45.530 に答える