分享
 
 
 

FLASH+JS做的全屏效果及AS集锦

王朝html/css/js·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

一、需求分析:

1:全屏页面分辨率需为 1024*768 如果低于此分辨率,画面精细的效果得不到体现。所以应该限制此分辩率以下的操作系统访问此界面。

2:打开的全屏窗口应该右上角有最小化、关闭按扭。

3:每个载入的窗口应该可以移动、关闭、最小化。

4:桌面上的图标可以拖动,双击。

5:屏幕底部有一个任务栏,当鼠标移至屏幕底部,任务栏从底部弹出。可以用一个按扭使其退回屏幕底部。

二、技术要点:

Java Script:

Screen 对象 (object):

该对象具有以下属性(Properties):

availHeight [有效高度], (有效高度=高度-任务栏高度)

availWidth [有效宽度],

bufferDepth [缓冲区大小],

colorDepth[颜色深度],

height [高度],

width [宽度],

updateInterval [更新间隔],

Window 对象 (object):

该对象具有以下属性(Properties):

clientInformation[客户端信息], closed [已关闭],

defaultStatus[默认状态],

dialogArguments [会话框返回数组],

dialogHeight [会话框高度], dialogLeft [会话框距屏幕左],

dialogTop[会话框距屏幕顶], dialogWidth[会话框宽度],

(以上5 个属性只适用于己于人showModalDialog() 创建的形式会话框)

document[文档],

event[事件],

history[历史],

length*[长度],

location[位置],

name[名称],

navigator[浏览器],

offscreenBuffering [关闭屏幕缓冲 Y/N ],

opener [script 开窗口都有opener 指向开这个的窗口 你自己开的浏览器就是空的

window.close 根据这个判断的是否提示]

parent*,[父窗口]

returnValue[返回值],

screen[屏幕],

self[自身],

status[状态],

top* [是否顶窗口]

*An asterisk indicates properties not applicable to modal dialogs.

带*号的属性不可用于 modal dialogs (由 showModalDialog() 创建的形式会话框).

Collections (集合)

frames* [框架]

方法(Methods):

alert[警告],

blur[最小化],

clearInterval [取消间隔],

clearTimeout[清除超时设置],

close[关闭],

confirm [确定] (object.confirm([message]) 是否确定?此函数将返回一个逻辑值 ),

execScript[执行代码],

focus[聚焦],

moveBy[相对移动],

moveTo[移动到],

navigate[导航 =window.location.href 本地URL ],

open* [打开],

prompt [提示],

resizeBy [相对缩放],

resizeTo [缩放到],

scroll[卷动],

scrollBy[相对卷动],

scrollTo[卷动到],

setInterval[设置间隔],

setTimeout[设置超时],

showHelp[显示帮助],

showModalDialog* [显示形式会话框]

*An asterisk indicates properties not applicable to modal dialogs.

带*号的属性不可用于 modal dialogs (由 showModalDialog() 创建的形式会话框).

事件(Events):

onbeforeunload[关闭前],

onblur[最小化],

onerror[错误],

onfocus[得到焦点],

onhelp[帮助],

onload[载入],

onresize[缩放],

onscroll[卷动],

onunload [关闭]

flash Action Script:

on (press [按], release [释放], releaseOutside [外部释放],

rollOver [滑过] , rollOut [滑离], dragOver [拖过], dragOut [拖离],

keyPress "" [按键])

GetUrl [转到连接] ("javascript :self.close()");

StratDrag("MovieClip"); [开始拖曳]

StopDrag("MovieClip"); [停止拖曳]

loadMovie("*.swf", "MovieClip"); [加载影片到MovieClip]

LoadmovieNum ("*.swf",n); [加载影片到第n层]

UnLoadmovie("*.swf"); [卸载影片]

play()[播放]; stop()[停止];

pc_today=new Date();[新建日期对象]

pc_today.getHours();[时]

pc_today.getMinutes();[分]

pc_today.getTime();[秒]

.getBytesLoaded();[已载入字节数]

.getBytesTotal();[需载入的字节总数]

_root.getBytesTotal 表示当前SWF文件的字节数.

on(release){

getURL("javascript :self.close()"); // [转到连接]

}

执行JS代码,关闭当前窗口,同样的

getURL("javascript :self.blur()");

可以使当前窗口最小化.

三、程序代码

1,控制在1024*768 分辨率以上可以打开全屏的 JS代码。

将此代码放入 <Body></Body> 区。

<script language="JavaScript" type="text/JavaScript">

<!--

function cc_openBrWindow(theURL,winName,features)

{ //v2.0

if(screen.width>=1024 && screen.height>=768)

{

window.open(theURL,winName,features);

}

else

{

alert("请将分辨率调至 1024 * 768 以上获得最佳显示效果.^_^!")

}

}

//-->

</script>

<a href="#"><IMG SRC="image/index_06.gif" ALT="Enter The Flash SITE! Best View Mode 1024*768*24 bit." WIDTH=209 HEIGHT=53 border="0" onClick="cc_openBrWindow(''flash/index.html'',''full'',''fullscreen=yes'')"></a>

