flash 问题集锦
让Flash广告具有记忆功能
当你常去的论坛上有个 Flash 广告,而你每次刷新页面的时候它都从头播放。会不会感觉很烦? 所以我们要改装一下这个Flash.给他植入记忆功能.继续播放动画
要实现的效果:
刷新或关闭页面的时候记住上次的播放头位置.
下一次打开页面动画接着上一次的位置继续播放.
(注:把此段代码放到动画的第一帧即可.)应用:效果可以看经典论坛的 Banner 广告.
实现代码如下(发布成AS1/AS2):
flash屏蔽掉链接上的小手-useHandCursor
当鼠标指针位于 myBtn1_btn 上方并单击该按钮时,不会显示手形光标。
让按钮失效
在当前帧上暂定若干秒后在自动播放下一帧
在当前帧上暂定若干秒后在自动播放下一帧需要一个自动的过程,而不是通过按钮控制的。
让mc成为按钮,flash鼠标滑过影片剪辑时是否显示手指形
首先,如何然MC成为按钮:
//让mc成为按钮,as控制。
useHandCursor(MovieClip.useHandCursor 属性)
public useHandCursor : Boolean
一个布尔值,指示当鼠标滑过影片剪辑时是否显示手指形(手形光标)。useHandCursor 属性的默认值是 true。如果 useHandCursor 设置为 true,则当鼠标滑过按钮影片剪辑时会显示用于按钮的手形光标。如果 useHandCursor 为 false,则将改用箭头指针。
可以随时更改 useHandCursor 属性;修改后的影片剪辑会立即使用新的光标行为。可以从原型对象中读出 useHandCursor 属性。
可用性:ActionScript 1.0;Flash Player 6
示例
下面的示例为名为 myMC1_mc 和 myMC2_mc 的两个影片剪辑设置 useHandCursor 属性。对于其中一个实例,该属性设置为 true;对于另一个实例,它设置为 false。请注意这两个实例如何仍能接收事件。
让某一区域的按钮失效
某一片区域有许多按钮,需要让这些按钮失效,当然可以将每个按钮的enabled设置为false,以下做法也许更好。
用一个全透明的mc(命名为blank),盖在最高层,然后加如下代码
这样被盖住的区域内按钮就全失效了 blank被remove掉,按钮就恢复了
flash中fscommand几个参数的应用.
其作用是运用FLSH调用外部的应用程序。调用EXE文件最重要的一点,必须把你的SWF文件先转换成EXE,也就是FLASH的播放器。必须把你要调用的EXE文件放在同一目录的fscommand文件下。
开启一个外部可执行程序:扩展名.exe可以省略。
具体来说,若一个exe文件(假设为flash1.exe)和该swf文件本身在同一个目录下,则直接键入程序文件名即可。如:
下面两种情况也可以不写路径:
1.当可执行程序是在c:\windows目录下时,可以不写路径。如调用windows的计算器,下面三种写法均可:
2.调用DOS命令也可省略路径。如下例打开MS-DOS下的Edit编辑器:
如果熟悉批处理文件写法,通过FSCommand->exec命令执行批处理文件可以一举多得。
flash调用外部exe文件
1.新建一名为fscommand的文件夹放置要调用的exe文件.
2.新建一个flash文件,建一按钮,写入as如下:
3.把新建的swf转为exe,才可以调用.
解决Flash影片中的图片抖动锯齿
Flash 影片的默认质量是高,其实还可以更高[也更耗资源].
AS 控制方法:
或者在发布向导中的HTML标签Quality项选择Best.这样图片就不抖了
as改变外部mc尺寸
1.新建一个mc,取名为:mc
时间轴代码:
调用远程swf的方法
安全沙盒冲突
解决跨域名访问
例如你要访问的文件为远程地址 http://www.stonemx.com/design/flashgbook/2/flashgbook.swf
flash[swf]在网页里面背景透明
flash[swf]在网页里面背景透明
加入以下代码
flash[swf]flash按钮打开全屏窗口
这里举个最常见的例子——利用getURL调用javascript打开新窗口
方法如下:
将下面的代码加到Flash按钮上
具体参数设置如下:
URL -> 弹出新窗口的页面地址
Width -> 窗口宽度
Height -> 窗口高度
Name -> 窗口名
Tool bar -> 是否需要工具栏
Menu bar -> ........菜单栏
Location bar -> ....地址栏
Scroll bar -> .....滚动条
Status bar -> ......状态栏
Resizable -> 是否可以改变大小
发布成HTML格式,然后打开该文件,给它添加一段代码,则在显示页的HEAD中写
Flash加载外部文件 调用外部图片(加载到影片剪辑中)
调用外部图片(加载到影片剪辑中)
外部图片必须和正在编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.制作一个空的影片剪辑,拖到场景中,实例名是:mymc;
3.时间轴上第一帧上的AS:
调用按扭上的AS:
清除按扭上的AS:
Ctrl+Enter测试。
当然AS可以写在帧上。
as 控制按钮
如何在页面上加上悬浮的FLASH效果?
例如,在页面上,一群小金鱼到处游动:把下面的代码放到页面源代码里。调整里面LEFT、TOP的数值,即调整FLASH相对与页面左、上的距离。WIDTH、HEIGHT的值,为FLASH的宽和高。
怎么控制loadmovie进来的swf文件
1.播放、停止
将111.swf调用进mc aaa中
停止按钮上加aaa.stop();
播放按钮上加aaa.play();
2.要主场景也同时停止播放
停止按钮上加
当你常去的论坛上有个 Flash 广告,而你每次刷新页面的时候它都从头播放。会不会感觉很烦? 所以我们要改装一下这个Flash.给他植入记忆功能.继续播放动画
要实现的效果:
刷新或关闭页面的时候记住上次的播放头位置.
下一次打开页面动画接着上一次的位置继续播放.
(注:把此段代码放到动画的第一帧即可.)应用:效果可以看经典论坛的 Banner 广告.
实现代码如下(发布成AS1/AS2):
+展开
-ActionScript
var deng = SharedObject.getLocal('remember');
if (deng.data.pos != undefined) {
gotoAndPlay(deng.data.pos);
}
this.onEnterFrame = function () {
deng.data.pos = _currentframe;
};
deng.flush();
if (deng.data.pos != undefined) {
gotoAndPlay(deng.data.pos);
}
this.onEnterFrame = function () {
deng.data.pos = _currentframe;
};
deng.flush();
flash屏蔽掉链接上的小手-useHandCursor
当鼠标指针位于 myBtn1_btn 上方并单击该按钮时,不会显示手形光标。
+展开
-ActionScript
myBtn1_btn.useHandCursor = false;
myBtn1_btn.onRelease = buttonClick;
myBtn2_btn.onRelease = buttonClick;
function buttonClick() {
trace(this._name);
}
myBtn1_btn.onRelease = buttonClick;
myBtn2_btn.onRelease = buttonClick;
function buttonClick() {
trace(this._name);
}
让按钮失效
+展开
-ActionScript
stop();
my_bt.onPress=function(){ //名为my_bt动作,当按下bt1时my_bt动作失效,按下bt2时my_bt动作恢复
my_bt._x+=1;
}
bt1.onPress=function(){
my_bt.enabled=false ; //使名为my_bt的按钮失效
}
bt2.onPress=function(){
my_bt.enabled=true; //使名为my_bt的按钮恢复
}
my_bt.onPress=function(){ //名为my_bt动作,当按下bt1时my_bt动作失效,按下bt2时my_bt动作恢复
my_bt._x+=1;
}
bt1.onPress=function(){
my_bt.enabled=false ; //使名为my_bt的按钮失效
}
bt2.onPress=function(){
my_bt.enabled=true; //使名为my_bt的按钮恢复
}
在当前帧上暂定若干秒后在自动播放下一帧
在当前帧上暂定若干秒后在自动播放下一帧需要一个自动的过程,而不是通过按钮控制的。
+展开
-ActionScript
stop();
var zishu= setInterval(go, 5000);
function go() {
play();
clearInterval(zishu);
}
var zishu= setInterval(go, 5000);
function go() {
play();
clearInterval(zishu);
}
让mc成为按钮,flash鼠标滑过影片剪辑时是否显示手指形
首先,如何然MC成为按钮:
+展开
-ActionScript
mc01.onRelease=function(){
gotoAndStop(2);
}
gotoAndStop(2);
}
//让mc成为按钮,as控制。
useHandCursor(MovieClip.useHandCursor 属性)
public useHandCursor : Boolean
一个布尔值,指示当鼠标滑过影片剪辑时是否显示手指形(手形光标)。useHandCursor 属性的默认值是 true。如果 useHandCursor 设置为 true,则当鼠标滑过按钮影片剪辑时会显示用于按钮的手形光标。如果 useHandCursor 为 false,则将改用箭头指针。
可以随时更改 useHandCursor 属性;修改后的影片剪辑会立即使用新的光标行为。可以从原型对象中读出 useHandCursor 属性。
可用性:ActionScript 1.0;Flash Player 6
示例
下面的示例为名为 myMC1_mc 和 myMC2_mc 的两个影片剪辑设置 useHandCursor 属性。对于其中一个实例,该属性设置为 true;对于另一个实例,它设置为 false。请注意这两个实例如何仍能接收事件。
+展开
-ActionScript
myMC1_mc.onRelease = traceMC;
myMC2_mc.onRelease = traceMC;
myMC2_mc.useHandCursor = false;
function traceMC() {
trace("you clicked: "+this._name);
gotoAndPlay(2);
};
myMC2_mc.onRelease = traceMC;
myMC2_mc.useHandCursor = false;
function traceMC() {
trace("you clicked: "+this._name);
gotoAndPlay(2);
};
让某一区域的按钮失效
某一片区域有许多按钮,需要让这些按钮失效,当然可以将每个按钮的enabled设置为false,以下做法也许更好。
用一个全透明的mc(命名为blank),盖在最高层,然后加如下代码
+展开
-ActionScript
blank.onRelease = function(){
//nothing
}
blank.enabled = false;
//nothing
}
blank.enabled = false;
这样被盖住的区域内按钮就全失效了 blank被remove掉,按钮就恢复了
flash中fscommand几个参数的应用.
+展开
-ActionScript
fscommand("fullscreen", "false");//表示是否全屏,而参数arguments可以取两个值:true( 允许全屏)或者false(禁止全屏),系统默认值为false。
fscommand("allowscale", "false");//始终保持swf影片的大小显示。
fscommand("showmenu", "false");//屏蔽鼠标右键。
fscommand(quit)//关闭当前swf。
fscommand("exec","applicationname")
fscommand("allowscale", "false");//始终保持swf影片的大小显示。
fscommand("showmenu", "false");//屏蔽鼠标右键。
fscommand(quit)//关闭当前swf。
fscommand("exec","applicationname")
其作用是运用FLSH调用外部的应用程序。调用EXE文件最重要的一点,必须把你的SWF文件先转换成EXE,也就是FLASH的播放器。必须把你要调用的EXE文件放在同一目录的fscommand文件下。
开启一个外部可执行程序:扩展名.exe可以省略。
具体来说,若一个exe文件(假设为flash1.exe)和该swf文件本身在同一个目录下,则直接键入程序文件名即可。如:
+展开
-ActionScript
fscommand("exec","flash1")
否则,应写明路径。如打开IE浏览器窗口:
fscommand("exec","c:\\progra~1\\intern~1\\iexplore")
//注意DOS下对长文件(夹)名的处理形式。
否则,应写明路径。如打开IE浏览器窗口:
fscommand("exec","c:\\progra~1\\intern~1\\iexplore")
//注意DOS下对长文件(夹)名的处理形式。
下面两种情况也可以不写路径:
1.当可执行程序是在c:\windows目录下时,可以不写路径。如调用windows的计算器,下面三种写法均可:
+展开
-ActionScript
fscommand("exec","c:\\windows\\calc.exe")
fscommand("exec","c:\\windows\\calc")
fscommand("exec","calc")
fscommand("exec","c:\\windows\\calc")
fscommand("exec","calc")
2.调用DOS命令也可省略路径。如下例打开MS-DOS下的Edit编辑器:
+展开
-ActionScript
fscommand("exec","edit.com")
如果熟悉批处理文件写法,通过FSCommand->exec命令执行批处理文件可以一举多得。
flash调用外部exe文件
1.新建一名为fscommand的文件夹放置要调用的exe文件.
2.新建一个flash文件,建一按钮,写入as如下:
+展开
-ActionScript
on (release) {
fscommand("exec","fly.exe");
}
fscommand("exec","fly.exe");
}
3.把新建的swf转为exe,才可以调用.
解决Flash影片中的图片抖动锯齿
Flash 影片的默认质量是高,其实还可以更高[也更耗资源].
AS 控制方法:
+展开
-ActionScript
_quality = "best";
或者在发布向导中的HTML标签Quality项选择Best.这样图片就不抖了
as改变外部mc尺寸
1.新建一个mc,取名为:mc
时间轴代码:
+展开
-ActionScript
_root.createEmptyMovieClip("mc", 1);
mc.loadMovie("mc.swf");
onEnterFrame = function() {
if (mc.getBytesLoaded()>0 && mc.getBytesLoaded()>=mc.getBytesTotal()) {
mc._xscale = 50;
mc._yscale = 50;
}
};
mc.loadMovie("mc.swf");
onEnterFrame = function() {
if (mc.getBytesLoaded()>0 && mc.getBytesLoaded()>=mc.getBytesTotal()) {
mc._xscale = 50;
mc._yscale = 50;
}
};
调用远程swf的方法
安全沙盒冲突
解决跨域名访问
+展开
-ActionScript
System.security.allowDomain("127.0.0.1");
//===================================================
//===================================================
例如你要访问的文件为远程地址 http://www.stonemx.com/design/flashgbook/2/flashgbook.swf
+展开
-ActionScript
System.security.allowDomain("www.stonemx.com");
_root.loadMovie("http://www.stonemx.com/design/flashgbook/2/flashgbook.swf");
_root.loadMovie("http://www.stonemx.com/design/flashgbook/2/flashgbook.swf");
flash[swf]在网页里面背景透明
flash[swf]在网页里面背景透明
加入以下代码
+展开
-HTML
<param name="wmode" value="transparent">
flash[swf]flash按钮打开全屏窗口
这里举个最常见的例子——利用getURL调用javascript打开新窗口
方法如下:
将下面的代码加到Flash按钮上
+展开
-ActionScript
on (release)
{
getURL("javascript.:fullwin(\'main.htm\' , \'main\' , \'toolbar=no,width=100%,height=100%,left=0,top=0,status=no,scrollbars=no,resizable=no\')");
}
{
getURL("javascript.:fullwin(\'main.htm\' , \'main\' , \'toolbar=no,width=100%,height=100%,left=0,top=0,status=no,scrollbars=no,resizable=no\')");
}
具体参数设置如下:
URL -> 弹出新窗口的页面地址
Width -> 窗口宽度
Height -> 窗口高度
Name -> 窗口名
Tool bar -> 是否需要工具栏
Menu bar -> ........菜单栏
Location bar -> ....地址栏
Scroll bar -> .....滚动条
Status bar -> ......状态栏
Resizable -> 是否可以改变大小
发布成HTML格式,然后打开该文件,给它添加一段代码,则在显示页的HEAD中写
+展开
-HTML
<script language="JavaScript">
function openNewWindow(URLtoOpen, windowName, windowFeatures) { newWindow=window.open(URLtoOpen, windowName, windowFeatures); }
</script>
function openNewWindow(URLtoOpen, windowName, windowFeatures) { newWindow=window.open(URLtoOpen, windowName, windowFeatures); }
</script>
Flash加载外部文件 调用外部图片(加载到影片剪辑中)
调用外部图片(加载到影片剪辑中)
外部图片必须和正在编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.制作一个空的影片剪辑,拖到场景中,实例名是:mymc;
3.时间轴上第一帧上的AS:
+展开
-ActionScript
i=0;//定义一个变量i,并且赋初值为0;
调用按扭上的AS:
+展开
-ActionScript
on(release){//鼠标离开按扭后执行下面的代码;
i++;
if(i>9){
/*因为外面这有9张图,当变量大于9的时候,让变量为1,这样能够使加载的图片是连续的,即,每点一次按扭,
就换一张图,等到换到第9张图,再点按扭,则循环到第一张图(j1.jpg到j9.jpg,因为没有j0.jpg,
如果i=0,则会提示没有找到j0.jpg);*/
i=1;
}
loadMovie(("j"+i)+".jgp",mymc);//从j1.jpg开始加载图片到影片剪辑mymc中;
mymc._x=110;//以下设置加载图片的属性
mymc._y=35;
mymc._xscale=130;
mymc._yscale=130;
}
i++;
if(i>9){
/*因为外面这有9张图,当变量大于9的时候,让变量为1,这样能够使加载的图片是连续的,即,每点一次按扭,
就换一张图,等到换到第9张图,再点按扭,则循环到第一张图(j1.jpg到j9.jpg,因为没有j0.jpg,
如果i=0,则会提示没有找到j0.jpg);*/
i=1;
}
loadMovie(("j"+i)+".jgp",mymc);//从j1.jpg开始加载图片到影片剪辑mymc中;
mymc._x=110;//以下设置加载图片的属性
mymc._y=35;
mymc._xscale=130;
mymc._yscale=130;
}
清除按扭上的AS:
+展开
-ActionScript
on(release){
unloadMovie(mymc);//删除掉用loadMovie加载到影片剪辑的图片;
}
unloadMovie(mymc);//删除掉用loadMovie加载到影片剪辑的图片;
}
Ctrl+Enter测试。
当然AS可以写在帧上。
as 控制按钮
+展开
-ActionScript
btn1.onRelease=function(){
_parent.gotoAndStop("Menu1");
}
btn2.onRelease=function(){
_parent.gotoAndStop("Menu2");
}
btn3.onRelease=function(){
_parent.gotoAndStop("Menu3");
}
btn4.onRelease=function(){
_parent.gotoAndStop("Menu4");
}
btn5.onRelease=function(){
_parent.gotoAndStop("Menu5");
}
btn6.onRelease=function(){
getURL(mailto);
}
_parent.gotoAndStop("Menu1");
}
btn2.onRelease=function(){
_parent.gotoAndStop("Menu2");
}
btn3.onRelease=function(){
_parent.gotoAndStop("Menu3");
}
btn4.onRelease=function(){
_parent.gotoAndStop("Menu4");
}
btn5.onRelease=function(){
_parent.gotoAndStop("Menu5");
}
btn6.onRelease=function(){
getURL(mailto);
}
如何在页面上加上悬浮的FLASH效果?
例如,在页面上,一群小金鱼到处游动:把下面的代码放到页面源代码里。调整里面LEFT、TOP的数值,即调整FLASH相对与页面左、上的距离。WIDTH、HEIGHT的值,为FLASH的宽和高。
+展开
-ActionScript
<embed style="LEFT: 100px; POSITION: absolute; TOP: 0px;"
align=right src=http://imgfree.21cn.com/free/flash/17.swf
width=600 height=600 wmode="transparent"></embed>
align=right src=http://imgfree.21cn.com/free/flash/17.swf
width=600 height=600 wmode="transparent"></embed>
怎么控制loadmovie进来的swf文件
1.播放、停止
+展开
-ActionScript
aaa.loadmovie("111.swfl",0);
将111.swf调用进mc aaa中
停止按钮上加aaa.stop();
播放按钮上加aaa.play();
2.要主场景也同时停止播放
停止按钮上加
+展开
-ActionScript
stop();
aaa.stop() ;播放按钮上加
play() ;
aaa.play();控制主场景或所在的mc跳到第几帧
aaa.loadMovie("111.swf", 0);
this.onEnterFrame = function() {
a1 = aaa._totalframes;
a2 = aaa._currentframe;
if (a1 == a2) {
aaa.gotoAndPlay(100);
//aaa里面被调用的影片跳到该影片的第100桢
gotoAndPlay(100);
//场景也跳到场景里面内容的第100桢
}
};
aaa.stop() ;播放按钮上加
play() ;
aaa.play();控制主场景或所在的mc跳到第几帧
aaa.loadMovie("111.swf", 0);
this.onEnterFrame = function() {
a1 = aaa._totalframes;
a2 = aaa._currentframe;
if (a1 == a2) {
aaa.gotoAndPlay(100);
//aaa里面被调用的影片跳到该影片的第100桢
gotoAndPlay(100);
//场景也跳到场景里面内容的第100桢
}
};
加支付宝好友偷能量挖...