可点击的手绘组件的最简单祖先?

Posted

技术标签:

【中文标题】可点击的手绘组件的最简单祖先?【英文标题】:Simpliest ancestor for a clickable, hand-drawn component? 【发布时间】:2011-01-08 10:46:03 【问题描述】:

我正在创建一个大加号或大减号的组件。我不想使用位图,因为即使我可以使用 Graphics 类来绘制它,但组件必须是可点击的(Shape 类不是)。

它将成为项目渲染器的一部分,因此我希望它尽可能轻巧。 UIComponent 似乎没有发送 CLICK 消息。

感谢您的任何想法

【问题讨论】:

我不建议你手绘组件,它可能会损坏你的屏幕。 【参考方案1】:

我建议创建一个 Sprite 对象并将减号和加号箭头绘制到它的图形对象上。然后你必须 addEventListener(MouseEvent.CLICK, someFunction);在它的构造函数中或其他任何你需要它的地方。

此时您可能还想将 cacheAsBitmap 设置为 true,这样就不会在每一帧都重绘它。


编辑:根据@jeremyne​​albrown,如果您在 Flex 中工作,显然您必须使用 SpriteAsset 类。非常相似,但增加了另外 2 个抽象级别。

【讨论】:

Sprite 是您可以访问图形对象和 MouseEvent.CLICK 事件的***别。 Sprite 本质上与 MovieClip 相同,但没有时间线。 Sprite 在层次结构中比 MovieClip 更高,因此它会更轻量级。 我猜你是这么看的,high-lower 没错,我通常将基类视为位于顶部,而其他一切都来自它。不知道为什么... 两者都不适用于 Flex 框架,您需要使用 SpriteAsset 或 MovieClipAsset。【参考方案2】:

如果你看这里: UIComponent Docs

您将看到 UIComponent 在其继承路径中有 InteractiveObject。 InteractiveObject 是添加鼠标事件功能的类。

【讨论】:

【参考方案3】:

UIComponent 实际上会派发点击事件。但是,如果没有内容绘制到图形上,则 UIComponent 将没有可单击的区域。如果您绘制的加号或减号图标太小而无法可靠地捕捉鼠标活动,请绘制一个完全透明的矩形以增加点击区域。

【讨论】:

正是我要回复的内容:)

以上是关于可点击的手绘组件的最简单祖先?的主要内容,如果未能解决你的问题,请参考以下文章

在项目之间共享 React 组件的最简单方法是啥? [关闭]

Vue单文件组件中启用管道操作符的最简单方法

在 2 个 React 组件之间传递单个值的最简单方法是啥?

这是在 React js 中的按钮 onClick 中调用功能组件的最简单方法

仅使一列可排序的最简单方法

创建可读 JSON 字符串的最简单方法是啥?