2,Flash 中测试mp3 载入百分比的 AS:

说明:主场景中有一名为loadmp3 的 MovieClip .用于载入 mp3 转成的SWF 文件,也可直接载入mp3.

做一个 100 帧的 loading MovieClip 名为loading_mv .

做一个两帧的无图象的MovieClip 名为loading_mv_test .

第一帧代码如下:

mp3loaded = _root.loadmp3.getBytesLoaded();

mp3total = _root.loadmp3.getBytesTotal();

mp3percent = 0;

if (mp3total>1000 && mp3loaded>10) {

//当主场景中的 loadmp3 没有载入影片 mp3loaded的值为1 ,而不为0 ;

//因为有一个字节来表示这个 MovieClip

mp3percent = int (mp3loaded/mp3total*100);

_parent.gotoAndstop(mp3percent);

} else {

_parent.gotoAndstop(1);

}

pctoday = new Date();

pctime = pctoday.getHours() add ":" add pctoday.getMinutes() add ":" add pctoday.getSeconds();

//在场景中建立一个动态文本对象,变量名为pctime, 就可以实时显示系统时间了。

第二帧代码如下:

gotoandplay(1);

3,桌面图标的主要代码:

on (press) {

startDrag("");

}

on (release) {

stopDrag();

frame = time._currentframe;

if (settime == 0) {

//settime ==0 表示还没有开始计时。settime ==1 表示已经开始计时。

time.gotoandplay(1);

settime = 1;

}

//开使记时,设置记时位 settime .

if (settime == 1 && frame<=6) {

//开始计时的6帧以内,(0.5S) 再次释放鼠标。

loadMovie("000.jpg", "_root.picback.bak");

//也可以换成其他动作。

} else {

settime = 0; //计时位复位。

}

}

//time 为一个二十帧的 MovieClip,

//在二十帧的as 为 stop();

四、原文件

点击浏览该文件

********************************

自己日常收集的和自己做的,给大家分享!

部分没有自己考究过,如果有错,请指出!

设置首页代码:

on (release) {

geturl("javascript :document.body.style.behavior=\"url(#default#homepage)\";document.body.sethomepage(\"http://www.flash8.net

")", "_self");

}

加为收藏代码:

on (release) {

geturl("javascript :window.external.addfavorite(\"http://www.flash8.net\")", "_self");

}

判断输入是否为数字的函数:

