查看: 4565|回复: 12

[其他] 105个Flash问题解答(下)一帧代码建立舞台 [云端漫步]

[复制链接]

该用户从未签到

鲜花(0) 鸡蛋(0)
发表于 2010-2-6 12:49 | 显示全部楼层 |阅读模式
教程来源
教程来源: 原创

56. 如何制作模糊遮罩[羽化效果]?
答: 第一步:创建三个图层,从上到下名称分别是“代码”“遮罩”、“图片”。
第二步:在“图片”图层上导入一张图,并转换为影片剪辑元件,实例名为tp_mc,延长帧到第40帧;在其属性面板中勾选“使用运行时位图缓存”。
第三步:在“遮罩”图层上画一个小圆,转换为影片剪辑元件,实例名为mask_mc;选择属性面板中的“滤镜”里的“模糊”,输入模糊值均为100;在第40帧处插入关键帧,把圆放大;创建补间动画。
第四步:在“动作”代码图层的第一帧上写代码:
tp_mc.setMask(mask_m 。
57. 如何调用外部的库文件?
答: 打开菜单File-Open as Library,就可轻易的利用其中的符号。这个如此简单实用的问题,居然很多人并不知道! 更深一步,你还可选择 File-Open as shared library命令来直接调用网上的Fla文件中的符号库,而且这个Library中的元素在客户端浏览时只需要下载一次,所有这个项目中用到这个Library元素的Movie的地方,在客户端都会自动调用这些元素无需再次下载,可以节约用户大量的下载时间。这在团队协同开发的时候特别有用。这在Flash5“共享元素库”的魅力所在。
58. 在Flash中转换格式有那些技巧?
答: Flash8 中增加了对Realplayer文件格式输出的全面支持,对于自己的作品在网上的发布,从此又多了一个选择,真是令人惊喜。有人喜欢用Flash制作 GIF动画,或因其它用处,需转换为AVI或MOV格式。但有时发现许多动画信息都无故丢失,究其原因,FLASH动画中应用了Movie Clip。准确讲这不算一个技巧,但往往会困惑一些初学者。根本的解决办法就一个,动画中不要用Movie clip。当然你更别指望生成的GIF、AVI或MOV动画能支持Swf文件的交互了。在输出动画为AVI格式时,注意要选用Windows自带的压缩方式(如Microsoft Video1等)。
59. 输出动画保存为AVI格式而后看AVI 时,MC 都不动,该如何解决?
答: 一、将你想要用的MC大小作成和想要的影片同样大小如400*500 。
  二、建一个新层 。
  三、将你的MC直接输入到这个层上面 。
  好了你再输出个avi试试如果你的位置不对就调整MC。
60. 在Flash中如何画多边形?
答: 以六边形为例:首先画一水平线段,然后复制线段并将其旋转120度;重复第2、3步骤,共复制和旋转5次,最后用箭头工具将各线段头尾相接摆放即可,注意打开吸附功能。
61. 如何对声音进行裁剪?
答: 选中声音所在的层,然后按Ctrl+F,选择上面的声音选项卡,下面有个”Edit…”点击它然后可以对你到入的声音进行裁切。
62. 在Flash中如何使字体清晰?
答: 用Ctrl+B打散字体,或者用CW FONT就是繁体字效果也比较好。
63. 如何制作文字圆周运动?
答: File->New,文字工具输入"B"(字体Arial Black,大小24,蓝色),Add Guide Layer,最好选中磁铁工具(Snap),选画圆工具,Line Color选个醒目的,Fill Color选无色(调色板左上角有个方框,点一下变成X就行了),在Guide层按住Shift画个圆,用箭头工具拖动"B"吸附到圆的顶部正中央,在"B"左边一点,用橡皮把圆擦一个很小的缺口,选字母层,在第16帧按F6插入关键帧(你想做的共有几个字就在第几帧插入关键帧),把"B"拖到缺口左边的圆上(这是最后一个字母的位置,可多试几次,以使所有字母能均匀排开),在第一帧点右键选Properties,设置Motion变化,在Orient to path direction前打上对号,好让字母能垂直圆周排列,OK。点字母层,选中所有帧,按F6把所有帧都变成关键帧。点选Time Line第四个图标Edit Multiple Frames,再点第五个图标 Modify Onion Markers,选Onion All。好了,所有16个字母都显示出来了,当然都是"B"。删除Guide层。选中所有字母,按F8转变为符号Symbol 1。按Ctrl+L打开库窗口,双击Symbol 1进入编辑界面,选择一个字母,双击,改为你需要的字母和颜色。依次把所有字母都修改好,OK,主体工程已经完成。下面可以小试牛刀了。新建一层,删除原来的字母层。把Symbol 1拖入新层第一帧,在第40帧插入关键帧,在第一帧右击选Properties,选Motion,Rotate选Clockwise,1 times,然后发布就可以了。
64. 一张图片不断循环怎么制作?
答: 可以中一个MC中多做几个层,每一层导入一张图,然后按安排好次序就可以了。
65. 如何制作写字的效果? [也就是写毛笔字体]。
答: 先输入要写的文字例如说”二“字,选好字体,调整好大小,打散,这就是最后一帧。复制,插到前面一帧。用橡皮擦掉"二"的最后一笔的一点,这就是倒数第二帧。再复制,再按笔划的逆顺序擦掉一点,这是倒数第三帧。下面同理。每次擦多少,你可自己感觉,也可参考一些写字效果的源文件。有一点要注意,就是平常写字时停顿的地方要添加一个或更多的关键帧,只要依据播放速度而定。

66. 如何优化自己的作品?
答:尽量少用大面积的渐变,特别是形变(Shape),二是保证在同一时刻的渐变对象尽量的少,最好把各个对象的变化安排在不同时刻。减少动画的文件大小的方法:少采用位图或者结点多的矢量图。线条或者构件的边框尽量采用基本形状,少采用虚线或其它花哨的形状。尽量采用windows自带的字体,少用古怪的中文字体,尽量减少一个动画种的字体种类。少采用逐帧动画,重复的运动变化,应采用Graphic或Movie clip。动画输出时,采用适宜的位图及声音压缩比。
67. 如何在Flash中调用EXE文件?
答:fscommand ("exec", "path/*.exe") path 为路径名,必须是绝对路径。
68. 导出的.EXE文件如何自动关闭?
答:在flash最后一帧上或在按钮上加 fscommand(“quit”)
69. 如何调整Action中的字体大小?
答:点击Action面板右上角的三角形按钮,在菜单中选择Font Size,然后根据自己的需要选择大号,或中号,系统默认的是小号字体。
70. 如何禁止菜单、Zoom In(Out)功能,以及完成双击SWF文件时直接全屏?
全屏->FS Command (“fullscreen”, true)本全屏只是简单地将屏幕占满,动画部分并不会因此而放大。
禁止缩放->FS Command (“allowscale”, False)
禁止菜单->FS Command (“showmenu”, False) 71. 如何通过按钮给别人发E-mail?
添加下列语句:
get ” url:mailto:yourname@sina.com

72. 电视干扰的效果怎么做?
答:1.先画一些短的白线条(细一点,稍微有点灰度),然后做几个关键帧,每帧里随机的放一些,连续播放一下就有效果了。
2.用PS做一个电视雪花的图片,然后导入到flash中,选中该图片,安F8把此图片生成MC,把它放到主场景中,命名为xh,在场景第一帧添加:
setProperty(“xh”,_x,random(10)-5);
setProperty(“xh”,_y,random(10)-5);
在第二帧添加:gotoAndPlay(1);
73. 关键帧中的脚本里Stop后的脚本会不会起作用?
答:Stop语句只停止帧的播放,并不能停止该Stop所在关键帧的Action语句的执行。
74. Flash中的路径的作用是什么?
答:如果你用过DOS,您就可以很容易理解FLASH的路径。简单地说,路径就是在FLASH编程时能够找到变量或者符号(Symbol)所经过的路。其方式跟DOS一样,分成相对的和绝对的两种。
75. Action中,/:与/有什么区别,各在什么时候用?
答:/:是表示某一路径下的变量,如/:a就表示根路径下的变量a,而/表示的是绝对路径。
76. 如何在MC中控制主场景的播放?
答:Flash中_root表示主场景,用_root. play()即可控制主场景的播放。
77. 如何在Flash中打开一个定制的浏览器新窗口?
答:添加: Get URL ("java script:window.open('new.htm','newwin','width=320,height=320');")
78. 点一个按钮就放音乐,再点它一下就停音乐这个效果该如何做?
答:第一下设置gotoandplay(),那一帧设置成play sound
第二下再跳到另一帧然后stop all sound
79. 如何改变调入后的SWF大小?
答:setProperty ("MC_Name", _xscale, size_x);
setProperty ("MC_Name", _yscale, size_y);
“MC_Name”顾名思义是那个MC的名字了,“_xscale”和“_yscale”是指这个MC的X与Y点的位置,这个位置是用来控制MC大小的。其“size_x”和“size_y”为设定这个MC具体大小的数值。
80. 如何改变调入后的swf的位置?
答:一个简单的方法是,我们可以来移动那个已给置入Mocie文件的MC,就像我们用来改变一张图的位置那样用鼠标拖动它。
另一个方法是利用setProperty来进行改变这个MC的位置。
setProperty ("MC_Name", _x, "position_x");
setProperty ("MC_Name", _y, "position_y");
“MC_Name”是MC的名字,“_x”和“_y”指的是X坐标和Y坐标点,而“position_x”与“position_y”是位置具体的数值。
81. 如何让一个MC调用另一个MC里设置的一个变量?
答:在mc里输入此语句:(a b 均为变量名,mcname为mc的实体名)
a = _root.mcname.b;
此语句是使本mc的变量a调用_root.mcname这个mc里的变量b
82. 在Flash中如何打开Word文档?
答:Flash不支持调用Word文件,但浏览器可以直接打开.doc文档,那么就用getURL来解决即可,路径用绝对地址
83. 在Flash中如何调用mpeg文件?
答:Flash中不支持调用mpeg文件,首先要安装一个三方软件,名字为Swiffcanvas1.0;接着打开fla文件,如果mpeg文件的目录为aa,mpeg文件名字为bb,那么就可以就添加下面的语句:
FS Command ("exec", "SwiffEXEC(LOCAL:aaa\111.mpeg) ");
然后把fla文件输出为exe文件 ,并用Swiffcanvas打开这个exe文件,然后在Swiffcanvas里设置完成自己的要求。最后再输出为.exe文件,就可以了。
补:如果觉得上面的方法麻烦,可以下载一个辅助软件flix(闪派软件园有),它可以把mpeg等视频文件转为swf文件,然后再导入flash中或者从外部调用,外部调用动画参考下题答案。
84. 如何在MC中载入外部动画或其他动画?
答:我们经常要用到在主动画中载入子动画(swf文件 )的情况。但是,这种方式载入后,载入的动画往往不在我们需要的座标位置上。有个简单的办法可解决这个问题。我们先建立一个空MC。将该MC拖到主场景中,并为之命名(Instance),如“bb”。然后在主场景的相应帧加上Action,在action 面板中的URL中填入要载入的swf文件,“Location”栏选“Target”,在其后的空栏中填入“/bb”。这样子swf文件就载入到实体名为 “bb”的MC中了。现在,我们只要控制该MC在场景中的位置,就可控制载入的子动画的精确座标了。
85. Flash内怎么用js或java?
答: on(release){
  geturl("java script:alert'........'";)
  }
  on(release){
  thanx="thanks";
  }
86. 在ActionScript的编辑窗口中怎么输入中文?
答:可以更换Flash的字体,也就是删除Windows\Fonts\Modern.fon,这样,编辑窗口的字体就好看多了。
87. Flash如何与数据库连接?
答:只能通过后台文件,如CGI脚本,Active Server Pages (ASP),或 Personal Home Page (PHP)等。传递值到flash中,实现数据库的操作。
88. 在用FsCommand中可以调用JavaScript吗?
答:FsCommand可以调用JS函数MovieName_DofsCommand装入Flash动画。MovieName是Flash动画的名字由 Embed标签的Name属性或是Object标签的ID属性指定,如果FlashPlayer的名字为MYMOVIE,应该调用JS函数名字为 MYMOVIE_DOFSCOMMAND。
89.FLASH是什么?
答:FLASH 电影是专为网页服务的画像或动画(当然,也可用于其它用途)。主要含有矢量图形,但是也可以包含导入的位图和音效,还可以把浏览者输入的信息同交互性联系起来,从而产生交互效果,也可以生成非线性电影动画。该动画可以同其它的WEB程序产生交互作用。网页设计师可以利用FLASH来创建导航控制器、动态LOGOS、含有同步音效的长篇动画、甚至可以产生完整的、富于敏感性的网页。
90.怎样做一个简单地FLASH动画?
答:首先,打开你的FLASH软件,绘制一个圆形(左面地圆形工具可以直接绘制),然后按F8添加为一个Symbol,再图层第十祯地位置按F6键添加一个关键祯,并适当移动该Symbol的位置,最后在第一祯位置点鼠标右键选择Motion就行了.
91.什么叫矢量图?
答:矢量图可以任意缩放而不影响Flash的画质,位图图像一般只作为静态元素或背景图,Flash并不擅长处理位图图像的动作,应避免位图图像元素的动画。
92.如何迅速地对齐不同Frame中的物件?
答:用 Inspector “Ctrl+Alt+I” 直接输入坐标。或是工具栏〉〉窗口〉〉面板〉〉排列“Ctrl+K” 调出排列面板来。
93.怎样调节一个Symbol/MC地透明度?
答:选中Symbol/MC,菜单栏找到Modify(修改) 〉〉 Instance (实例)〉〉Color effect (效果)〉〉 Alpha(透明度) 调整就可以了.
94.做好地Flash放在html上面以后,它老是循环,怎么能够让它不进行循环?
  最后一个祯地Action设置成Stop(停止)
95.怎样给我的FLASH做一个预加载地LOADING?
答:用Action语法地if frame is loaded来实现,新建一层,这层专门放Action,
第一帧,
ifFrameLoaded ("场景", frame) {//假如场景中地祯数已经载入
goto and play() //跳至并播放某某祯(自己设定)
}
第二帧,
goto and play("场景1", 1)//跳至并播放第一祯循环
再加上一个load地MC循环播放在这两帧的中间,就OK了。
什么?你要非常详细地LOADING?那你可以参考一下别人的作品``
96.怎样点击一个按钮打开一个页面html而不是一个祯?
答:制作一个按钮,上面地AS直接写:
on (release) {
getURL ("***.html");
}
这里地***.html就是你要打开地页面文件名,当然也可以是某某URL地址,比如说

http://332763386.qzone.qq.com/
97.我在按钮地OVER祯放置了一个很大地MC,为什么我要没有点击到按钮鼠标就变成了手地状态?
答:按钮真正激活区是在HIT(按下)祯地位置,如果想控制按钮的位置为一定值,可以在HIT祯绘制一个透明地图形来判断.
98.如果屏蔽鼠标右键?FS命令都是什么意思?
答:fscommand ("fullscreen", "true/false");(全屏设置,TRUE开,FALSE关)
fscommand ("showmenu", "true/false");(右键菜单设置,TRUE显示,FALSE不显示)
fscommand ("allowscale", "true/false");(缩放设置,TRUE自由缩放,FALSE调整画面不影响影片本身的尺寸)
fscommand ("trapallkeys", "true/false");(快捷键设置,TRUE快捷键开,FALSE快捷键关)
fscommand ("exec");(EXE程序调用)
fscommand ("quit");(退出关闭窗口)
99.在FLASH中的字体总是很模糊,用变清晰地办法吗?
答:写好文本以后CTRL+T打开文本设置面板,在最后地文本框选项那里框选使用设计字体就行了.(注意最好使用宋体,尺寸为12或者8,这样比较工整)
100.我想做一个MTV,怎么导入声音呀?
答:很简单,CTRL+R导入你地声音文件就行了.
101.我制作地MTV声音和歌词总是不同步?
答:CTRL+F打开祯控制面板,右边找到声音选项卡,调整声音地同步效果为STREM(音频数据流)模式就行了.
102.怎样可以做出很漂亮地字体特效?
答:用第三方软件Swish和Swfx这些,闪吧地软件资源有下载.
103.问:怎么让动画放完后自动关闭?
答:在最后一桢的ACTION里选FSCOMMOND一项,然后在右边选中QUIT,就可以了
104.如何加载一个SWF文件?
答:loadMovieNum地技巧
添加一个空地MC。实体名为ok,ACTION:
loadMovie ("dr/test.swf", "_root.ok");
控制这个MC的位置,大小等相对属性(Property)就会影响调入SWF的位置和大小。
setProperty ("mc", _xscale, "****");
setProperty ("mc", _yscale, "****");
setProperty ("mc", _x, "****");
setProperty ("mc", _y, "****");
setProperty ("mc", _Alpha, "****"); ............
105.如何导入一个背景透明度效果比较好地位图?
答:推荐使用PNG格式(FIREWORK),FLASH对PNG位图地融合透明效果支持相当好。

一帧代码建立舞台底框,象素为宽1000x500背景黑色。








[ 本帖最后由 云端漫步 于 2010-2-6 15:37 编辑 ]

该用户从未签到

鲜花(0) 鸡蛋(0)
发表于 2010-2-6 14:24 | 显示全部楼层
你好,漫步。

该用户从未签到

鲜花(0) 鸡蛋(0)
发表于 2010-2-6 14:29 | 显示全部楼层

O(∩_∩)O~呵呵

学做动画还是6.0时,为了参加计算机二级考试,临时突击了一下。后来取一级证书时,就没有这部分内容。所以不亲自尝试,看漫步的教程,就像看天书一般。

该用户从未签到

鲜花(0) 鸡蛋(0)
发表于 2010-2-6 14:34 | 显示全部楼层
有现成的教程,还是应该好好学学哈,感谢漫步的辛苦劳动!

该用户从未签到

鲜花(0) 鸡蛋(0)
发表于 2010-2-6 15:03 | 显示全部楼层

小年快乐

今天是小年,祝朋友们小年快乐!祝漫步虎年大吉,万事如意!

该用户从未签到

鲜花(0) 鸡蛋(0)
 楼主| 发表于 2010-2-6 15:51 | 显示全部楼层

回复 2# 的帖子

function addStar()

{

star = attachMovie(\"dot\", \"d\" + count, count++);

star.x = blue.oldx;

star.y = blue.oldy;

star.z = blue.oldz;

star.onEnterFrame = starMove;

} // End of the function

function starMove()

{

var _loc1 = this;

var _loc2 = red.x - _loc1.x;

var _loc3 = red.y - _loc1.y;

var _loc3 = red.z - _loc1.z;

var distSQ = _loc2 * _loc2 + _loc3 * _loc3 + _loc3 * _loc3;

var force = 15000 / distSQ;

var zangle = Math.atan2(_loc3, _loc2);

_loc1.vx = _loc1.vx + Math.cos(zangle) * force;

_loc1.vy = _loc1.vy + Math.sin(zangle) * force;

var yangle = Math.atan2(_loc3, _loc2);

_loc1.vz = _loc1.vz + Math.sin(yangle) * force;

_loc1.vy = _loc1.vy + grav; _loc1.x = _loc1.x + _loc1.vx;

_loc1.y = _loc1.y + _loc1.vy;

_loc1.z = _loc1.z + _loc1.vz;

if (_loc1.y > 200)

{

_loc1.y = 200;

_loc1.vy = _loc1.vy * -7.000000E-001;

} // end if

if (_loc1.z < -fl)

{

_loc1._visible = false;

} // end if

if (_loc1.age++ > 200)

{

_loc1.removeMovieClip();

return;

} // end if

var scale = fl / (fl + _loc1.z + cz);

_loc1._x = cx + _loc1.x * scale;

_loc1._y = cy + _loc1.y * scale;

_loc1._xscale = _loc1._yscale = scale * 100;

} // End of the function

stop ();

cx = 350;

cy = 200;

cz = 50;

fl = 300;

createEmptyMovieClip(\"lines\", 10000000);

createEmptyMovieClip(\"lines2\", 10000001);

lines.lineStyle(1, 16777215, 10);

for (xa = -10; xa < 11; xa++)

{

x = xa * 100;

y = 200;

scale = fl / (fl - 50 + cz);

x1 = x * scale + cx;

y1 = y * scale + cy;

lines.moveTo(x1, y1);

scale = fl / (fl + 2000 + cz);

x2 = x * scale + cx;

y2 = y * scale + cy;

lines.lineTo(x2, y2);

} // end of for

for (ya = 0; ya < 20; ya++)

{

y = 200;

z = ya * 100;

scale = fl / (fl + z + cz);

x1 = 1000 * scale + cx;

y1 = y * scale + cy;

lines.moveTo(x1, y1);

x2 = -1000 * scale + cx;

lines.lineTo(x2, y1);

} // end of for

grav = 1.200000E-001;

baseSpeed = -1.000000E-002;

red.y = -100;

blue.y = -100;

onEnterFrame = function ()

{

baseSpeed = (_xmouse - 350) * 2.000000E-004;

baseAngle = baseAngle + baseSpeed;

red.x = Math.cos(baseAngle) * 200;

red.z = Math.sin(baseAngle) * 200 + 200;

blue.x = -red.x;

blue.z = -(red.z - 200) + 200;

var _loc1 = fl / (fl + red.z + cz);

red._x = cx + red.x * _loc1;

red._y = cy + red.y * _loc1;

red._xscale = red._yscale = _loc1 * 100;

red.swapDepths(1000000000 - red.z * 100);

lines2.clear();

lines2.lineStyle(1, 255, 30);

lines2.moveTo(red._x, red._y);

lines2.lineTo(red._x, 200 * _loc1 + cy);

_loc1 = fl / (fl + blue.z + cz);

blue.oldx = blue.x;

blue.oldy = blue.y;

blue.oldz = blue.z;

blue._x = cx + blue.x * _loc1;

blue._y = cy + blue.y * _loc1;

blue._xscale = blue._yscale = _loc1 * 100;

blue.swapDepths(1000000000 - blue.z * 100);

lines2.lineStyle(1, 16711680, 30);

lines2.moveTo(blue._x, blue._y); l

ines2.lineTo(blue._x, 200 * _loc1 + cy);

if (getTimer() - start > 300)

{

addStar();

start = getTimer();

} // end if

};

[ 本帖最后由 云端漫步 于 2010-2-6 16:16 编辑 ]

该用户从未签到

鲜花(0) 鸡蛋(0)
发表于 2010-2-6 19:15 | 显示全部楼层

回复 6# 的帖子

O(∩_∩)O~,全是代码哎。

该用户从未签到

鲜花(0) 鸡蛋(0)
发表于 2010-2-6 19:16 | 显示全部楼层

O(∩_∩)O哈哈~

傲雪老师把我的头像换了。[s:3]

该用户从未签到

鲜花(0) 鸡蛋(0)
发表于 2010-2-6 19:17 | 显示全部楼层
云斑斑辛苦了,继续收藏了学习,非常感谢~

该用户从未签到

鲜花(0) 鸡蛋(0)
发表于 2010-2-6 19:23 | 显示全部楼层

O(∩_∩)O谢谢

谢谢傲雪老师,今天过小年我也穿上新YY了,这套YY是傲雪老师精心制作的。
您需要登录后才可以回帖 登录 | 中文注册

本版积分规则

网站地图|小黑屋|Archiver|中画网 ( 蜀ICP备11021737号-2 )|网站地图

GMT+8, 2024-4-27 16:34 , Processed in 0.054302 second(s), 14 queries , MemCached On.

上网要文明 发言要理性

Powered by Discuz! © 2008-2023 YinHuaBBS.CN

快速回复 返回顶部 返回列表