在ActionScript的几个变量名中看到的uu的意义是什么?
我是actionscript新手,我注意到actionscript中的许多变量名都以u开头,我想知道它的意义是什么?actionscript中的私有变量前面往往有一个u。在Actionscript 2.0中,变量表示它是对象的内置属性。然而,我在3.0面世之前就停止使用Actionscript了,所以据我所知,它可能会在3.0版中发生变化。您可能会看到一个新的应用程序。从语言的角度来看,这没有什么特别的意义。的确,在JavaScript中,人们用“不要碰这个值”来表示,因为控制JavaScript中的访问级别是相当棘手的。。。让一个变量真的无法从外部获取是一件非常痛苦的事情 在ActionScript 2.0和1中,绝对没有规则…:D例如,在类在ActionScript的几个变量名中看到的uu的意义是什么?,actionscript,Actionscript,我是actionscript新手,我注意到actionscript中的许多变量名都以u开头,我想知道它的意义是什么?actionscript中的私有变量前面往往有一个u。在Actionscript 2.0中,变量表示它是对象的内置属性。然而,我在3.0面世之前就停止使用Actionscript了,所以据我所知,它可能会在3.0版中发生变化。您可能会看到一个新的应用程序。从语言的角度来看,这没有什么特别的意义。的确,在JavaScript中,人们用“不要碰这个值”来表示,因为控制JavaScrip
MovieClip
中,在ActionScript2.0中,您有类似\ux
和\uy
的属性。。。然而,最好的方法是可聚焦
与\u focusrect
,两个布尔值,一个决定剪辑是否可以聚焦,另一个决定它在聚焦时是否有黄色矩形
要么这真的与flash播放器内部的一些东西有关,要么只是随机的。。。请注意,有\u global
、\u root
和\u accProps
,除此之外,它仅出现在文本字段
、MovieClip
和按钮
的属性上
(两个下划线)表示flash播放器中的魔法<代码>\u解析
是一种非常神奇的方法。。。如果你愿意的话,\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。。。但同时,这在任何地方都不是很一致
现在说到ActionScript3.0,整个API不使用任何下划线。。。包括我在内的许多人选择用$
s和\uucode>表示私有
、受保护
和内部
变量。。。但这是一个完全任意的命名约定,应该使代码可读并防止命名冲突
格里茨
back2dos简单-{变量名}表示它是私有的
在AS3中,定义getter和setter,如
public function get myVar ():String
{
return _myVar;
}
这最终在类外是透明的,并显示为
myclass.myvar
因此,AS3中的getter和setter本质上看起来像是模糊属性。所以你需要一些方法来区分-所以你的隐私以“uu”开头。这是可以写的
class Hello{
private var x:Number;
public function get x():Number{...}
public function set x(value:Number):void{...}
protected var y:Number;
public function get y():Number{...}
public function set y(value:Number):void{...}
}
但是每次从类或子类中访问它们时,您都需要指定您所指的是哪一个,因为它们具有相同的名称(这是可能的,因为它们位于不同的名称空间中)。这看起来像
var before:Number = private::x;
或者使用getter:
var before:Number = public::x;
对于受保护的变量,这甚至会在所有子类中继续
不喜欢下划线的人可以使用任何其他语法使名称唯一,例如c#中的getter和setter的首字母大写。我倾向于在所有私有变量前面加上“”,即使没有getter或setter。这种方法允许我在浏览代码时,立即知道任何函数何时在操作其私有变量。这似乎是一件小事,但却很有用
除非您完全知道自己在做什么,否则不要使用受保护的变量。他们是邪恶的。使用它的唯一原因是允许子类访问超类中的变量。但是,如果受保护变量的值对超类非常重要,那么超类永远不会知道子类是否修改了它。最好将其私有化,并为子类提供一个受保护的getter和/或setter,尽管这需要做更多的工作。通过这种方式,超类可以响应任何更改值的尝试。我认为这是一种命名约定,我想知道它的含义。@Anton这就是我包含链接的原因,这样您就可以理解命名约定的重要性。然而,从语言的角度来看,它是无关紧要的。