发新话题
打印

[分享] 用 jsfl 扩展你的 flash

用 jsfl 扩展你的 flash

为什么要学习jsfl?
& x  a- l6 T- v3 W* P# R  V
1 n+ n. A% i8 w- h作为一个有些经验的FLASH开发者,想必都会形成一些自己的开发习惯,比如很多人都喜欢把主时间轴第一层命名为:“AS”,第二层命名为“Label”,类似这样的劳动都是重复的,我们有办法可以简化它们么?答案是肯定的,于是jsfl隆重登场了。
% K1 o7 Q) U/ y. y
; z: ~* ]  T+ V6 E, j什么是jsfl?* K8 c  a* @8 t5 k1 l7 |0 m* B
+ o+ ^" [' ?9 _
如果说AS是用来在SWF运行时运行的脚本,而jsfl则是在Flash编辑环境下运行的脚本。在这里我不想用太多专业的术语打击新手继续学习的信心,我想先带大家做一个非常简单的实验,实验环境:操作系统(Win XP2),FLASH开发环境(FLASH 8 简体中文版)。
' g) n; X2 V& L5 H
$ U' c- H$ E$ ^& n首先把你的文件后缀名显示出来:→工具→文件夹选项→查看→把“隐藏已知文件类型的扩展名”选项取消。 " S, g: ~0 W+ H
随便在那里右键新建一个空的TXT文本文件。
/ h0 S3 j! y( I& p打开FLASH8,然后新建一个fla,这时候你会看到时间轴上已经自动产生一个图层“图层 1”。
8 z9 O$ g) A% g8 W0 \5 s0 H在FLASH中打开“历史记录”面板。 5 ~& y4 z' t: \+ v6 J# E$ E
然后将时间轴“图层 1”改名为“AS”,这时观察“历史记录”面板,你会发现多了一条“层命名”。 ' T" L& u- T* E3 t
然后右键点击“层命名”,在弹出菜单中选择“复制步骤”。
( ?' k5 R9 B! x5 [. C打开你的TXT文件,然后粘贴,这时你会看到TXT文件中出现一段代码:
& a( q" W$ \& f/ ifl.getDocumentDOM().getTimeline().setLayerProperty('name', 'AS'); + e) D  @, ]: T/ E) g  A6 ]$ p4 X' P
保存你的TXT文件,并重命名为:“把图层命名为AS.jsfl”。 8 q0 Y, |' d/ c9 L4 V) |: d- [$ }
将你的“把图层命名为AS.jsfl”放到类似下面路径的文件夹下:, w0 C/ D0 E( Y/ V  J6 ?' l; C! z, i' R
C:\Documents and Settings\Administrator\Local Settings\Application Data\Macromedia\Flash 8\zh_cn\Configuration\Commands6 x% s/ M2 q' R
其中,Administrator是你的系统用户名。
8 y* q! A. b* B+ m这时候点击FLASH主菜单栏中的“命令”,你会发现在“运行命令”的横线下面多了一条“把图层命名为AS.jsfl”的选项。
0 }( w+ P6 c: C+ O再新建一个fla,然后选择“图层 1”,并执行“命令”菜单中的“把图层命名为AS.jsfl”,你会发现,“图层1”被自动命名为“AS”了。# `% Z) Q1 [6 P& }$ G* C- V
上面的实验告诉我们什么?
1 f9 o% y, z5 S& |% l( }: b! K8 h$ y& w; `
相信大家已经能简单的体会到jsfl的作用了,它可以通过一些jsfl脚本自动完成对应的FLASH编辑操作。另外我们还应该了解到如下知识才算阶段性毕业:
9 P& L; g7 y9 r4 R" q) U' S9 ?
0 M2 g* I, B! ^+ ejsfl是一种脚本语言。 ; J# j+ d( @6 p- m6 z
jsfl文件应该放在那里。 ' q6 m9 p" q% w$ V, k
如何运行一个jsfl命令。
% b9 {2 Q' w3 g; i% |( a' g/ g6 G, Ejsfl脚本只能从“历史记录”面板中生成么?
3 f. D- i# i* J. m( f
' J. A, f' \, d+ e0 N$ l当然不是,“历史记录”面板所能生成的jsfl非常有限,要想实现复杂的功能,就必须自己手动写Flash JavaScript代码了。至于jsfl的官方专业解释,大家可以去查看FLASH 8帮助文档中的《扩展 Flash》一书,书中还有jsfl的应用示例和程序字典,我就是看着这本书自己研究的。( r4 x+ n# ~) ]4 q8 G
& V" u) s- u( N4 a. ]1 t, F) d( s5 |
jsfl到底有多强大?我们有必要学jsfl么?1 i* z* p5 |+ K/ ]. v2 D" i" u
- l) H, H, b) v: p# z
jsfl多强大我还不能确切的告诉你,因为我也没深入学习呢:)但用过ASV5的朋友应该都知道,ASV5能把SWF中的所有元素都分离出来,并产生一个jsfl文件,然后运行这个jsfl文件就可以把那些分离出来的元素组合为一个fla源文件了,由此可见jsfl的强大能力了吧?至于有没有必要深入学jsfl,那要看你的兴趣和工作需要,火山目前的工作可能需要批量生产一些结构复杂却类似的SWF,于是对火山来说,jsfl就比较重要了。3 h; Y6 k; ~5 X5 R
& S# a% n0 w4 X) C; f
个满足火山日常开发习惯的综合例子:8 q/ z% Y' a% V% A( R5 d
, l9 C" r% I: n& X; K0 h, Z) I
火山开发习惯:目前我在开始一个面向过程的项目之前,以下三个工作是必不可少的。7 a. T: _6 n& `0 F+ }" C% P4 r

5 V& G: i0 W* {3 N3 B1 c( ]时间轴最上层建立“AS”层和“Label”层 ; s9 ]8 E1 J+ ?6 c, d5 Z/ @
AS” 层第一帧写如下注释:
7 c2 r# u  R+ ]+ q& @//================系统设置================//
" j5 p0 q1 u  O. r; z% g//——————变量初始化
/ u" m1 s& E0 I' d1 e, V5 M" H$ I//——————数组初始化
$ ]+ P) i. g% [9 G8 _% \2 Z//——————对象初始化% C! K/ s4 {1 p* S
//——————系统初始化; Q3 J2 J) R0 t# {3 W- g3 a  n
//——————界面初始化. U( u3 I( j, L( j4 ^8 g' X
//================功能逻辑================//* a: _8 @( t! I7 D+ w
//================函数模块================// : F. Z2 i" W) R$ V9 _) T2 H* |: c
库里建立三个文件夹:“0-image”,“1-sound”,“2-公用元件”。. @9 Z+ `% {5 t' N0 I! u
→好了,需求有了,我们就开始写代码吧,前面我们已经知道jsfl文件应该放的位置了,这次就直接在那里建立一个“火山习惯.jsfl”,然后写下面的代码:
1 `5 ]2 S- n1 c! {3 S- L- m, |' n//第一步:自动产生AS层和Label层
1 k" p/ S, p+ I2 w+ |" Yfl.getDocumentDOM().getTimeline().addNewLayer("AS");
, N1 a4 D) n/ O0 r$ k6 Rfl.getDocumentDOM().getTimeline().addNewLayer("Label");
, G. }: a" Y+ g! X//第二步:在“AS”层第一帧上添加注释
9 w3 T9 g1 I4 Zvar layerIndex = fl.getDocumentDOM().getTimeline().findLayerIndex("AS");) s$ N$ Q0 o' |0 Q+ m2 v
fl.getDocumentDOM().getTimeline().layers[layerIndex].frames[0].actionScript = '//================系统设置================//\n//——————变量初始化\n//——————数组初始化\n//——————对象初始化\n//——————系统初始化\n//——————界面初始化\n//================功能逻辑================//\n//================函数模块================//\n';
9 I1 v4 b, p. l# B7 S//第三步:在库里自动创建文件夹3 T7 V8 V" m# t( m
fl.getDocumentDOM().library.newFolder("0-image");
9 P9 V; X' Q- f0 e4 b* Q9 V& Efl.getDocumentDOM().library.newFolder("1-sound");
# ^: u( H3 @( B' i! Yfl.getDocumentDOM().library.newFolder("2-公用元件");
  b) H( ]/ `8 Q8 @新建一个fla,在“命令”菜单里运行“火山习惯”,看一下效果吧:)
赠人玫瑰,手有余香。

TOP

发新话题