0

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

我想知道的是,它是如何工作的?有2个参数,一个是分辨率,第二个是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....
4

1 回答 1

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);
}

这是解释。

希望这可以帮助

于 2012-10-08T18:50:41.940 回答