| 一、需求分析: 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();
 }
 };
 |