作者cjcat2266 (CJ Cat)
看板Flash
标题Re: [问题] function问题
时间Mon Sep 24 02:08:13 2012
※ 引述《JustMyLuck (0.0)》之铭言:
: 所以function先写後写都没差,只是个人习惯的不同而已吗?
要知道,在影格上面写的程式
到最後还是会被转换成标准的AS3 class格式才开始编译
例如,在第二个影格写
addEventListener(Event.ENTER_FRAME, listener);
function listener(e:Event):void { trace("yo"); }
或者
addEventListener(Event.ENTER_FRAME, listener);
function listener(e:Event):void { trace("yo"); }
在影格中定义的function,会被转换成class定义中的private function
而其余程式码,每个影格都会被放到独立的private function中
最後在constructor用addFrameScript将其跟MovieClip架起关联
在编译前,Flash Professional会先产出以下AS档
(省略了一些东西&未经语法测试)
public class Main extends MovieClip
{
public function Main()
{
addFrameScript(2, frame2Script);
}
private function frame2Script():void
{
addEventListener(Event.ENTER_FRAME, listener);
}
private function listener(e:Event):void
{
trace("yo");
}
}
在class scope里面,function没有谁先定义的问题
每个function都可以呼叫其他function的
这也就是为什麽书中的两种写法都可以正常编译的原因
因为到头来产生的AS档里面的class定义
function定义的先後顺序是没有任何影响的
另外,请练习把程式写在外部AS档中
这是将视觉模组与行为模组分离的好习惯
--
Blog
http://blog.cjcat.net
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 174.61.205.195
※ 编辑: cjcat2266 来自: 174.61.205.195 (09/24 02:08)
1F:推 JustMyLuck:soga 09/26 11:33