延长课第二次煎茶触摸2

Posted

技术标签:

【中文标题】延长课第二次煎茶触摸2【英文标题】:Extend Class second time sencha touch 2 【发布时间】:2015-02-06 22:10:36 【问题描述】:

我在 Sencha Touch 2 中扩展了我的实用程序/类,现在我想通过不同的类型再次扩展它,例如通过配置对象中的不同设置。 我再次扩展了它,但是当它只是扩展时(通过再次添加extend: 'Ext.ux.MyUX')它返回前一个对象中的先前设置,但我想完全不同地处理它。 如何删除以前的扩展类或清空 items[]

Ext.define('MyAPP.view.MyView', 
    extend: 'Ext.ux.MyUX',
    xtype: 'my',
);

我的代码:

initialize: function() 
var items = [
            xtype: 'toolbar',
            docked: 'top',
            title:'title'
        ];
this.setItems(items);

编辑 1:

可以说,我有一个扩展我的Ext.ux.MyUX 的以下配置对象。对于第一个实例,它工作得很好,扩展了我的类并覆盖了items[],但是当我想再次扩展它时,对于不同的覆盖,它会显示以前覆盖/扩展的以前的items[]

config: 
        fullscreen: true,
        items : [
        
            title: 'Home'
        ,
        
            title: 'ABOUT',
            items: [
                items: [
                 xtype: 'about',
            
                xtype: 'titlebar',
                title: 'About Us',
                docked: 'top'
            ]
            ]
        

        ]
    

【问题讨论】:

你能发布基类和扩展类的完整代码吗? @Saki 一个简单的配置Ext.ux的物品就可以了。 仅从描述中,我不知道您想要实现什么以及有什么问题。所以我希望我能从代码中理解。 @Saki 请查看已编辑的帖子。谢谢 【参考方案1】:

即使您不打算进一步扩展该类,在类原型中包含items 也不是一个好主意。原型中的复杂变量由所有实例共享,如果您有多个实例,则不可避免地会导致麻烦。

如果你是你,我会创建一个包含后代所需的所有功能的基类,我会扩展它:

B -> C
B -> D

而不是

B -> C -> D

后代会根据需要实现项目。

【讨论】:

我目前正在使用Ext.ux.myUX-> MYAPP.view.View1Ext.ux.myUX-> MYAPP.view.View2,但是当我进行第二次扩展时,它会显示以前的项目。 有什么办法可以去掉扩展视图? 这很好,但不要在Ext.ux.myUX 中实现项目,而是在视图中实现。另一种选择是使用factory function。 我上面的解释是 MYAPP.view.View1 扩展 Ext.ux.myUX 和另一个类似。这不是真的/很好吗? 问题不在于扩展,问题在于原型中的复杂变量(对象、数组)——在本例中是项目。复杂变量通过引用传递,因此所有实例共享相同的项目,这通常不是我们想要的。【参考方案2】:

有一篇关于如何使用配置对象扩展类的非常有用的文章: http://skirtlesden.com/articles/config-objects-on-the-prototype

如果这没有帮助,我建议按照 Saki 的问题获取完整的源代码示例。例如。不清楚你在哪里实现了初始化函数以及你从哪个类派生出来。

【讨论】:

以上是关于延长课第二次煎茶触摸2的主要内容,如果未能解决你的问题,请参考以下文章

第二次触摸动画

AVAudioPlayer UIButton - 第二次触摸停止当前音频播放

允许 UIScrollView 在长按处于活动状态时通过第二次触摸滚动

UG NX二次开发(C#)-曲线-用CurveLengthBuilder延长曲线

UG NX二次开发(C#)-曲线-用CurveLengthBuilder延长曲线

第二次推送视图控制器xamarin ios后需要触摸以与tableview交互