我正在关注关于 AS3 中的 OOP 和 setter/getter 和覆盖的教程。
在本教程中,我们创建了一个类,将extends
asprite
用作包含 ashape
和 a的按钮textfield
。
教程作者演示了,如果您使用height
类的属性(从如下所示一路继承DisplayObject
:
button.height = 100;
那么不仅shape
按钮的 会放大,而且其中textfield
的字体也会放大。作者不想要这个,他只想shape
放大 ,同时保持字体大小不变。他通过以下方式做到这一点:
override public function set height(h:Number):void {
// Custom code here.
}
这让我很困惑,因为仔细查看了 Adobe 的 AS3 API 参考,我看不到任何method
设置DisplayObject
' 高度的东西。我只能看到一个property
for height
。
在进入override
作者之前确实解释过setters and getters
,所以我理解了这个概念。但是,我不明白你怎么能看到override
一个setter
似乎不存在的东西?
我会假设能够覆盖首先必须存在的任何东西。
如果有人可以解释这种技术,我将非常感激,或者可能会指出我对此的更多阅读。