Ext.application startupImage

时间:2012-10-06 13:25:37

标签: sencha-touch-2

我从Sencha Touch 2.1中的Carousel示例开始。在app.js文件中,我看到“startupImage”属性,它定义了我们想要使用的图像的不同大小。然而,我似乎无法找到有关此属性的任何文档。在文档中,他们谈论了特定于Apple iOS世界的“”和“”。但是,如果我们使用Sencha Touch,那是因为我们不想与特定的公司挂钩(这看起来很明显)。

我想知道的是,它是如何运作的?有2个参数,一个是resoluton,第二个是png文件的路径。我们可以修改第一个参数,还是必须制作符合这些数字的png文件?

Ext.application({    

    name: 'TestSencha',

    requires: [
        'Ext.MessageBox'
    ],

    views: ['Main', 'PicViewer', 'Extras'],

    icon: {
        '57': 'resources/icons/Icon.png',
        '72': 'resources/icons/Icon~ipad.png',
        '114': 'resources/icons/Icon@2x.png',
        '144': 'resources/icons/Icon~ipad@2x.png'
    },

    isIconPrecomposed: true,

   startupImage: {
       '320x460': 'resources/startup/320x460.jpg',
       '640x920': 'resources/startup/640x920.png',
       '768x1004': 'resources/startup/768x1004.png',
       '748x1024': 'resources/startup/748x1024.png',
       '1536x2008': 'resources/startup/1536x2008.png',
       '1496x2048': 'resources/startup/1496x2048.png'
    },

// rest of code goes here....

1 个答案:

答案 0 :(得分:1)

我建议您在ST2 SDK中查看 src / core / Ext-more.js

基本上它会扫描应用程序配置中定义的startupImage并测试设备的操作系统及其设备比例,并像这样调用addStartupImage

if (Ext.os.is.iPad) {
    if (devicePixelRatio >= 2) {
        // Retina iPad - Landscape
        if ('1496x2048' in startupImage) {
            addStartupImage(startupImage['1496x2048'], '(orientation: landscape)');
        }
...

这是addStartupImage

function addStartupImage(href, media) {
    var link = document.createElement('link');
    link.setAttribute('rel', 'apple-touch-startup-image');
    link.setAttribute('href', href);
    if (media) {
        link.setAttribute('media', media);
    }
    head.append(link);
}

以下是解释。

希望这有帮助