with语句指向自身的小办法 |
| 作者:佚名 来源:awblog 作者: aw 更新:2007-1-13 20:36:57 错误报告 我要投稿 |
|
恩,对于with,不知道各位flasher们是一个什么样的了解。其实,with从理论上并不是一个非常重要的语句,没有with,很多功能照样可以实现,因为with本身并不负责创建、回收任何SWF中的资源。 然而,with的出现却大大方便了我们设计人员。代码中的with能让我们更加清晰的对特定的MC进行管理。 比如,在一段复杂的逻辑控制中要对mc1,mc2,mc3进行操作,用with能让程序结构更加清晰。
with(mc1){ //.... } with(mc2){ //... } with(mc3){ //... }
而且with和能够返回MC实例的方法结合使用能让程序更加简化,例如
with(mc0.duplicateMovieClip("aw",1)){ //set the Properties for the mc-aw }
然而,有一个问题一直是困扰众多Flasher包括我的。那就是this在with中的指向。 在with中,用_x,_y,_width这些属性可以访问本身mc的相关属性,可是惟独this无法指向自己。这是跟with语句本身的内核有关的。我曾经为此而郁闷很久,比如我要给这个mc增添一个变量,却不能用this.myVar = xxx;其实我们不必在意这些,因为根据mc本身的属性找到自己,也不是不可能。这里就要用到两个很容易被大家忽视的属性:_parent , _name。
只需要设置一个句柄指向自己就可以了,我们可以设置为
getThis = _parent[_name];
这样,getThis就等同于this了。对mc进行更多的操作可以用getThis了,例如增设变量可以用
getThis.t = 19;
而直接写“t=19”事实上是把这个值赋于了父级的mc。 有趣的是,用with再对getThis嵌套,仍然可以得到本身,这样可以写出无穷层次的嵌套。当然这只是为了说明getThis的作用,没有任何意义。
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |