21.问: 如何用action<I>script</I>将页面设为首页和加入收藏夹?
答: 一,用getURL的方法:
设为首页:
on (release) {
getURL("java<I>script</I>:void(document.links[0].style.behavior='url(#default#homepage)');void document.links[0].setHomePage('
http://www.flashempire.com/');", "_self", "POST");
}
加入收藏夹:
on (release) {
getURL("java<I>script</I>:void window.external.AddFavorite('
http://www.flash8.net','闪吧');", "_self", "POST");
}
二,用fscommand的方法,有点复杂
1,先在flash的按钮上添加代码:
首页:
on (release) {
fscommand("setHomePage", "
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
<I>function</I> sethomepage_DoFSCommand(command, args) {
}
这一段,修改成:
// Handle all the the FSCommand messages in a Flash movie
<I>function</I> sethomepage_DoFSCommand(command, args) {
<I>var</I> 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里一个链接都没有,还需在<<I>script</I> LANGUAGE=java<I>script</I>>这句的前面添加一句<a href="java<I>script</I>:"></a>
22.问: 怎么让动画放完后自动关闭?
答: 在最后一桢的ACTION里选FSCOMMOND一项,然后在右边选中QUIT,就可以了
23。问: 怎样引入透明的位图?
答: 最好输入png文件。png是fireworks文档。当然你也可以输入GIF89a格式的透明GIF图片。
24。问: 如何在Flash中打开一个定制的浏览器新窗口?
答: 这个问题,很常见,也讨论过无数次,以前的一些有用的帖子找不到了,现在重新整理如下:
常用也是很简单的方法是用类似
Get URL ("java<I>script</I>: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>Publish setting...中设定
HTML中的Tempalte : Flash with FSCommand
发布
3、编辑发布生成的html文件,找到以下一段:
code:--------------------------------------------------------------------------------<<I>script</I> LANGUAGE=java<I>script</I>>
<!--
<I>var</I> InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the the FSCommand messages in a Flash movie
<I>function</I> Movie1_DoFSCommand(command, args) {
<I>var</I> Movie1Obj = InternetExplorer ? Movie1 : document.Movie1;
//
// Place your code here...
//
}
...
--------------------------------------------------------------------------------
改为:
code:--------------------------------------------------------------------------------<<I>script</I> LANGUAGE=java<I>script</I>>
<!--
<I>var</I> InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the the FSCommand messages in a Flash movie
<I>function</I> Movie1_DoFSCommand(command, args) {
<I>var</I> Movie1Obj = InternetExplorer ? Movie1 : document.Movie1;
// Place your code here...
if (command == "open_window")
{
arg_array=args.split(";");
window.open(arg_array[0],arg_array[1],arg_array[2]);
}
}
...
--------------------------------------------------------------------------------
OK!
如果是插入现有的html页,可以先发布,再copy相应的代码到html文件。
25。问: 如何用action控制倒放?
答: 做一个mc放在合适的地方,里面有两帧
第一帧:
If (GetProperty ("/a",_current<I>frame</I>)<=1)
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_total<I>frame</I>s))
End Tell Target
Else
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_current<I>frame</I>)-1)
End Tell Target
End If
第二帧:
Go to and Play (1)
这样就可以让/a倒放
但是还有一个问题无法解决:
如果我只想停一段呢?
比如说,我在第十个关键帧处加了一个STOP,在第三十个关键帧处加了一个STOP,现在想倒到STOP处停下来,却没有办法做到。
If (GetProperty ("/a",_current<I>frame</I>)<=1)
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_total<I>frame</I>s))
End Tell Target
Else
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_current<I>frame</I>)-1)
End Tell Target
End If
第二帧:
Go to and Play (1)
这一段肯定放在一个mc 里,
假设这个mc为/b
在/a需要停止的帧理设置
Begin Tell Target ("/b")
stop
End Tell Target
stop
就可以了
26。问: 内部声音角色与外部声音角色有何差异?
答: 没什么太大的区别
外部文件如果导如的话可以降低文件的大小
在发布的时候或者做成光盘的时候需要和DCR文件一起走,并且始终保持相对路径不变
还有一个流式播放的问题
如果导入的声音文件过大就会影响同步效果,声音滞后。(因为Director在播放内部声音之前就将其预栽到RAM中)外部声音文件是流式的,一边播放,一边下载。但要注意连接路径问题。
27。问: 如何使声音无限循环?
答: 将声音的循环次数定义成足够大,如果你的音乐设为STREM(音频数据流)那你的swf文件也会足够大。
28。问: 如何控制声音的播放及停止
答: 在library 里右健点击声音文件,选linkage…
设置Export This Symbol
entifier:
取名为"sound"
然后就可以在stage里面设置了
s = new Sound();
s.attachSound("sound");
要让声音sound关掉只须
执行:
s.stop();
要让他开始播放就是
s.start();
29.问: 如何调入SWF文件及控制它的大小和位置?
答: 一、如何调入一个SWF文件:
调入一个SWF置给一个层loadMovieNum ("path/movieFile.swf", 0);
其“path/movieFile.swf”为要调入文件的地址,“0”为层号,“0”为第0层;
调入一个SWF置给一个MC
loadMovie ("path/movieFile.swf", "MC_Name");其“path/movieFile.swf”为要调入文件的地址,“MC_Name”是MC的名字。
二、如何改变调入后的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具体大小的数值。
三、如何改变其位置:
一个简单的方法是,我们可以来移动那个已给置入MOVIE文件的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”是位置具体的数值。