0

我正在关注关于 AS3 中的 OOP 和 setter/getter 和覆盖的教程。
在本教程中,我们创建了一个类,将extendsasprite用作包含 ashape和 a的按钮textfield

教程作者演示了,如果您使用height类的属性(从如下所示一路继承DisplayObject

button.height = 100;

那么不仅shape按钮的 会放大,而且其中textfield的字体也会放大。作者不想要这个,他只想shape放大 ,同时保持字体大小不变。他通过以下方式做到这一点:

override public function set height(h:Number):void {
// Custom code here.
}

这让我很困惑,因为仔细查看了 Adob​​e 的 AS3 API 参考,我看不到任何method设置DisplayObject' 高度的东西。我只能看到一个propertyfor height

在进入override作者之前确实解释过setters and getters,所以我理解了这个概念。但是,我不明白你怎么能看到override一个setter似乎不存在的东西?
我会假设能够覆盖首先必须存在的任何东西。

如果有人可以解释这种技术,我将非常感激,或者可能会指出我对此的更多阅读。

4

1 回答 1

2

属性并不总是公共变量。事实上,DisplayObjectheight属性同时具有 setter 和 getter 函数,因此 setter 存在并且可以被覆盖。

于 2013-07-18T14:51:17.643 回答