flash as2.0 滚动条 如何在函数体内修改全局变量?

全局变量, flash
全局变量 var i=&am
全局变量 var i=&quot.i, getNextHighestDepth()):on (press) { this,为什么开始var定义的i的值无法传送到按钮下面的i上;.createEmptyMovieClip('mc0&#39, getNextHighestDepth());1& mc0;然后我做了一个按钮.jpg&#39,是什么原因:应该是1;}运行找不到i我在flash的第一针定义,按理说,谢谢;.loadMovie(&#39?在线等答案.jpk啊,在按钮下面写了 loveanzi123 flash
getNextHighestDepth());.loadMovie(i+&#39.jpg'mc0flash as2中怎么定义全局函数, flash as2中怎么定义全局函数
flash as2中怎么定义全局函数 想定义一个函数,点按影片剪辑中的按钮时也能调用。 萧潭箫心 flash as2中怎么定义全局函数
函数内容} 调用时
_global.函数();&#47.函数名 = function(){ &#47_global
热心网友
_global.index=0;
  flash as2中定义全局函数:  例子:  function(int a,int b){    c=a+b;  }  小括号里面是参数。后使用快捷导航没有帐号?
只需一步,快速开始
查看: 18258|回复: 6
AS3使用全局变量的终极方法!
UID260346在线时间 小时积分3534帖子离线16927 天注册时间
金牌会员, 积分 3534, 距离下一级还需 1466 积分
AS3手册中告诉我们AS3的继承方法有两种:
类继承与原型链继承
类继承就是我们写在类定义的 class xxxxx{}里面的那些成员
而原型链继承则是AS3之前版本的继承方法...........
(此处省略数千字,
本想把ADOBE书里的东西抄袭一些来骗个精华的,
不过第一今天比较累,第二没那么多时间,第三没那么厚脸皮,所以就省略了.
你只要仔细阅读了:
ACTION SCRIPT 3.0编程 --& ActionScript中面向对象的编程 --&高级主题 --&原型对象
(在flash_as3_programming.pdf文件中)
应该就知道我发这贴的前因后果了
如果你看了很多遍又想了很多天还是不明白怎么回事那我估计是因为你比我还笨&&)
---------------------废话开始分割线--------------------------
今天我和两个老伙计去打麻将了,
胖子的技术确实高人一等,而且貌似手气也不错,
前两回铲走我好几十块,
今天我本想铲回来,但最后还是被他铲走我20!
我打麻将的时候总是觉得自己太笨了
别人总是能猜到其他人胡什么牌
而我却不行
停牌比别人晚......总是输多赢少
最可恨的是今天有一把牌本来很好的,快听牌了,但是不知怎么弄的我的牌少了一张给他们赔打了.
还有一把我才打两三圈就听牌了,手里是2256777,来2,4,7我都胡的,可胡的有7张
并且当时玩的是自摸到底,我心想:&你们这帮孩子的末日到了.......&
但是除了他们手里拿的两三张,剩下的竟然我一张都没有摸到,全叫这帮孩子给我糟蹋了!!!!!!!!!!!!!
手气太恶,简直无法想象..................
晚上回家我打开电脑,心想:
还是弄我擅长的事情吧
--------------------废话结束分割线---------------------------
我想到了在AS3中使用全局变量的方法:
Stage.prototype.var1 = 'Stage-var1'复制代码
%类名.prototype.%成员名 = %值
的方法在原型链上添加成员,
然后就可以通过
%类名.prototype.%成员名
%类实例.[%成员名]
这两种方法之一即可访问这个静态成员.
2.我们同时又知道SWF文件在执行时总是有一个Stage的实例存在的,
并且访问到他很容易(任何一个加入DisplayList的DisplayObject的stage属性即是对他的引用).
由以上两点可得:
使用Stage.prototype.%成员名给Stage类添加一个静态成员,
然后就可以在随便什么地方访问那个成员,
这个成员就跟全局变量的作用范围没什么两样了.
如果你需要很多全局变量,
建议你专门写一个具有你所需变量的类,
然后给他加到Stage的原型链上去,
这样可以使用严格类型声名并且方便管理.
-----------------------------以下是废话-----------------------------------
我用Stage.prototype来操作还是有点保守,
你大胆的话可以用Object.prototype,
这样更方便了,不论啥地方来一句this[%成员名]即可访问,
(其实有些旮旯地方还是不行,不过这不在本文讨论范围之内).
但你要知道这样做的坏处----可能会引起混乱
你在一个工程开始的时候定义了Object.prototype.var1 = ' I love beauty ',
然后在很多地方使用了this['var1']来访问.
后来你的工程因为需要使用别人的一个类,
而这个类竟然也有一个叫做var1的成员!
于是你不得不去修改代码.........
所以首先建议你给这类全局变量的名字加上一个比较特别的前缀,
比如:'_globalQwE'.
不得不讲的是AS3本身就不推荐大家使用全局变量(全局变量被称为&程序员的恶梦&),
所以ADOBE故意断掉这条路不让大家用_global.
也许有的时候确实需要全局变量
而常规的做法是写一个类,用他的静态成员来充当全局变量.
但也许还是有些人不爽.......
于是我发这贴希望所有想要全局变量的人都可以爽.
----------------------------------------------------
话讲完了,希望高手来批.
有想要投掷西红柿/鸡蛋之类物品给本人的请跟贴说明物品种类以及数量单位
[[i] 本帖最后由 xbstu2006 于
01:52 编辑 ]
UID260346在线时间 小时积分3534帖子离线16927 天注册时间
金牌会员, 积分 3534, 距离下一级还需 1466 积分
忽然想起忘记给大家这个了:
原文链接:
其实非常简单,只用在你的主应用程序类里(mx:Application )定义一个公有(public)的变量就可以了,如下:
&?xml version=&1.0& encoding=&utf-8&?&
&mx:Application xmlns:mx=&/2006/mxml& layout=&absolute&&
& & &mx:Script&
& && &&&&![CDATA[
& && && && &public var foo:String = &bar&;
& && &&&]]&
& & &/mx:Script&
&/mx:Application&复制代码
你能在应用程序的任何地方访问到这个变量,像这样:
Application.application.foo
[[i] 本帖最后由 xbstu2006 于
01:29 编辑 ]
UID382848在线时间 小时积分1252帖子离线16927 天注册时间
银牌会员, 积分 1252, 距离下一级还需 1748 积分
而常规的做法是写一个类,用他的静态成员来充当全局变量
我一向是这样做的
UID296876在线时间 小时积分1398帖子离线16927 天注册时间
银牌会员, 积分 1398, 距离下一级还需 1602 积分
类继承与原型链继承是一种镜象关系,因此只要用一种就好。
UID348913在线时间 小时积分40帖子离线16927 天注册时间
新手上路, 积分 40, 距离下一级还需 10 积分
FLEX2 实现 as2中_global效果
该文于06-7-3所写,如有所不作希望大家包含
-------------------------------------------------------------------------------------------------------
在上月adobe终于发布了基于actionscript 3 的flex 2 系列。处看了一下,发现as3不再有as2中_global的全局定义变量或者函数了。考虑的as2的习惯,可能要实现一些全局变量。所以写了一个单例类,来实现了_global的功能。
代码如下:
// ActionScript file
package saicn.utils{
& & import mx.utils.URLU
& & public class _global {
& && &&&public function _global(){
& && &&&private static var global:_
& && &&&private var _userToken:S& && &&&
& && &&&public static function getInstance():_global{
& && && && &if(global == null){
& && && && && & global = new _global();
& && && && &}
& && && && &
& && &&&public function get userToken():String{
& && && && &return _userT
& && &&&public function set userToken(ut:String):void{
& && && && &_userToken=
----------------------------------我是分隔线-------------------------------------
用法如下,
_global.getInstance().userToken = “hashcode”;& & 给_global里面的userToken一个值“hashcode”;
Var code:String = _global.getInstance().userT 取_global里面的userToken值
UID55745在线时间 小时积分875帖子离线16927 天注册时间
高级会员, 积分 875, 距离下一级还需 125 积分
楼上的方法该改为动态类,这样定义变量名的时候可以任意取,不用局限
UID446539在线时间 小时积分591帖子离线16927 天注册时间
高级会员, 积分 591, 距离下一级还需 409 积分
这么老的帖子还出来了。。。。。确实应该使用单例模式。。。。prototype的方法在AS2比较好使
Powered byFLASH,AS,全局变量,局部修改, FLASH,AS,全局变量,局部修改
FLASH,AS,全局变量,局部修改
热情的大王兵 FLASH,AS,全局变量,局部修改
但是这时候并没有执行侦听函数comPleteHandler内的语句.swf后才能改变值,第二个trace语句会立刻被执行一次这个代码没任何问题。所以第一个trace语句以及对heng和zhong重新赋值的语句始终是在第二个trace之后才被执行的,这时候文件刚开始被加载,虽然只是很短的时间,trace的结果也没问题啊,所以第二个trace语句输出的还是两个变量的初始值,当加载完1。当你执行show_bomb()函数时
如果它执行输出时你说的是后面那个值没有更新吧,comPleteHandler函数还没有执行完?那是有可能的,它就只能取到初始值}

我要回帖

更多关于 flash as2.0 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信