iLeichun

当前位置:首页Flash

Flash Builder 代码补全辅助的设置

分类:Flash  来源:网络  时间:2020-4-14 16:18:05

在Flash Builder写代码时默认情况下,只有输入“.”的时候才会出现代码提示,在输入其他字符若要显示提示,则需要按下快捷键Alt+/。

为了方便每次输入时都能看到相应的提示,可以进行如下设置:


1、进入菜单:窗口->首选参数,打开设置界面;

2、进入:Flash Builder->编辑器,勾选“使用其他自定义触发器”,并在下方的输入框中粘贴如下文本:

._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

3、点击“确定”即可,不用重启Flash Builder,试试效果吧。

Flash Builder链接了外部资源后打不开怎么办?

分类:Flash  来源:网络  时间:2018-6-14 20:37:56

假设该项目链接了两个外部目录,分别为:

H:/Helloworld/war

H:/Helloworld/map


如图:

blob.png


但是如果上面两个目录下面的文件非常多,那么就有可能导致Flash Builder卡死,甚至奔溃。那么在强制退出之后再重启时可能会由于内存不足而不能打开Flash Builder了,这时怎么办?这时有两种选择:


一、删除项目目录下所有Flash Builder配置文件,重新建立项目

选中下面的目录或文件删除,再打开Flash Builder,此时项目在Flash Builder中找不到了,需要重新建立一个项目。

blob.png

blob.png


二、修改配置文件

1、用文本编辑器打开.actionScriptProperties,修改蓝色框框中的内容

blob.png


修改后变成:

blob.png


2、用文本编辑器打开.project,删除下面的内容

blob.png


3、重新启动Flash Builder就正常了,可以看到连接的内容已经不见了,如果需要可以重新链接,但最好使用完成后在关闭Flash Builder之前取消链接,以免下次不能正常打开Flash Builder。

图片导入到Flash后变模糊的解决办法

分类:Flash  来源:网络  时间:2017-11-19 23:20:02

    有些图片在电脑文件夹中查看的时候是很清晰的,说明图片质量还是不错的,但一旦导入到Flash后就变模糊了,例如上面的文字不清楚,或者图片颜色暗淡,本文就来说说其中的原因和对应的解决办法。

    1、如图,这是图片在电脑中的清晰程度

图片在电脑中的清晰程度

    2、将该图片导入到Flash后,可以看到图片的清晰程度有了变化,其中的文字变得有些模糊了

导入到Flash后图片的清晰程度

    3、对于这种情况的原因当然只能是Flash的问题了,Flash默认会对导入的图片进行压缩(特别是比较大的图片,对于比较小的图片可能不会压缩)。为了验证这一点,在Flash的库文件中右键点击该图片,然后选择“属性”菜单

查看图片属性

将看到如下属性对话框

位图属性对话框

可以看到压缩格式为JPEG,品质变成了80,也就是对原来的图片的质量降低到了80%,不模糊才怪。

    4、既然找到原因了,那么就好解决了,把压缩格式改成png,如下图:

修改压缩格式为png

或者,修改压缩品质,改成100:

自定义图片压缩品质


提醒:图片品质也不是越大越好,需要根据具体情况设置,品质越高最后导出的swf也越大,特别是对于有些比较大的图片,如果不是需要特别清晰(比如背景图片),可以适当降低品质,以降低最后swf的大小。



Flash Builder如何修改默认的Flash Player版本

分类:Flash  来源:网络  时间:2017-11-14 15:55:35

Flash Builder如何修改默认的Flash Player版本?Flash Builder的“首选参数”里面有一个很简单的方法就能把Flash Builder默认的Flash Player替换掉。步骤是这样的:


1、菜单栏的“窗口”->首选参数

blob.png


2、展开左侧的“Flash Builder”->调试,点击右侧的“浏览”按钮找到新的Flash Player版本exe文件,点击“确定”即可

blob.png





Flash启动时报错:Java运行时环境初始化时出现错误。您可能需要重新安装Flash。

分类:Flash  来源:网络  时间:2017-11-8 17:58:33

Flash启动时报错:Java运行时环境初始化时出现错误。您可能需要重新安装Flash。

blob.png


出现这个问题主要原因有:

1、jdk有问题,需要重新安装jdk;

2、Flash有问题,需要重新安装Flash;

3、如果之前都能正常启动Flash,则更大的可能是内存不足了,比如开了大量的软件,可用内存很少了,关闭一些软件后可以正常启动Flash。但如果内存还剩余很多,Flash也启动不了,则试试修改它的配置文件。


Flash配置文件位于:

C:Users你的用户名AppDataLocalAdobeFlash CS5.5zh_CNConfigurationActionScript 3.0jvm.ini

用记事本打开该文件,可以看到如下图所示:

blob.png


试着将-Xmx的值改小一点,如-Xmx220m,如果还不行则继续改小一点。

blob.png

flash发布swf时的错误:定义位于循环继承中

分类:Flash  来源:网络  时间:2017-6-23 14:57:05
flash发布swf的时候报错:
H:aPerson.as定义位于循环继承中。
H:a定义位于循环继承中。
 
 
问题是这样出现的:
1、在H:aPerson.fla中有个元件的AS链接名称为PersonBase,元件属性中类名写PersonBase,基类写Person
2、在目录H:a中创建文件Person.as,继承自PersonBase
 
这样就死循环了,报错了。

Flash导入mp3/wav声音文件失败的原因分析

分类:Flash  来源:网络  时间:2012-3-3 22:47:27

Flash在导入mp3/wav声音文件的时候,经常有人在导入时出现失败的情况,为此我们在这里做一个专门的分析,相信对你有帮助。

一、导入WAV失败
1、症状表现。有时候,在导入这些WAV文件时,FLASH会出现这样的提示:
"This file type is not recognized(该文件类型无法识别)",这意味着我们遇到了一个FLASH不支持的WAV格式。

2、原因分析。WAV文件有多种格式,例如FLASH支持的标准的PCM WAV格式,以及ACELP.net, CCITT A-Law, CCITT u-Law, DSP Group TrueSpeech(TM), GSM6.10,IMA ADPCM,elemediaTM AX2400P music codec, Microsoft ADPCM, Microsoft G.723.1,MSN Audio,MPEG Layer-3等,而这些格式,FLASH都不予支持。所以如果导入的WAV不幸位列其中,就无法导入,必须进行转换。

3、转换方式。flash课件制作时,转换不同的WAV文件,可以用Sound Forge等软件实施,也可以用WINDOWS自带的录音机来实现,这里以用录音机转换为例:
A 启动录音机,打开WAV文件;
B 将目标文件另存为;
C 在弹出的对话框里选择更改按钮;
D 在弹出的更改对话框的格式栏里点击下拉钮,选择PCM格式;
E 保存,转换成功。

二、导入MP3失败
导入MP3不成功,原因和我们前述的WAV出错的原因是一样的,都是非标准格式惹的祸。因此,只要把这个MP3处理成标准格式的MP3文件,就可以了。

1、这是因为flash比较敏感于版权问题,所以对版权为no的MP3在导入时就会发出出错提示,同时,它对一些音频格式不标准的文件也比较过敏,所以就"One or more files were not imported because there were problems reading them." 了。要解决这个问题,唯一的办法就是转换文件格式,比如转换成WAV,或者再转换一次为MP3;

MID格式的音乐如何导入到flash里?相当数量的音乐是MID格式的,但是flash不支持这种格式,所以flash课件制作也只能将他转换为WAV或者MP3,才能顺利应用于flash;

WAV音乐太庞大了,WAV格式的和MP3格式的相比,前者确实肥胖得要死,我做过这样一个比较,相信你看了就会释然,供各位参考:
同一个声音,是flashsun里的一个鬼怪声效-----mp3文件为14K, wav文件为391K;分别导入到flash后,不做任何加工,保存为swf后,mp3的swf为14K, wav的swf为4.93K。悬殊之大,可见一斑,至于声音质量,flash课件制作出的效果,实在也分辨不出多少。

三、几种常用的音乐格式转换软件
a.mp3-2-wav convertor,简单易用的MP3转WAV文件工具程序,只要按下"START"选择MP3,再选择WAV文件所要存放的位置,就可开始转文件了;
b.Mp3 Converter 可以把您的MP3文件和WAV文件格式相互转换的软件;
c.Mp3towav 将MP3转换为WAV的工具;
d.Midi2Wav  将MIDI文件转换成WAV文件的工具,还可以用来播放WAV和MIDI文件,以试听转换前后的效果;
e.WaveCutter  把一个WAV文件分割成几个小文件的工具;
f.WAV to MP3 Encoder  支持拖放功能的WAV转文件工具,能够在转换MP3之前预览播放WAV。

