合肥卓想动画工作室 承接全国+flash动画制作 + flash动画设计 + 各类flash动画制作设计


联系方式

Flash 5切换到Flash MX中时遇到变量的作用域问题

时间:2013-08-21 09:23来源:卓想动画http://www.zxgzs.com 作者:QQ:610929375 点击:


 

程序员从Flash 5切换到Flash MX中时遇到的第一个问题是变量的作用域。我的意思是什么变量范围的是:我在哪里定义我的变量?从我在哪里可以访问它们。在Flash 5中,一切都非常简单。现在是有点不同的,面向对象的,但很容易习惯。让我们看一个例子,看看事情如何在Flash 5:
/ /假设你定义的myVar的主时间轴上的= 5
/ /然后在您的剪辑:
onClipEvent(enterFrame事件)
{
  myVar的+ +;
  跟踪(MYVAR)的;
}
这将返回... 1,2,3,4 ......为什么呢?因为Flash看起来myVar的在时间轴上的影片剪辑的一个变量,但这个变量被定义在_root。这就是,变量为什么从它的默认值:0。使其工作,你就必须,告诉Flash在哪里可以找到的变量,也就是说写_root.myVar的+ +;然后跟踪(_root.myVar)。然后,你会得到6,7,8 ...
其他的解决方案是定义myVar的影片剪辑的时间轴中,例如,当你加载的剪辑。我浓缩一下代码:
onClipEvent(负载){MYVAR = 5;}
onClipEvent(enterFrame事件){跟踪(myVar的+ +);}
现在用Flash MX有什么新?是的,动态的事件处理程序。所以,当你声明一个动态的事件处理程序,而你是指在它的变量,Flash将时间轴上的处理程序的位置已经被定义为变量。试想一下,你在第一帧的影片有这样的代码:
_root.createEmptyMovieClip(“测试”,1);
i = 5时;
test.onEnterFrame =功能()
{
  跟踪(_root.i);
  迹线(一);
  跟踪(this.i);
}
现在,让我们来看看这个。我创建了一个空的影片剪辑名为test的_root,然后我初始化变量i 5。因此,这个变量是位于_root。最后,我们分配一个动态的事件处理程序进行测试影片剪辑,告诉它跟踪3个变量:
•_root.i / /返回5
这是我们宣布的变量_root,没问题。
•I / /返回5
现在我们看到了,我,我们指的是还我宣布在_root,而不是一个变量相对的对象。
•this.i / /返回未定义
比这更多:如果我们看一下里面的对象的变量,没有之一。
这是Flash 5和Flash MX中之间最大的区别之一:Flash 5中检查声明变量时,如果有一个路径的变量(_root,_root.mc1 ...),在这种情况下,一切工作正常。如果没有,他使得相对于对象声明的变量的变量。这意味着,如果你申报操纵一个变量的一个函数,它的影片剪辑中,Flash将局部变量的影片剪辑,所以也不会有任何问题。
 
Flash MX中声明一个变量时,检查的路径,如果没有任何问题,它会使被宣布的时间表,其中变量的变量相。这意味着,如果你_root声明一个函数,这个函数操纵变量没有在它前面的道路,所有的对象调用此函数将使用相同​​的变量在同一时间。
 

(责任编辑:卓想动画http://www.zxgzs.com)




上海 北京 深圳 广州 成都 杭州 重庆 武汉 苏州 合肥 亳州 天津 南京 沈阳 西安 青岛 大连 宁波 济南 哈尔滨 长春 厦门 郑州 长沙 福州 乌鲁木齐 昆明 兰州 无锡 南昌 贵阳 南宁 太原 石家庄 呼和浩特 佛山 东莞 唐山 烟台 泉州 包头 温州 淄博 海口 银川 西宁 南通 大庆 徐州 潍坊 常州 鄂尔多斯 绍兴 济宁 盐城 邯郸 临沂 洛阳 东营 扬州 台州 嘉兴 沧州 榆林 泰州 镇江 昆山 江阴 张家港 义乌 金华 保定 鞍山 泰安 宜昌 襄阳 中山 惠州 南阳 威海 德州 珠海 柳州 宿迁 芜湖 岳阳 菏泽 漳州 信阳 蚌埠 绵阳 株洲 邢台 桐城 桂林 衡阳 铜陵 三亚 阜阳 荆州 遵义 咸阳 驻马店 上饶 湛江 湘潭 汕头 莆田 滁州 廊坊 赣州 肇庆 九江 德阳 淮安 曲靖 湖州 揭阳 许昌 秦皇岛 江门 新乡 潮州 商丘 宁德 吉林 连云港 常德 宜春 黄冈

卓想动画 版权所有 flash作业- 网页设计作业
返回首页   |   电话咨询   |   微信咨询