延长课第二次煎茶触摸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.View1
,Ext.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延长曲线