原文地址:http://www.edudown.net/Article/xuexi/200708/15910.html

flash的attachMovie使用方法

分类:Flash  来源:网络  时间:2010-11-20 14:41:17

先来看一些关于MovieClip.attachMovie的语法:
anyMovieClip.attachMovie(idName, newname, depth);

参数:
idName 要绑定的库中Movie的名字。这个名字就是元素的Linkage Properties对话框中输入的标识名。
newname 就是被绑定MC的实体名,必须是唯一的。
depth 一个整数值,用来指定MC所在的深度值。

说明:
方法;为库中的动画产生一个新的实体,并绑定指定的anyMovieClip中。使用 removeMovieClip 或者 unloadMovie 动作或者方法可以删除绑定的动画。
播放器:
Flash 5 或以后版本。

参考:
removeMovieClip
unloadMovie
MovieClip.removeMovieClip
MovieClip.unloadMovie

相信大家都用过attachMovie这个语句,可以方便的绑定库中带Linkage输出的元素, 在一些游戏以及交互程度比较高的网站中经常会用到。 那么这里就遇到一个问题,假如我在sub.fla库里面用linkage设定了几个元素, 然后想在main.fla里面attachMovie这几个元素,该如何处理尼?

第一种方法,main.fla使用 loadMovie(); 或 loadMovieNum();先导入 sub.swf, 然后导入完成后,再使用attachMovie来绑定元素。 但是这种方法,使用受到一个很大的限制,就是只能在 loadMovieNum()语句导入所在的层,或者loadMovie()语句导入所在的mc上面使用attachMovie, 比如:

loadMovieNum(”sub.swf”,1);
_level1.attachMovie(”cc”,”cc1″,5);

是有效的

loadMovieNum(”sub.swf”,1);
_level0.attachMovie(”cc”,”cc1″,5);

是无效的

同样:

loadMovie(”sub.swf”, “abc”);
_root.abc.attachMovie(”cc”, “cc2″, 50);

是有效的

loadMovie(”sub.swf”, “abc”);
_root.attachMovie(”cc”, “cc2″, 50);

是无效的

第二种方法,使用Export for runtime sharing的方式,方法如下:

在sub.fla中,设置好需要attach元素的 Linkage值,并选定 Export for ActionScript  以及 Export in first frame这两项
然后,在sub.fla中新建一个空的mc, 在库中设置这个空mc的linkage值为 ext  ,选定 Export in first frame 以及 export for runtime sharing, URL这一项则填写为 sub.swf 如图:

在main.fla中,新建一个空的mc,在库中设置这个空mc的linkage值为 ext ,然后选定 Import for runtime sharing , URL一项填为 sub.swf

然后在main.fla中,再新建一个mc,从库中把刚才的ext这个空mc拖放到新建的这个mc中,然后把这个新mc任意设置一个linkage值,然后选定Export for ActionScript  以及 Export in first frame这两项。
做好以上的两步,就可以在main.fla里面任意attach sub.fla里面的可用元素了,比如:

attachMovie(”cc”,”cc”, 1);
attachMovie(”bar”,”bar”, 2);

第三种方法, 采用上面的第二种方法虽然已经很理想了,不过还是有一个限制,那就是必须编辑 sub.fla,加入 ext这个空mc, 那么有没有方法绕过去,可以不需要改动sub.fla,直接在main.fla里面做文章尼?  下面就介绍第三种实用方法:

假定我们现有一个tt.swf这个文件,里面库中设置了 linkage 为 a,b,c 的三个可用元素, 那么用下面的方法,可以不修改tt.fla,直接attach tt.swf里的这三个元素

我们打开主控文件mm.fla, 新建一个空mc,然后在库中设置linkage值为 a (或者b或者c,只要保持和tt.swf里面的某个linage值同名即可) ,然后选定 Import for runtime sharing , URL一项填为 tt.swf,