on(release){

if(Number(pass)==NaN){//判断输入是否为数字

pass="";

}

检查E-MAIL的函数:

function checkemail(email) {

var str = new String(email);

var arr_email = str.split("@");

if ((arr_email.length != 2) || (arr_email[1].indexOf(".")<1)) {

return (false);

} else {

return (true);

}

}

延时函数:

function showTime(second, option) {

//延时函数

this.createEmptyMovieClip("t_mc", 9999);

t = getTimer();

f = false;

if ((getTimer()-t)>(second*1000)) {

option();

}

}

function go() {

//加入效果

jpg2._y = jpg2._y+77;

jpg2._alpha = jpg2._alpha-15;

}

fscommand("fullscreen", "true");

createEmptyMovieClip("jpg1", 1);

createEmptyMovieClip("jpg2", 2);

jpg1.loadMovie("1.jpg");

jpg2.loadMovie("2.jpg");

i = 0;

while (i<=100) {

showTime(0.1, go);

i = i+20;

}

FLASH中的保留小数的函

int(你的数*10)/10;

这样是保留一位

乘上100就是两位。以此类推

FLASH脚本实现关机

flash5:

fscommand ("exec","rundll"+chr(9)+"user.exe,exitwindows");

鼠标双击问题!

lsn_DbClick = new Object();

lsn_key = new Object();

lsn_DbClick.onMouseDown = function() {

clickTime = getTimer();

if (clickTime-lastClickTime<=300) {

trace("双击了鼠标");

}

lastClickTime = clickTime;

};

Mouse.addListener(lsn_DbClick);

time = getTimer()-down_time;

if (time<300) {

//双击后的代码部分

}

down_time = getTimer();

怎样在从另一个swf中获取变量

loadMovieNum("vars.swf", 1["POST"]);

_root.onEnterFrame = function() {

trace(_level1.myvab);

};

//当加载完毕后,输出就有值了...

鼠标右键及滚轮的代码

if Key.isDown(2){},(左键的代码是1)

左键:Key.isToggled(1)

右键:Key.isToggled(2)

滚轮:Key.isToggled(4)

滚轮1:Key.isToggled(4) PC机上用

滚轮2:Key.isToggled(3) MAC机上用

未知:Key.isToggled(3)

this.onEnterFrame = function() {

if (Key.isDown(2)){

trace("asdfjsdjkf");

}

}

实现TAB功能

获得焦点

使用Selection.setfocus()函数

举个例子:

例如你在主影片中有N个文本框,变量分别为text1,text2.....你想使影片一播放就把焦点落到第一个

文本框你就在第一FRAME 加AS如下:

Selection.setfocus("_root.text1");

我们可以举一反三

实现TAB功能 二

把这个N个文本框做组成一个数组

numarray=new array("_root.text1","_root.text2",....................."_root.textn");

首先获得鼠标焦点

x=Selection.getfocus();/* x 获得鼠标焦点的一个字符串

for(i=0;i<=n;i++)

{

if(numarray[i]==x){

num=i; /*获得当前焦点在数组中的位置

}

然后编写TAB键功能

on (keyPress "<TAB>") {

if (num==n){num=0;}

else{num++;}

Selection.setfocus(numarray[num]);

}

按钮能像window那样用Tab键来转换选择

用button.onKillFoucus

*两点间画直线

*画螺旋线

*画正方形、圆、椭圆

*抛物线

*正弦、余弦线

使用方法:加到帧中就可

// 画直线

// / x1, y1: 起点坐标

// x2, y2: 终点坐标

// k是层次

Movieclip.prototype.drawline = function(x1, y1, x2, y2, k) {

this.linestyle(1);

this.moveTo(x1, y1);

this.lineTo(x2, y2);

};

// 从(0,0)到(100,100)画一条线

_root.createEmptyMovieClip("mc", 10);

mc.drawline(0, 0, 100, 100);

// 画螺旋线

// w、h为宽和高

// f控制线的长短,用弧度表示

Movieclip.prototype.drawhelix = function(w, h, f) {

for (var i = 0; i<f; i += 0.05) {

this.lineTo(x=Math.sin(i)*i*w, y=Math.cos(i)*i*h);

this.linestyle(1);

}

};

// 以(100,100)为中心画螺旋线

_root.createEmptyMovieClip("luo", 1);

with (luo) {

drawhelix(5, 5, 13);

_x += 100;

_y += 100;

}

,; // 多功能函数,可画圆,椭圆,正多边形等

// n为边数

Movieclip.prototype.drawmany = function(w, h, n) {

f = 2*Math.PI;

for (var i = 0; i<=f/n*(n+1); i += f/n) {

this.lineTo(x=Math.sin(i)*w, y=Math.cos(i)*h);

this.linestyle(1);

}

};

// 画一正五边形

_root.createEmptyMovieClip("duobian", 2);

with (duobian) {

drawmany(50, 50, 5);

_x += 250;

_y += 100;

// 5为多边形的边数,6.3为2pai

}

// 画一椭圆

_root.createEmptyMovieClip("tuo", 3);

with (tuo) {

drawmany(25, 50, 100);

_x += 400;

_y += 100;

}

// 圆

_root.createEmptyMovieClip("yuan", 4);

with (yuan) {

drawmany(50, 50, 100);

_x += 400;

_y += 300;

}

// 抛物线

Movieclip.prototype.drawparabola = function(l, r, k) {

for (var i = -l; i<=r; i += 1) {

this.lineTo(x=i, y=k*i*i);

this.linestyle(1);

}

};

// 调用

_root.createEmptyMovieClip("parabola", 100);

with (parabola) {

drawparabola(50, 50, 0.05);

_x += 200;

_y += 200;

// 顶点坐标

}

// 正弦线,余弦类似

Movieclip.prototype.drawsin = function(n, k) {

for (var i = 0; i<=90*n; i += 1) {

this.lineTo(x=i, y=k*Math.sin(i*Math.PI/180));

this.linestyle(1);

}

};

_root.createEmptyMovieClip("sin", 101);

with (sin) {

drawsin(4, 50);

_x += 200;

_y += 200;

// 顶点坐标

}

Movieclip.prototype.drawwave = function(w, h) {

for (var i = 0; i<=6.3; i += 0.01) {

this.lineTo(x=w/Math.cos(i), y=h*Math.sin(i)/Math.cos(i));

this.linestyle(1);

}

};

_root.createEmptyMovieClip("wave", 105);

with (wave) {

drawwave(100, 100);

_x += 200;

_y += 200;

// 顶点坐标

}

一个动态文本设置alpha函数。

function setAlpha(obj,alpha){

var rgb="0x"+(255*(100-alpha)/100).toString(16);

rgb=rgb<<16|rgb<<8|rgb;

obj.backgroundColor|=rgb;

obj.borderColor|=rgb;

obj.textColor|=rgb; }

一个遍历level0中所有MC的instance name的函数。(可以修改一下用在其他范畴)

function readAllMC(){

this.MCitem ;

for(what in _level0){

if(typeof(_level0[what])=="movieclip"){

this.MCitem[what] = _level0[what];

}

}

}

设置MovieClip颜色:

MovieClip.prototype.setColor = function(c_color)

{

var mycolor = new Color(this);

mycolor.setRGB(c_color);

};

//调用:

yourMovieClip.setColor(0xff0000);

怎样设as,拒绝影片被人用loadMovie导入

以下as一定要设在最上层桢动作第一行有效

_root._name = "nn";

this.onEnterFrame = function() {

if (this._name != "nn" || _root.getDepth() != -16384) {

this.unloadMovie();

}

};

来源: 闪吧

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有