制作mxp安装文件的几个要点
介绍做完组件后,如何打包成mxp可安装文件。
并详细重点介绍其中几个标签要点和作用。

介绍做完组件后,如何打包成mxp可安装文件。
并详细重点介绍其中几个标签要点和作用。

本文既为浅谈代码优化,那么就不深入到OOP设计层面。仅涉及Flash8帮助里面提到的一些代码编写优化原则,并加以解释。
经常看到版面上有人问这个问题。想起我第一次碰到别人给我的源文件有这种情况时,也是很头疼,往往这些Fla文件中有着一大批动态文本框。
整理了一下具体的解决办法和解释图,看一下,有问题请提出。
好像被人问过好几次,发一下。
表现:
想用一些组合键,使用了Key.addListener来控制,结果发现Ctrl+Enter以后,Enter键,Tab键啊,甚至有时shift,ctrl键都得不到响应?!?actionscript里面也没有写错啊,那是怎么回事呢?
测试代码:
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
// compare return value of getCode() to constant
if (Key.getCode() == Key.ENTER) {
trace ("Virtual key code: "+Key.getCode()+" (ENTER key)");
}
else {
trace("Virtual key code: "+Key.getCode());
}
};
Key.addListener(keyListener);
回答:
若要在创作环境中测试 SWF 文件("控制">"测试影片")时捕获键,请确保选择了"控制">"禁用快捷键"。
不然像 Ctrl, Enter这些键都没有办法捕获到。试试看。
问题:
我做了页面load,但是打开时一开始是空白。load一出来就是40%或者以上。
这是为什么?
回答
1.因为编写组件时或者给库中元件加link_id时都忘了去掉在第一帧导出这个选项。导致第一帧加载。
flash中默认在第一帧导出,所以容易出现这个问题。如果你确定第一帧不会用到那些加了link_id的元件,或者as类,可以放心的去掉这个选项。
![]()
2.类文件在第一帧导致过大。
按Ctrl+U调出“首选参数”,选择ActionScript>ActionScript 2.0语言设置,在其中把导出用于类的帧调到你的loader所在帧的后面。当然前提是你的loader没有用到这些类文件。![]()
Function究竟是什么?
我们习惯了function的存在,就像习惯了我们呼吸的空气却不去探究它的本质。看起来,似乎function和Number, Boolean, String一样都是ActionScript本来就有的类型
先看以下代码:
trace (aFunc); //输出:[type Function]
trace (aFunc instanceof Function); //输出:true
trace (aFunc instanceof Object); //输出:truefunction aFunc() {
trace (“This is aFunc!Excuted!”);
}
(如蒙转载,请留下我的Blog链接: http://www.kingda.org/)
呵呵,上篇帖子大家反映不错,短短几天被几家网站转载。
废话少说,这次继续上次话题。看看人气情况,如果大家喜欢我这个高级技巧专题,那么日后会陆续发布一些我自己这几年来项目开发笔记中的实用技巧。
![]()
![]()
利用函数返回函数:
有一个proxyObject对象,我们希望根据proxy对象的内容来确定一个方法,来处理myObject对象。
当proxyObject是字符串时,我们又希望根据它字符串的内容来确定返回不同的函数(或方法)。这些函数参数和类型是不完全相同的,有的可能是一个参数,有的可能是多个参数,不同类型。
那么传统的解决方法:在函数内部调用其他函数就显得力不从心。即使解决,也不如我下面chooseFuncBy()这个函数简洁。
缺点当然有,那就是比较灵活,你一定要清楚管理好每个目标函数和判断逻辑。因为这种灵活的编程方式编译器是无法检查,不能查出类型不匹配这种错误的。菜鸟慎用。
新手在类中,或者在时间轴创建组件时总创建不成功。
原因如下:
(1)在关键帧写代码时,如果要动态创建组件。必须要import 它的类文件一次。
(2)用代码创建任何组件前,确保拖动了该组件到当前的fla库中。
(3)如果是在类中createClassObject不成功,那么看看本类是不是继承MovieClip的?否则将导致无法调用this. createClassObject. 必须在前面指定一个MovieClip对象的路径,如_root. 或者XXX_mc。
话题环境: ActionScript 2.0, 组件开发
今天中午在QQ群里待了一会儿,开始着手解决我们项目中存在的性能瓶颈。
一下午和同事在分析和解决,搞定后,回到群上,小东等弟兄们已经不在了,就我一个了。好像还欠了一个问题没有回答,不好意思。![]()
环境:ActionScript 2.0
症状:
创建 V2 UIComponent组件。所有语法都正确。编译都通过。就是没有办法createClassObject出来。
原因:
这种情况下往往即使你指定Import 相关的类都仍然不能正常创建。
这是Flash的错。
解决办法是随意拖一个MM的UIComponent组件到舞台上,比如说Button, Label。然后删掉它。Ctrl+Enter测试,OK,解决了。
语言:ActionScript 2.0
表现:
使用LoadVars装载文本文件,发现始终缺少部分行数,很是奇怪。
表现形式如下:
#39;s defeat*********.
quot; ********
*号为省略的文字
文本文件是由英语教授们的Word出题文档转成的txt文本。
解决:
罪魁找到,是Microsoft Office。
由于,每次从word中copy文本paste到第二处时,会自动将"号和'号替换成中文符号" 和'
而&是Loadvar读取文本值对时的关键字,导致混乱。我将文本中所有" 和' 都替换成英文符号就解决了。
这个讨论原帖见:
★FLASH基础开发习惯讨论
这个讨论还是蛮有意思的,转载目前已有的内容如下:
这个问题被问的次数多了,所以整理一下,发个贴出来。
以前我碰到这个问题就是直接打个包装MovieClip就不管了,但是对于要访问影片内部的子影片或者其他属性就麻烦了。因为路径改变了。
www.darronschall.com上有一个更好的方法:
通过静态类方法initialize将目标MC加上了几个新属性,_x2,_y2等等新的属性。然后呢,设定新的注册点坐标。
在我们操作_x2,_y2等属性时,实际上是执行了set_x2()等get,set函数,这些函数就执行了一些换算,将我们新设置的值_x2与新设置的注册点位置进行偏移折算,转换成了真正的_x值,这样target_mc就等到了转换之后的_x值,并执行了相应的变化。
(以下内容来自http://www.darronschall.com/weblog/archives/000054.cfm)
先点击此处下载工具类
然后,使用方法如下:
Recent Comments