然后在mm.fla中,再新建一个mc,从库中把刚才的a这个空mc拖放到新建的这个mc中,然后把这个新mc任意设置一个linkage值,然后选定Export for ActionScript  以及 Export in first frame这两项。
然后就可以在mm.fla里面任意attach tt.fla里面的可用元素了,比如:

_root.attachMovie(”c”, “c”, 1);
_root.attachMovie(”a”, “a”, 11);
_root.attachMovie(”b”, “b”, 111);

 

FLASH CS3 无法将动作应用于当前所选内容

分类:Flash  来源:网络  时间:2010-9-9 10:46:20

主要想说说AS3与AS2的不同之处,没有什么逻辑性,想到什么就写点什么,因此,它不适合AS高手们阅读。本文将力求用最直白的语言,尽量不用那些艰涩难懂的名词和术语。

一、在什么地方写代码

为了更好地理解,我们还是用例子来说明。现在,就让我们一起来回顾一下,在AS2中我们都会把代码写在什么地方。我们在AS2中建一新文档,新建一个影片剪辑元件取名为bt,元件很简单,随便画一个方块就行,你说我偏要画一个园,那当然随你高兴罗,我没意见。然后,在场景中,用文字工具建一文本框,设为动态文本框,实例名称命名为:text1,将元件bt从库中拖到舞台上,实例名称命名为:bt_mc.现在写代码,想一想,代码写在什么地方,我们来做下面三个测试:

测试一:在帧动作中,直接写代码,点中第一层,第一帧,然后打开动作面板,在上面写到:
text1.text = "代码执行了“;
测试影片,OK,我们看到了”代码执行了“这几个字。

测试二:还在帧动作中写代码,将代码改为:
bt_mc.onPress = function() {
text1.text = "代码执行了“;
}
测试影片,当我们点击,元件bt_mc时,又看到了“代码执行了”几个字。

测试三:好象还可以把代码写到元件上,清除帧动作中的代码,点中bt_mc,打开动作面板,写下如下代码:
on(press){
_root.text1.text = "代码执行了“;
}
测试影片,点击bt_mc又看到了“代码执行了”几个字。

它怎么老是执行了呢,真是的。

下面我们在AS3中,作相同的测试:

测试一、在测试影片时,我们还是看到了那几个字,它都又执行了。
那AS3和AS2不是一样的?你还写个啥子劲?是哈,整了半天AS3和AS2整成一样的了。在“不到黄河心不死”的精神鼓舞下,我们还是把剩下的两个测试做完。

测试二、在测试影片时,哈哈,出错了,为我们出错喝彩吧(有病!),出错了,说明AS3与AS2还是不一样,那么本文就还可以写下去了。

测试三、当我们点中bt_mc,然后打开动作面板时,我们看到的是:
“无法将动作应用于当前所选内容”
真是过分,它连测试的机会都不给你。

好了,测试做完了,所谓实践出真知,通过测试,我们可以得出如下结论:
在AS2中,我们可以把代码写在帧动作中,也可以写在影片剪辑、按钮等元件上。
在AS3中,我们只能把代码写在帧动作中。(当然也可以写在.as等外部文件中,然后将它导入进来)。

二、AS3中的事件侦听

看到这里,聪明的你一定会说,在AS3中做上面的测试二时,代码是写在帧动作中的啊,为什么会出错呢?是啊,正因为有你的聪明,才使本文可以继续写下去啊。

在AS2中我们在让程序响应一个事件,比如鼠标单击,我们可以在帧动作中这样写:
事件对象.onPress = function() { 语句}

在AS3中,就不能这样写了,所以上面的测试二就出错了。

在AS3中,你必须先声明一个函数,其中包含你要执行的语句,然后用事件对象来侦听事件并调用这个函数,这将用到事件侦听语句:addEventListener

无论何时编写事件侦听器代码,该代码都会采用以下基本结构(以粗体显示的元素是占位符,您将针对具体情况对其进行填写):
function eventResponse(eventObject:EventType):void
(函数名称) (事件类型)
{
// 此处是为响应事件而执行的动作。
}
eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse);
(事件对象) (事件类型.名称 函数名称)

我想还是用测试二,来说明好理解一些:
在AS3中,将测试二中帧动作代码改为:
function test(event:MouseEvent):void //先声明一个函数test,其中包含了要执行的代码。
{
text1.text = "代码执行了";
}
bt_mc.addEventListener(MouseEvent.CLICK,test) //然后,用bt_mc元件来侦听事件,并调用test
测试影片,哈哈,代码它终于执行了。

