我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 图型图像 > FLASH > Flash全局变量让你告别繁琐的路径
热门文章排行
热门文章排行 Photoshop制作精美的简历封面(10-12)
在Flash课件中正确调用SWF文件(11-25)
巧用Photoshop徒手绘制扇子(10-19)
CorelDRAW12循序渐进-制作文本效果(12-29)
消除文字勾边后产生毛刺的小技巧(06-14)
精采文章排行
精采文章排行 GIF动态图片的修改(11-07)
Q版人物绘制全过程(11-07)
Flash互动电子地图制作手册——入门(11-01)
Flash 8.0前瞻——揭开8 ball的薄面(10-24)
土人AS入门教程对象篇(10-24)
技术专题推荐
网管论坛交流
 

Flash全局变量让你告别繁琐的路径 

作者:佚名   来源:Linux 宝库   点击:   日期:2006-11-25


-->

有时候,有一些非常重要的MovieClip,比如一些操作信息的提示类型的MC(比如叫做“a”),需要不断的改变其属性,比如一个文本框。而这些改变又是由许多不同的MC或者Button的一些事件触发的,甚至,触发这些事件的Button和MC在很远的路径,要找到我们这个a,需要拐很多弯路。那么这时候,可以在a建立好了之后直接将a保存在一个全局变量中。注意,我们只是保存一个指向,而非一个MC实例。那么,以后再其他路径下对a的操作,则可以把繁琐的_parent.这些全部去掉了。


    当然,关于传统方法和全局变量引用法之间是否存在效率差异,这个还说不清楚。我做过如下测试


_global.r_hint_mc = _root.createEmptyMovieClip("a", 1);
//前缀r,代表reference,指向的意思。
with (r_hint_mc) {
  swapDepths(10);
}
with (a) {
  trace(getDepth());
 //可见with方法可以成功调用全局MC的指向,深度的确给改变了。
}
b.onRelease = function() {
  testa = getTimer();
  trace("called");
  for (var j = 1; j<100000; j++) {
     r_hint_mc.newArray = new Array()
     r_hint_mc.newArray[j]=r_hint_mc._currentframe 
    // the result is about 2400 - 2500
    // No big change in MC
    // the result is about 2250 in a MCEvent!!!
    //----- Local Looking
    //this._parent.a.newArray = new Array();
    //this._parent.a.newArray[j] = r_hint_mc._currentframe;
    // the result is about 2200 - 2300
    // the result is about 2300 - 2500 in a MC!!!!
    // the result is about 2050 in a MCEvent
  }
  trace(getTimer()-testa);
};
/* 结论:


    全局引用:

 

    ?在同一个时间轴下,不如传统引用


    ?在不同时间轴下(单独放到MC的时间轴),优越于传统引用


    ?在一个MC事件处理中(并不放到这个MC的时间轴中),不如传统引用


    个人觉得第三种(即事件处理)在比较复杂的应用中最频繁用到,故也体现出全局变量的一些效率劣势,但是相比而言,程序的可维护性着实提高了.




文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·消除文字勾边后产生毛刺的小技巧 · 解决COREDRAW9与双核CPU冲突的技巧 5
·CorelDRAW入门与进阶实例:8.2椭圆按钮制 ·CorelDRAW印前分色新手上路
·IllustratorCS制作刺绣效果 ·CorelDRAW使用技巧-如何在CorelDRAW中虚

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。