在Flash中调用Date对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Flash中调用Date对象
作者:郑源源
来源:《中小学信息技术教育》2003年第12期
我们在登录Internet浏览网站时,经常会看到一些主页的广告标题栏下显示时间问候语,它们可以根据本地运行的电脑时间予以实时反馈,这些都是运用asp或jsp语言来制作的。
在Flash中,不需制作任何组件,而是利用强大的ActionScript控件功能,在动态文本框中调用Date对象来获取正在运行中的操作系统的时间和日期,通过调用动作gotoAndPlay使之循环执行Date对象,不断地刷新时间,同样可以实现这一效果。
双击打开Flash的主界面,新建一个文件,设定影片大小为128×128像素。
选择文本工具(图1),打开Text Optionsn属性面板,在面板的下拉列表中选择DynamicText(动态文本框),在画板中绘制一个无边的动态文本框。
为了让Flash能够识别这一文本框,必须为其赋予一个变量名,如:dateTextField1,把该变量名填入Text Options的变量栏里,作为文本框的标识(图2)。
在图层1的第一关键帧里单击右键,从弹出的快捷菜单里选择Actions命令,打开Fra-me Actions面板,单击它的右上角,选择“专家模式”,这时就可以在动作编辑窗口中输入如下脚本:
myDate=newDate();//创建新的日期对象
dateTextField1=(mydate.getFullYear()+"年"+(mydate.getMonth()+1)+"月"+mydate.getDate()+"日" );
//根据本地机时间获取当前年、月、日,然后传递到动态文本框中输出
按同样的步骤新建图层2,在第一帧里绘制一个动态文本框,定位在dateTextField1的下方,命名为dateTextField2,在帧动作中输入如下脚本:
myDate=newDate();//创建新的日期对象
dateTextField2=mydate.getHours()+":"+mydate.get
Minutes()+":"+mydate.getSeconds();
//根据本地机时间获取当前小时、分钟、秒,然后在动态文本框中输出
需要注意的是,读取getHours()命令时,Flash MX以前的版本会出现把系统时间23默认为0的现象,针对这种现象我们可以把上面的脚本做一些修改:
dateTextField2=mydate.getHours()-1+":"+mydate. get
Minutes()+":"+mydate.getSeconds();
新建图层3,在第一帧绘制一个动态文本框,同样定位在dateTextField2的下方,命名为dateText-Field3,在帧动作中输入如下脚本:
myDate=newDate();//创建新的日期对象
myDay=myDate.getDay();
myHour=myDate.getHours();//分别把星期几、小时赋值给变量myDay、myHour中
myDay="日";
} else if ( myDay < 2 ) {
myDay="一";
} else if ( myDay < 3 ) {
myDay="二";
} else if ( myDay < 4 ) {
myDay="三";
} else if ( myDay < 5 ) {
myDay="四";
} else if ( myDay < 6 ) {
myDay="五";
} else {
myDay="六";
}
//判断当变量为星期几时,返还相对应的大写字符,改变日期的输入格式 if ( myHour
myHour="凌晨好! ";
} else if ( myHour
myHour="上午好! ";
} else if ( myHour
myHour="中午好! ";
myHour="下午好! ";
} else if ( myHour
myHour="晚上好! ";
} else if ( myHour
myHour="晚安! ";
}
//判断当变量小于或等于什么时间,则反馈相对应的问候语
dateTextField3="星期"add myDay+" "+myHour;
//把字符“星期”及问候语与获得的日期数连接,然后在动态文本框中输出最后,分别在三个图层中插入第二关键帧,在Actions命令中添加goto动作: gotoAndPlay(1);//当程序运行到这里时,循环跳转执行第一帧现在,按Ctrl+Enter运行程序,看看执行的结果如何吧!。