上述代码中的事件类型是:鼠标事件(MouseEvent),事件名称是:单击(CLICK)。

你又要说话了,“这不是更麻烦吗?”,是有点麻烦哈,不过据说是更规范,更利于代码维护,不过不管你愿不愿意,你要用AS3你就得这么写。

三、添加显示对象

这一节,来说说显示对象。这个简单,你在舞台上能看到的东西就叫显示对象。你说显示对象是咋个到舞台上去的呢?你傻哦,当然是放上去的啰。那它是咋个放上去的呢?当然是用鼠标放上去麻。那只有用鼠标才能放上去吗?那不一定,我还以用attachMovie从库里头加载一个,我也可以用duplicateMovieClip复制一个,高兴了,我还可以用代码画一个,我还可以用loadMovie导入一个外部文件。你耐我何?真的吗?你敢不敢试一下吗?试就试,谁怕谁?

先试attachMovie:在AS3中在帧动作中写如下代码:
attachMovie ("bt","bt1",1)
测试影片,出错了。我们知道,这在AS2中是不会出错的,而且会将库中的“bt"元件,加载一个到舞台上。

还在那写文章,要加载库里的元件,必须要在元件的链接属性中为元件指定标识符,这一步你都不晓得?是哈,咋把这一步给忘了,赶紧去设置,在库中,bt原件上单击右键,点链接,选中“ActionSpript导出“,再看”标示符“那一栏,不能用!你能干,你来设麻。

其实,在AS3中根本就没有attachMovie这一说。
现在试一下:duplicateMovieClip:将代码改为:
duplicateMovieClip ("bt_mc","bt1",1)
bt1._x = 300;
测试影片,又出错了。同样的,AS3中也没有duplicateMovieClip这一说。

画一个?画麻:将代码改为:

 

1. createEmptyMovieClip("bt1",0);
2. with (bt1) {
3. beginFill(0xFF0000);
4. moveTo(100,0);
5. lineTo(200,100);
6. lineTo(0,100);
7. lineTo(100,0)
8. endFill();
9. }

 

测试影片,还是出错了。而这几句代码在AS2中会画出一个红色的三角形。
在AS3中,加载一个显示对象,必须用new关键字来构造,要在舞台上看到它,还必须用addChild()将它加到显示列表中才行。

还是来做个实例吧,我们将库中的bt元件,加载到舞台上:
首先我们在库中,在bt元件上,点右键-链接,选中,“为ActionScript导出“,这时”类“和”基类“两栏均变为可用。这样,就在flash.display.MovieClip类中创建了一个”bt"类。点击确定,在接下弹出的对话框中,再点确定,就行了。
现在我们可以在代码中加载bt了
var bt1:bt = new(bt); //声明一个新的bt类的实例,并用new()来构造它
this.addChild(bt1); //将bt1载到舞台
bt1.x =200;
bt1.y=300; //设置bt1的x,y值,注意在AS3中,x和y前而没有下划线了。
测试影片,bt已加载到舞台上了。

下面我们在AS3中画一个,代码这样写:
var bt1:MovieClip = new(MovieClip); //声明一个新的mc类bt1,并用new来构造它
bt1.graphics.lineStyle(2, 0x990000, .75);//使用bt1的graphics属性设置线条粗细,颜色,透明度

 

1. bt1.graphics.beginFill(0x00FF00);//以下的代码是用graphics画三角形。
2. bt1.graphics.moveTo(100,200);
3. bt1.graphics.lineTo(200,100);
4. bt1.graphics.lineTo(0,100);
5. bt1.graphics.lineTo(100,200);
6. this.addChild(bt1);

 

在AS3中,除了MovieClip类外,还可以用Shape、Sprite 类来绘图或加载显示对象,而且还要更节约系统资源一些。

加载外部显示对象,在AS3中,利用Loader类来加载外部对象;同样的也要先声明一个Loader类实例:

 

1. var loadpict:Loader = new(Loader);
2. var pictURLReq:URLRequest = new URLRequest(pictURL);//pictURL为外部文件的路径
3. loadpict.load(pictURLReq);
4. this.addChild(loadpict);