作者etrexetrex (moonet)
看板Flash
标题Re: [问题] AS3 MovieClip
时间Wed Apr 13 18:40:04 2011
※ 引述《AizawaYuichi (相沢佑一)》之铭言:
: 恩...不太会AS3
: 这篇纯粹是请各位帮我修正写法
: function set_obj(){
: var obj=new mc_obj() //mc_obj是元件库的MC
: with(obj){
: name="mc_obj"
: x=100
: y=200
: }
: addChild(obj)
: }
: set_obj()
: MovieClip(getChildByName("mc_obj")).gotoAndStop(50)
: 以上是确定可以执行的
: 可是...
: obj是function内var的变数(暂时用)
: (同一function内可能用obj去new各种东西)
: 离开之後无法呼叫
: 又不想在外面为了各种MC呼叫各种全域变数
: 所以我只好给他name属性
: 并且gCB
: 又因为要gAS,所以前面要转型为MC
: (奇怪元件库就是MC啦,new下来类型不对吗?Orz)
: 总之整个就很乱
: 请问以上的程式码应该怎麽修正
: 比较符合一般AS3的写法?
你的函数可以传回值
如果是我会这样写
funciton NewMc_obj(x:int, y:int):mc_obj
{
var obj:mc_obj =new mc_obj(); //mc_obj是元件库的MC
obj.x = x;
obj.y = y;
return obj;
}
function anotherFunction(obj:mc_obj):void
{
obj.gotoAndStop(50);
}
用法1
NewMc_obj(100, 200).gotoAndStop(50);
用法2
var obj = NewMc_obj(100, 200);
obj.gotoAndStop(50);
用法3
anotherFunction(NewMc_obj(100, 200));
用法4
var obj = NewMc_obj(100, 200);
anotherFunction(obj);
--
blog:
http://etrex.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.137.198.18
1F:推 AizawaYuichi:好用法,那如果新增时是在某function 04/13 18:41
2F:→ AizawaYuichi:但是在另外的function内才要gotoAndStop()呢? 04/13 18:41
3F:→ AizawaYuichi:obj应该已经失效了吧?不给name行得通吗? 04/13 18:42
4F:→ etrexetrex:把你的 mc_obj 当作参数传到另一个 function 里 04/13 18:42
※ 编辑: etrexetrex 来自: 140.137.198.18 (04/13 18:44)
※ 编辑: etrexetrex 来自: 140.137.198.18 (04/13 18:44)
5F:→ etrexetrex:我认为多宣告一个变数会比用 name 好 04/13 18:45