望麓自卑—湖南大学最具潜力的校园传媒

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1944|回复: 3

存有关FLASH (转贴)

[复制链接]
发表于 2006-8-27 13:03:03 | 显示全部楼层 |阅读模式
122个常见问题收集整理(FLASH初学者参见)
说明:该部分整体为一些基本的常见问题的收集,不一定做到完整,尽力为初学者解决必要的常见问题,至于错误的地方请提出以便修改.该整理贴版权归闪吧论坛所有,转载请注明出处.部分解答参考了小冬瓜的文章,在此表示感谢
  
1,FLASH是什么?
FLASH电影是专为网页服务的画像或动画(当然,也可用于其它用途)。主要含有矢量图形,但是也可以包含导入的位图和音效,还可以把浏览者输入的信息同交互性联系起来,从而产生交互效果,也可以生成非线性电影动画。该动画可以同其它的WEB程序产生交互作用。网页设计师可以利用FLASH来创建导航控制器、动态LOGOS、含有同步音效的长篇动画、甚至可以产生完整的、富于敏感性的网页。
  
2,怎样做一个简单地FLASH动画?  
首先,打开你的FLASH软件,绘制一个圆形(左面地圆形工具可以直接绘制),然后按F8添加为一个Symbol,再图层第十祯地位置按F6键添加一个关键祯,并适当移动该Symbol的位置,最后在第一祯位置点鼠标右键选择Motion就行了.
  
3,什么叫矢量图?
矢量图可以任意缩放而不影响Flash的画质,位图图像一般只作为静态元素或背景图,Flash并不擅长处理位图图像的动作,应避免位图图像元素的动画。  
  
4,如何迅速地对齐不同Frame中的物件?
用 Inspector “Ctrl+Alt+I” 直接输入坐标。  
或是工具栏〉〉窗口〉〉面板〉〉排列“Ctrl+K” 调出排列面板来。图例  
  
5,怎样调节一个Symbol/MC地透明度?
选中Symbol/MC,菜单栏找到Modify(修改) 〉〉 Instance (实例)〉〉Color effect (效果)〉〉 Alpha(透明度) 调整就可以了
  
6,做好地Flash放在html上面以后,它老是循环,怎么能够让它不进行循环?  
最后一个祯地Action设置成Stop(停止)  
  
