0

我想快速入门。 我的问题是什么: 在ST2中,我使用MVC模式构建了我的应用程序。我有一个商店,一个模型,一个控制器和视图(更多信息向下滚动)。Sencha Touch 2:数据整合或如何在sencha和javascript之间共享动态信息

工作流程:

  • 我点击列表项(List View与来自商店元素列表)
  • 控制器作用的事件“itemtap”
  • 控制器功能正在寻找主视图和推详细视图
  • 记录数据将设置为数据
  • 详细视图使用.tpl来生成输出并使用数据

问题 现在我想添加一个按钮或链接来启用音频支持。 我想过一个JavaScript函数,它使用Phonegap中的Media方法播放音频 ,我想在我的详细信息视图中动态添加此功能。

你有什么想法我可以达到那种行为?如果有任何问题,我正在寻找典型的“sencha”解决方案。所有文件的

详细概述从这里开始

我的列表中显示的一些数据和详细资料视图直观进一步的信息以选定的记录。 列表和详细查看容器内的收集,我给你一个概述:

集装箱:

Ext.define('MyApp.view.ArtistContainer', { 
    extend: 'Ext.navigation.View', 
    xtype: 'artistcontainer', 
    layout: 'card', 
    requires: [ 
    'MyApp.view.ArtistList', 
    'MyApp.view.ArtistDetail' 
    ], 

    config: { 
    id: 'artistcontainer', 
    navigationBar: false, 
    items: [{ 
     xtype: 'artistlist' 
    }]} 
}); 

列表

Ext.define('MyApp.view.ArtistList', { 
    extend: 'Ext.List', 
    xtype: 'artistlist', 

    requires: [ 
    'MyApp.store.ArtistStore' 
    ], 
    config: { 
    xtype: 'list', 
    itemTpl: [ 
     '<div>{artist}, {created}</div>' 
    ], 
    store: 'ArtistStoreList' 
    } 
}); 

详细查看

Ext.define('MyApp.view.ArtistDetail', { 
    extend: 'Ext.Panel', 
    xtype: 'artistdetail', 

    config: { 
    styleHtmlContent: true, 

    scrollable: 'vertical', 
    title: 'Details', 
    tpl: '<h2>{ title }</h2>'+ 
      '<p>{ artist }, { created }</p>'+ 
      '<a href="#">{ audio }</a>'+ 
      '', 
    items: [ 
     //button 
     { 
      xtype: 'button', 
      text: 'back', 
      iconCls: 'arrow_left', 
      iconMask: true, 
      handler: function() { 
       var elem = Ext.getCmp("artistcontainer"); 
       elem.pop(); 
      } 
     } 
    ] 
    } 
}); 

最后控制器

Ext.define('MyApp.controller.Main', { 
    extend: 'Ext.app.Controller', 

    config: { 
    refs: { 
     artistContainer: 'artistcontainer', 
    }, 
    control: { 
     'artistlist': { 
      itemtap: 'showDetailItem' 
     } 
    } 
    }, 

    showDetailItem: function(list, number, item, record) { 
    this.getArtistContainer().push({ 
     xtype: 'artistdetail', 
     data: record.getData() 
    }); 
    } 
}); 

PUH,很多东西阅读

+0

我不确定你需要问题中的所有细节。我仍然不明白你真正想要什么:点击链接时你需要播放音乐文件吗? – Jay 2012-03-27 00:55:35

+0

我试图在点击按钮或链接时播放音乐。但是音乐数据文件是动态的。我想添加一个JavaScript函数的引用,并在参数中添加文件名。 javascript函数将处理所有音乐内容。 – 2012-03-27 09:04:25

回答

0

Here你可以看到如何从煎茶触摸“音频”外部URL加载音频的例子零件。没有与它合作,但我认为它适合您的需求。声明它如下简单:

var audioBase = { 
     xtype: 'audio', 
     url : 'crash.mp3', 
     loop : true 
    }; 

我将重复使用该组件并通过动态设置url加载歌曲或声音项目。顺便说一下,我在Chrome和Ipad2上试过它,并且运行良好,但在HTC Desire Android 2.2默认浏览器上失败。