首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将对现有内核方法的修改保存到Monticello

将对现有内核方法的修改保存到Monticello
EN

Stack Overflow用户
提问于 2013-05-11 08:54:15
回答 1查看 101关注 0票数 1

我正在研究Phratch (Smalltalk中的Scratch 2.0 ),并修改了InputEventSensor>>processEvent方法以存储最后一个按下的键,其方式类似于如何存储修饰符键,以便它们if <key> pressed块工作。

所以我现在有一个定制的InputEventSensor类:

  • 新实例变量keyPressed
  • 改进方法processEvent
  • 新方法keyPressedclearKeystate

新方法位于一个类别*Phratch中,很好,因此这些方法被保存到Phratch Monticello包中。但是processEvent呢,应该移到*Phratch类别吗?实例变量呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-12 12:04:19

有几件事正在发生:)。

首先,将现有的方法移动到项目的包中就是我们所称的覆盖。也就是说,当您将包加载到映像中时,现有的方法定义将被定义过度。我不会建议只有在极端需要的时候才让它凌驾于上。实际上,最好的方法应该是创建钩子,将它们集成到法老的代码库中,然后将项目插入给定的钩子:)。

关于使用实例变量扩展类,我认为Monticello并没有真正处理这个问题。一个可能的解决方案是在元配置中添加预加载操作,将实例变量添加到给定的类中。这样,inst就会在方法之前安装。

第三,也是最后一个,了解是否仍然按下某个键的真正好方法是侦听KeyDown和KeyUp事件。当给出KeyUp事件时,会释放一个键。但是,keyDown和keyUp事件目前还不能在there上正常工作(在所有平台中,用于识别密钥的密钥代码都会产生OS特定的值,而且有些密钥还没有很好地处理)。但是,我相信这将在即将到来的3.0版本的法罗更好。

当然,如果您想让这几点变得更好,您可以做出贡献:)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16495436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档