7,怎样给我的FLASH做一个预加载地LOADING?
用Action语法地if frame is loaded来实现,新建一层,这层专门放Action,
第一帧,
ifFrameLoaded (\"场景\", frame) {//假如场景中地祯数已经载入
goto and play() //跳至并播放某某祯(自己设定)
}
第二帧,
goto and play(\"场景1\", 1)//跳至并播放第一祯循环
再加上一个load地MC循环播放在这两帧的中间,就OK了。  
  
什么?你要非常详细地LOADING?那就当这个源码吧,够详细了.
源码下载
  
8,怎样点击一个按钮打开一个页面html而不是一个祯.
制作一个按钮,上面地AS直接写:
on (release) {
    getURL (\"***.html\");
}
这里地***.html就是你要打开地页面文件名,当然也可以是某某URL地址,比如说http://www.flash8.net ;
  
9,我在按钮地OVER祯放置了一个很大地MC,为什么我要没有点击到按钮鼠标就变成了手地状态?
按钮真正激活区是在HIT(按下)祯地位置,如果想控制按钮的位置为一定值,可以在HIT祯绘制一个透明地图形来判断.
  
10,如果屏蔽鼠标右键?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\");(退出关闭窗口)
  
11,在FLASH中的字体总是很模糊,用变清晰地办法吗?
写好文本以后CTRL+T打开文本设置面板,在最后地文本框选项那里框选使用设计字体就行了.(注意最好使用宋体,尺寸为12或者8,这样比较工整)
  
12,我想做一个MTV,怎么导入声音呀?
很简单,CTRL+R导入你地声音文件就行了.
  
13,我制作地MTV声音和歌词总是不同步.
CTRL+F打开祯控制面板,右边找到声音选项卡,调整声音地同步效果为STREM(音频数据流)模式就行了.
  
14,为什么我做出来地MTV文件很大呀?
参看这篇贴子
  
15,FLASH地发布设置都有些什么?透明背景怎样设置?
图解图1图2图3
在Dreamewaver中地设置:
图解
(由FLASHWEB提供图材)
  
16,怎样可以做出很漂亮地字体特效?
用第三方软件Swish和Swfx这些,闪吧地软件资源有下载.
  
17,如何优化我地FLASH?
参看这篇贴子
  
18,我在ACTION面板地高级模式为什么字体总是很小?
  
  
19,如何加载一个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, \"****\"); ............
  
20,如何导入一个背景透明度效果比较好地位图?
推荐使用PNG格式(FIREWORK),FLASH对PNG位图地融合透明效果支持相当好。
  
21.问: 如何用actionscript将页面设为首页和加入收藏夹?  
答: 一,用getURL的方法:  
  
设为首页:  
on (release) {  
getURL(\"javascript :void(document.links[0].style.behavior=’url(#default#homepage)’);void document.links[0].setHomePage(’http://www.flashempire.com/');\", \"_self\", \"OST\");  
}  
  
加入收藏夹:  
on (release) {  
getURL(\"javascript :void window.external.AddFavorite(’http://www.flash8.net',’闪吧’);\", \"_self\", \"OST\");  
}  
  
二,用fscommand的方法,有点复杂  
  
1,先在flash的按钮上添加代码:  
  
首页:  
on (release) {  
fscommand(\"setHomePage\", \"http://www.flash8.net\"/’ target=\"_blank\" >http://www.flash8.net\";);  
}  
  
收藏夹:  
on (release) {  
fscommand(\"addFavorite\", \"http://www.flash8.net|闪吧\");  
}  
  
然后在发布设置中选择flash with fscommand,发布成html  
  
2,修改html:  
  
找到  
// Handle all the the FSCommand messages in a Flash movie  
function sethomepage_DoFSCommand(command, args) {  
}  
这一段,修改成:  
// Handle all the the FSCommand messages in a Flash movie  
function sethomepage_DoFSCommand(command, args) {  
var sethomepageObj = InternetExplorer ? sethomepage : document.sethomepage;  
if (command == \"setHomePage\") {  
document.links[0].style.behavior = \"url(#default#homepage)\";  
document.links[0].setHomePage(args);  
} else if (command == \"addFavorite\") {  
args = args.split(\"|\");  
window.external.AddFavorite(args[0], args[1]);  
}  
}  
  
最后,如果html里一个链接都没有,还需在这句的前面添加一句javascript :window.open(’new.htm’,’newwin’,’width=320,height=320’);\")  
这样的一句,但有很多问题,比如打开了新窗口后,原窗口的内容也被替代了。  
  
1、在Flash中需要执行打开新窗口动作的地方插入以下语句:  
FS Command (\"open_window\", \"filename.htm;newwin;toolbar=no,location=no,status=no,  
menubar=no,scrollbars=no,resizable=no,width=320,height=200\")  
其中Arguments:  
filename.htm 要打开的文件名  
newwin 新窗口的名字  
toolbar=no,location=no,status=no,  
menubar=no,scrollbars=no,resizable=no,width=320,height=200 新窗口的有关属性,包括尺寸  
注意以上三部分要用分号\";\"分隔  
  
2、在File>ublish setting...中设定  
HTML中的Tempalte : Flash with FSCommand  
发布  
  
3、编辑发布生成的html文件,找到以下一段:  
  
code:--------------------------------------------------------------------------------  
trace bitmap\"命令优化图象!  
  
100。问: 请问如何在每次刷新页面时随即显示几个不同的 SWF 中的某一个动画?  
答: LoadmovieNum(\"movie\"+random(5)+\".swf\")  
假设有6个swf,分别命名为  
movie0.swf,movie1.swf,……movie5.swf  
像上边那样,每刷新一次,出现的界面就可能不一样。  
  
101。问: 如何屏蔽按钮BUTTON的手型,我只要箭头!  
答: 可以使用mouse.hide();,然后再用startDrag命令让一个箭头形的MC被拖动就可以了。  
  
102. 问:如何让一个MC调用另一个MC里设置的一个变量?  
  
在mc里输入此语句:(a b 均为变量名,mcname为mc的实体名)  
  
a = _root.mcname.b;  
  
此语句是使本mc的变量a调用_root.mcname这个mc里的变量b  
  
103.问: 在Flash中如何打开Word文档?  
  
Flash不支持调用Word文件,但浏览器可以直接打开.doc文档,那么就用getURL来解决即可,路径用绝对地址http://www..../word.doc ;。  
  
104. 问:在Flash中如何调用mpeg文件?  
  
Flash中不支持调用mpeg文件,首先要安装一个三方软件,名字为Swiffcanvas1.0;接着打开fla文件,如果mpeg文件的目录为aa,mpeg文件名字为bb,那么就可以就添加下面的语句:  
  
FS Command (\"exec\", \"SwiffEXEC(LOCAL:aaa111.mpeg) \");  
  
然后把fla文件输出为exe文件 ,并用Swiffcanvas打开这个exe文件,然后在Swiffcanvas里设置完成自己的要求。最后再输出为.exe文件,就可以了。
  
105。问: 在ActionScript的编辑窗口中怎么输入中文?  
  
可以更换Flash的字体,也就是删除WindowsFontsModern.fon,这样,编辑窗口的字体就好看多了。  
  
105.问: Flash如何与数据库连接?  
  
答:只能通过后台文件,如CGI脚本,Active Server ages (ASP),或 ersonal Home Page (PHP)等。传递值到flash中,实现数据库的操作。  
  
106. 问:在用FsCommand中可以调用JavaScript吗?  
  
答:FsCommand可以调用JS函数MovieName_DofsCommand装入Flash动画。MovieName是Flash动画的名字由Embed标签的Name属性或是Object标签的ID属性指定,如果FlashPlayer的名字为MYMOVIE,应该调用JS函数名字为MYMOVIE_DOFSCOMMAND。
  
107。问:如何学习Flash(阿文)
http://bbs.flash8.net:8000/cgi-b ... mp;bpg=1&age=-1 ;
  
108。问:如何实现FLASH背景颜色的随机变换 (erik168)
http://bbs.flash8.net:8000/cgi-b ... mp;bpg=1&age=-1 ;
  
109:问:Flash 5.0 Actions 一览! (djsgh)
答:http://bbs.flash8.net:8000/cgi-b ... mp;bpg=1&age=-1 ;
  
110。问:如何制作动作连贯的小黑人(拾荒)
答:http://bbs.flash8.net:8000/cgi-b ... mp;bpg=1&age=-1 ;
  
111。问:初学者如何人打好ACTION基础(小晶)
答:http://bbs.flash8.net:8000/cgi-b ... mp;bpg=1&age=-1 ;
  
112。问:如何实现画中画效果(木桫椤)
答:http://bbs.flash8.net:8000/cgi-b ... mp;bpg=1&age=-1 ;
  
113。问:FLASH如何与后台连接?[源码]
答:使用LoadVars()对象的sendAndLoad()方法来发送和接收数据
  
114。问:如何实现声音的暂停/播放效果?
答:在执行stop()命令时可以用sound对象的position属性取得当前声音文件的播放时间(毫秒),然后用start(time,loop)在当前位置播放即可。
  
115。问:如何定义二维数组?
答:下面定义一个20*20的二维数组,值全部为0
sarray = [];
for (var i = 0; i<=19; i++) {
  sarray[ i] = [];
  for (var j = 0; j<=19; j++) {
    sarray[ i][j] = 0;
  }
}
  
116。问:如何打开指定属性的窗口?[源码][/COLOR]
  
答:先JS在HTML页面中定义函数,然后在FLASH中用getURL()调用
(turbine)
  
117。问:如何通过MC中的按钮跳转场景?
答:在要跳转的桢上加标签,通过标签跳转:gotoAndStop(\"yourlable\")
(turbine)
118。问:如何随机设置MC颜色?
答:MC实例名为\"mc\"
mycolor=new Color(\"mc\")
mycolor.setRGB(random(0xffffff))
(turbine)
119。问:如何实现双击效果?
答:把下面的代码放到按钮上:
on (press) {
  time = getTimer()-down_time;
  if (time<300) {
    trace(\"ok\");
  }
  down_time = getTimer();
}
(turbine)
120。问:如何使MC始终跟随鼠标旋转?[源码][/COLOR]
答:先计算MC横纵坐标与鼠标横纵坐标的差值,然后用Math.atan2()来计算旋转角度。
m_x = _root._xmouse-mc._x;
m_y = _root._ymouse-mc._y;
mc._rotation = PI=180/Math.PI*Math.atan2(m_y, m_x);
(turbine)
121。问:如何做鼠标跟随效果?
答:基础代码如下,a为步长
mc._x+=(_root._xmouse-mc._x)/a
mc._y+=(_root._ymouse-mc._y)/a
(turbine)
122。问:如何在AS中创建类的继承?
答:创建一个MC的继承类
myClass=function(){
……
}
myClass.prototype = new MovieClip();  
(turbine)
  
122.问:能否详细讲解loadmovie
答:loadmovie的问题,然后就是加载之后属性的设置。。
loadMovieNum(url,level,method);
  
url 就是你要加载的SWF文件的相对或绝对URL. 如\"snow.swf\"或\"http://go8.163.com/6snow9/myflash/snow.swf\"’ target=\"_blank\" >http://go8.163.com/6snow9/myflash/snow.swf\";,强烈建议把要加载的swf都放在同一目录下
  
level指定被加载的swf放入到哪个层级(level)里,范围为0---n吧具体多少,我也不清楚了。。若为0则被载载的swf动画会完全取替原来的动画哦!数字越大,就越在原动画上面!
  
method 是传递参数的形式,有\"OST\"和\"GET\"两种
通过loadmovie加载进来的动画不需要时可以用unloadmovie命令把它卸除如
例:loadMovieNum(\"snow.swf\",1);//加载snow.swf到第一层
  
接下来可以用getBytesLoaded();命令获得下载进度了如在第1帧:
bytesload=_level1.getBytesLoaded();
bytestotal=_level1.getBytesTotal();
loadbar._xscale=int(bytesload/bytestotal*100);
  
当下载完成后,就可以对它进行控制了,如设置属性,播放,停止等如在第5帧:
if (_level1.getBytesLoaded()>=_level1.getBytesTotal()){
     _levle1.play();
     play();
}else {
     gotoAndPlay(1);
}
  
通过loadmovie加载进来的动画不需要时可以用unloadmovie命令把它卸除,如前面的snow.swf。。AS为:_level1.unloadMovie();
演示:http://go8.163.com/6snow9/myflash/level/index.htm
源文件:
http://bbs.flash8.net:8000/attach/2002/05/11/156567-nowload.zip
  
关 于 加 载 sw f到 target 的 方 法:   loadMovie(url,target[,method]);
1.可使用loadMovie(\"snow.swf\",mc);,若已经有一个空MC存在的话,可以用mc.loadMovie(\"snow\");加载
  
2.被加载的s动画,有关于AS的地方最好用相对路径,而不用_root.mc.loadmovie.play();等形式的绝对路径,可使用如:
_parent._parent.mc.play();//主场景的loadbar下的mc的帧要控制被加载到主场景空mc的动画播放
    因为一旦被加载了,整个动画也就成了mc,用这样的语句可能会引起混乱
加载到MC实例源文件:
        http://gumu.net/non/attach/130807-myload.zip
作者:萧月痕
  
123.原来MX的FS命令是这样的。
  
相信不少朋友在MX版本中继续使用FS的EXEC命令,但是。。。。  
  
偶多试不灵,前些日子得到答案,还得感谢偶那StudioMX安装包。  
  
其实非常简单,在MX版本中的EXE调用更加严格,必须使用FLASHPLAYER或者自程序EXE的方式调用,HTML页面禁止。这里变化就是目录方面Macromedia做了安全措施。必须是当前路径的FSCOMMAND目录下,也就是说你得手工建立一个FSCOMMAND目录来放置你调用的EXE程序。这个很简单,
其语法命令同F5不变:  
fscommand(\"your.exe\");  
  
---闪吧工作室整理---
 楼主| 发表于 2006-8-27 13:03:23 | 显示全部楼层
[转帖]loadMovie/loadMovieNum使用详解

----------------------------------转自<电脑网络精深资料> www.jszl.cn -----------------------------


一、loadMovie("url",target [, method])

描述:函数;在播放原始 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中目标影片剪辑的路径。
首先我们可以看到该函数有3个参数:url、target、method。其中,最后一个参数“method”是一个可选参数。

1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。
这就是说这个url可以是本地的文件路径,也可以是Internet上的文件地址。但是,无论从何处加载,都只能是 SWF 或 JPEG 文件。并且,该参数是一个字符串,所以必须写在半角双引号中,如:

loadMovie("01.swf", _root)
loadMovie("01.jpg", _root)
loadMovie("http://www.abc.com/01.swf";, _root)
loadMovie("http://www.abc.com/01.jpg";, _root)
2.参数target:指向目标影片剪辑的路径。目标影片剪辑将替换为加载的 SWF 文件或图像。

这个参数表示要影片将被加载到的路径,它指向目标影片剪辑的路径。加载后,目标影片剪辑将替换为加载的 SWF 文件或图像。如:

loadMovie("01.swf", _root)
loadMovie("01.swf", _root.loading)
loadMovie("01.swf", _root.loading.01)
3.参数method:可选参数,指定用于发送变量的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。

二、loadMovieNum("url",level [, variables])

描述:函数;在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别。

首先我们可以看到该函数有3个参数:url、target、variables。其中,最后一个参数“variables”是一个可选参数。

1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。
该函数的此参数和上面loadMovie中的此参数用法完全一致,这里不再作解释。

2.参数level:一个整数,指定 SWF 文件将加载到 Flash Player 中的哪个级别。
加载的时候,可以这样来写:

loadMovieNum("01.swf", 1);
loadMovieNum("01.swf", 2);
loadMovieNum("01.swf", 3);
控制的时候,可以这样使用:

_level1._x=10 ;
_level2.aa._alpha=50 ;
_level3.aa.bb._width=110;
需要注意的的是,每一个级别只能同时存在一个 SWF 或 JPEG 文件。如果两个 SWF 或 JPEG 文件的级别相同,那么后者将替换掉前者。级别不同的_level,级别大的将覆盖掉级别小的,即:数字大的将处于数字小的之上。

3.参数variables:可选参数,指定发送变量所使用的 HTTP 方法。该参数必须是字符串 GET 或 POST。如果没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,它用于发送少量的变量。POST 方法在单独的 HTTP 标头中发送变量,它用于发送大量的变量。


三、loadMovie/loadMovieNum 的定位

我想,也许这才是大家真正要找的东东:)


1.loadMovie的定位

由于用loadMovie加载进来的 SWF 或 JPEG 文件,最后是放置于目标影片剪辑里的,所以我们完全可以像控制MC的_x和_y,来控制加载到的目标影片剪辑。就好像我们在墙壁(_root)上挂上了一个相框(目标影片剪辑),然后又在相框里面放入(加载)了一张相片(SWF 或 JPEG 文件),那么当我们想挪动相片的位置的时候,只要移动相框的位置就可以了。

比如在主场景中有一个实例名为aa的MC(坐标为(20,30)),我们要在里面加载一个02.swf文件,并且要加载后这个放到相框(_root.aa)中的相片(02.swf)出现在主场景(_root)坐标系的(50,100)处。代码如下:

loadMovie ( "02.swf" , _root . aa );
_root . aa . _x = 50 ;
_root . aa . _y = 100 ;
在实际应用中,其实更加倾向于用AS创建一个空MC,然后在这个MC中加载外部 SWF 或 JPEG 文件。代码如下:

l_root . createEmptyMovieClip ( "aa" , 1 );
with ( aa ) {
_x = 50 ;
_y = 100 ;
loadMovie ( "02.swf" );
}
2.loadMovieNum的定位

从前面我们已经知道了,函数loadMovieNum是将 SWF 或 JPEG 文件加载到_level(级别)的。并且是用_level1._x、_level2._x、_level1.aa._x之类的来定位的。比如我们要将02.swf加载到主场景坐标系的(50,100)中,代码如下:

loadMovieNum ( "02.swf" , 1 );
_level1 . _x = 50 ;
_level1 . _y = 100 ;
但是在测试的时候大家会发现加载进来的02.swf并没有如我们预期的那样出现在主场景坐标系的(50,100)位置,这是为什么呢?

原来,在没有使用loadMovieNum以前,所有的图形、MC等等都是处于_level0里的,我们通常使用的_root其实就是_level0。你可以作个测试:trace(_root==_level0),你会发现返回值是“true”。

那么,我们用loadMovieNum加载 SWF 或 JPEG 文件的时候,程序就要对你指定的_level进行创建,随后再紧接着载入 SWF 或 JPEG 文件。如果像刚才代码中写的那样,不判断_level是否存在而调用其属性,势必无功而反。

解决的方法也很简单,就是用一个循环来判断指定的_level是否存在。一旦_level产生,那么它的种种属性自然可以调用了。代码如下:

loadMovieNum ( "02.swf" , 1 );
onEnterFrame = function () {
if ( _level1 ) {
with ( _level1 ) {
_x = 50 ;
_y = 100 ;
}
delete onEnterFrame ;
}
};
或者:

loadMovieNum ( "02.swf" , 1 );
function go () {
if ( _level1 ) {
with ( _level1 ) {
_x = 50 ;
_y = 100 ;
}
clearInterval ( fps );
}
}
fps = setInterval ( go );
再或者大家可以使用Macromedia Flash MX 2004中的MovieClipLoader类来判断加载状态。
 楼主| 发表于 2006-8-27 13:13:41 | 显示全部楼层
Flash加载外部文件

Flash可以通过帧、按扭、影片剪辑来调用外部文件。调用的外部文件包括:外部文本文件、外部程序文件、外部*.swf文件、外部图片文件、外部音乐文件、外部脚本文件。
一.调用外部文本文件:(文本文件开头要以flash中的动态文本框的变量名开头,如
msg=".........."这样的形式,要和编辑的Flash文件放在同一目录下)
1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
2.制作两个按扭(一个调用,一个清除)拖放到场景中。
3.调用按扭上添加AS:
on(release){//松开鼠标后执行下面的代码;
loadVariables("msg.txt",msg);//调用和你编辑的Flash处于同一目录下的msg.txt文本文件到动态文本msg中;
System.useCodepage=true;//使外部文件的中文字符能够正确显示;
}
4.清除按扭上的AS:
on(release){//松开鼠标后清楚动态文本框中的内容;
msg="";
}
5.Ctrl+Enter测试.
当然代码也可以写在帧上调用按扭的实例名是bt1,清除按扭的实例名是bt2)
在第一帧上加如下代码:
stop();
_root.bt1.onRelease=function(){
loadVariables("msg.txt",msg);
System.useCodepage=true;
}
_root.bt2.onRelease=function(){
_root.msg="";
}
Ctrl+Enter测试.

调用的外部文本文件能够滚动:
1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
2.新建一层,制作两个按扭(一个调用,一个清除)拖放到此层中
3.新建一层,在动态文本框的右侧用矩形工具画一个竖条,高度和动态文本一样;再制作一个向上的方向"箭头"按F8转为按扭元件;复制一个"箭头"按扭,垂直镜象,使这两个按扭和竖条的两端对齐.
4.调用按扭上的AS:
on(release){//松开鼠标后执行下面的代码;
loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
System.useCodepage=true;//使外部文件的中文字符能够正确显示;
}
清除按扭上的AS:
on(release){
_root.msg="";//清除动态文本框中的内容;
}
向上的按扭上的AS:
on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
}
向下的按扭上的AS:
on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
}
Ctrl+Enter测试.

当然代码也可以写在帧上调用按扭的实例名是bt1,清除按扭的实例名是bt2,向上按扭的实例名是:up,向下按扭上的实例名是down)
在第一帧上加如下代码:
_root.bt1.onRelease=function(){//松开鼠标后执行下面的代码;
loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
System.useCodepage=true;//使外部文件的中文字符能够正确显示;
}
_root.bt2.onRelease=function(){//松开鼠标后执行
_root.msg="";//清除动态文本框中的内容;
}
_root.up.onPress=function(){//在向上按扭上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
}
_root.down.onPress=function(){//在向下按扭上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
}
Ctrl+Enter测试.
发表于 2006-8-27 21:26:26 | 显示全部楼层
有用的东西`~感谢提供~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

每日推荐上一条 /1 下一条

小黑屋|手机版|湖南大学望麓自卑校园传媒 ( 湘ICP备14014987号 )

GMT+8, 2025-5-22 02:56 , Processed in 0.063667 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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