Flash CS4设计天气预报程序Word格式文档下载.docx
- 文档编号:19421934
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:31
- 大小:1.66MB
Flash CS4设计天气预报程序Word格式文档下载.docx
《Flash CS4设计天气预报程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Flash CS4设计天气预报程序Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。
图18-8命名数据表
(8)单击【确定】按钮后即可打开“weatherInfo”数据表,该表中默认存在“ID”字段,如图18-9所示。
图18-9打开数据表
(9)将光标放置在“ID”字段名称的下面的单元格中,然后输入新的字段名称“allInfo”,如图18-10所示。
图18-10创建新字段
(10)将光标放置在字段名称右侧的单元格中,在弹出的菜单中选择【文本】选项,即设置该字段中存储的数据为文本类型,如图18-11所示。
图18-11选择数据类型
(11)右击【weatherInfo】选项卡,在弹出的菜单中执行【数据表视图】命令,即可切换到数据表视图模式中,此时数据库就创建完成了,如图18-12所示。
图18-12数据表视图
18.1.2创建ASP页面
ASP是一种服务器端语言,它可以对文件和数据库进行操作。
本例将通过ASP页面实现获取网页中提供的天气预报信息、存储天气预报信息到数据库,以及为Flash提供信息源的功能。
(1)在电脑的【开始】菜单中,执行【所有程序】|【AdobeDreamweaverCS4】命令,打开DreamweaverCS4软件,该软件用于制作HTML、ASP、PHP等网页,如图18-13所示。
图18-13打开DreamweaverCS4
(2)单击该界面中【新建】列表的【ASPVBScript】选项,即可新建并打开一个ASP页面,如图18-14所示。
图18-14新建ASP页面
(3)选择文档中的所有代码并将其删除,然后输入以下代码。
该段代码通过创建XMLHTTP对象来获取指定网页中的源代码。
代码如下所示:
<
%@LANGUAGE="
VBSCRIPT"
CODEPAGE="
936"
%>
%
Response.Buffer=true
'
设置网页启动缓存
DimmyConnection,TheURL
声明变量
TheURL="
要获取源代码的网页URL
SetMyConnection=Server.CreateObject("
Microsoft.XMLHTTP"
)
创建XMLHTTP对象
MyConnection.Open"
GET"
TheURL,False
通过GET方法打开指定网页
MyConnection.Send
TheData=MyConnection.responseText
获取网页源代码中的所有文本信息
Response.ContentType=MyConnection.getResponseHeader("
Content-Type"
获取网页的内容格式
Response.Write(TheData)
输出网页中的源代码
SetMyConnection=Nothing
关闭XMLHTTP对象,以释放资源
新建文本文档,将上面的代码复制到文档中,将其保存为后缀名为“.asp”的文件也可。
(4)输入完代码后,按Ctrl+S组合键,在弹出的【另存为】对话框中选择网页要保存的路径和名称(本例将网页保存在“weatherReport”文件夹内并命名为“proxy”),如图18-15所示。
图18-15保存ASP页面
对于没有安装Dreamweaver软件的用户来说,可以将代码输入到记事本中,然后再转换为asp格式的网页。
(5)使用相同的方法,在“weatherReport”文件夹内新建“process”ASP页面。
然后,在代码中通过创建Connection对象连接数据库;
创建Recordset对象将获取的信息存储到数据表中。
allInfo=Request("
info"
Setconn=Server.CreateObject("
Adodb.Connection"
创建Connection对象
tmpPD="
Provider=Microsoft.ACE.OLEDB.12.0"
设置数据库驱动
tmpDS="
DataSource="
&
Server.MapPath("
weather.accdb"
指定数据库的路径
tmpSTR=tmpPD&
"
;
tmpDS
构造打开数据库的字符串
conn.OpentmpSTR
利用Connection对象的Open方法打开数据库
Setrs=Server.CreateObject("
Adodb.Recordset"
创建Recordset对象
rs.open"
weatherInfo"
conn,1,3
打开从数据库中读出的记录集
rs("
allInfo"
)=allInfo
将新的天气信息写入数据库
rs.update
更新数据库
rs.Close
利用Connection对象的Close方法关闭连接
Setrs=Nothing
Setconn=Nothing
将Connection对象从内存中删除,以释放资源
(6)在“weatherReport”文件夹内新建“getInfo”ASP页面。
创建Recordset对象输出“allInfo”字段中存储的数据。
response.writers("
输出allInfo字段中的数据
18.2服务器端的功能设计和实现
服务器端程序用于从获取的网页源代码中提取天气预报信息,并将其显示在可视化的界面中。
而为了方便简化操作,本例利用ActionScript语言定时从网页中获取天气预报信息,以快速为用户提供天气预报信息。
18.2.1获取天气预报信息界面
为了方便获取天气预报信息,可以让服务器端的Flash每到晚上8:
00自动从“中国气象局”网站获取新的数据,并更新到本地服务器中的数据库,从而可以大大减少劳动力。
获取天气预报信息的界面如图18-16所示。
图18-16自动获取天气预报信息界面
设计过程:
(1)在FlashCS4中,执行【文件】|【新建】命令,在打开的【新建文档】对话框中选择文档【类型】为“Flash文件(AdobeAIR)”,如图18-17所示。
图18-17新建Flash文件
(2)在【文档属性】面板中,设置文档的【尺寸】为600×
340像素。
然后,在舞台中绘制一个绿色的渐变背景,如图18-18所示。
图18-18绘制背景
(3)将导入的“阴影”图像拖入到舞台中,并在上面绘制两个不同颜色和大小的矩形,以构成一个带边框的显示区域,然后将其转换为影片剪辑,如图18-19所示。
图18-19绘制显示区域
(4)新建图层,在显示区域的顶部输入标题文字,并在【属性】面板中设置其字符【系列】为“迷你简综艺”;
【大小】为“37点”,如图18-20所示。
图18-20输入标题文字
(5)打开【组件】面板,将“GataGrid”组件拖入到标题文字的下面,并缩放其至适当的尺寸。
然后,在【属性】面板中设置其【实例名称】为“myDataGrid”,该组件用来显示天气预报信息,如图18-21所示。
图18-21拖入“DataGrid”组件
(6)在显示区域的左下角插入一个动态文本,并调整其大小。
然后,在【属性】面板中设置其【实例名称】为“mess”,该动态文本用来显示加载天气预报信息的状态,如图18-22所示。
图18-22插入动态文本
(7)在该动态文本的右侧再插入一个动态文本,调整其大小并设置【实例名称】为“mess”;
字符【系列】为“迷你简综艺”;
【大小】为“20点”,如图18-22所示。
图18-23插入动态文本
(8)此时,获取天气预报信息的界面就制作完成了,按Ctrl+Enter组合键可预览效果。
18.2.2获取天气预报信息程序
获取天气预报信息程序通过调用ASP页面,可以从指定网页中的获取源代码。
然后,利用ActionScript语言将源代码中的天气预报信息分离出来,最后再通过调用ASP页面将天气预报信息存储到数据库中。
获取天气预报信息程序如图18-24所法。
图18-24获取天气预报信息
制作过程:
(1)在“weatherReport”文件夹内新建名称为“countDown”的ActionScript文件。
然后,在该文件中创建pack包、“countDown”自定义类和主函数。
package{
publicclasscountDown{
//countDown自定义类
publicvarnow_millisecondsFrom1970:
Number;
publicvarnow_secondsFrom1970:
publicvarto_millisecondsFrom1970:
publicvarto_secondsFrom1970:
publicvarremainSeconds_Total:
publicvarremainDays:
String;
publicvarremainHours:
publicvarremainMinutes:
publicvarremainSeconds:
publicvaroutputMess:
//声明变量
publicfunctioncountDown(fromYear,fromMonth,fromDay,fromHour,fromMinute,fromSecond,toYear,toMonth,toDay,toHour,toMinute,toSecond){
//countDown主函数
}
}
}
(2)在countDown()函数体中,通过创建Date对象初始化起始时间和目标时间,并获取自1970年1月1日午夜(通用时间)以来的毫秒数,然后计算它们之间相距的秒数。
varfromDate:
Date=newDate(fromYear,fromMonth,fromDay,fromHour,fromMinute,fromSecond);
//初始化起始时间
now_millisecondsFrom1970=fromDate.getTime();
//获取起始时间自1970年1月1日午夜(通用时间)以来的毫秒数
now_secondsFrom1970=int(now_millisecondsFrom1970/1000);
//将毫秒数转换为秒数
vartoDate:
Date=newDate(toYear,toMonth,toDay,toHour,toMinute,toSecond);
//初始化目标时间
to_millisecondsFrom1970=toDate.getTime();
to_secondsFrom1970=int(to_millisecondsFrom1970/1000);
//获取目标时间自1970年1月1日午夜(通用时间)以来的秒数
remainSeconds_Total=to_secondsFrom1970-now_secondsFrom1970;
//计算起始时间与目标时间相距的秒数
(3)通过If语句判断目标时间是否落后于起始时间。
如果是,则自动将起始时间延后到第二天。
if(toHour<
fromDate.getHours()){
//如果目标时间的小时数落后于起始时间的小时数
toDay+=1;
//时间延后到第二天
if(toHour==fromDate.getHours()&
toMinute<
fromDate.getMinutes()){
//如果目标时间的分钟数落后于起始时间的分钟数
toMinute==fromDate.getMinutes()&
toSecond<
fromDate.getSeconds()){
//如果目标时间的秒数落后于起始时间的秒数
(4)计算起始时间和目标时间之间相距的天数、小时数、分钟数和秒数,并将它们存储到outputMess变量中。
vartmpRemainDays:
tmpRemainDays=int(int(remainSeconds_Total/3600)/24);
//将相距的秒数转换为天数
remainDays=String(tmpRemainDays);
//将天数转换为字符串值
vartmpRemainHours:
tmpRemainHours=int((remainSeconds_Total-tmpRemainDays*24*3600)/3600);
//计算剩余的小时数
if(tmpRemainHours<
10){
//如果小时数小于10
remainHours="
0"
+tmpRemainHours;
//则在小时数前面加上“0”字符串
}else{
remainHours=String(tmpRemainHours);
//将小时数转换为转换字符串值
vartmpRemainMinutes:
tmpRemainMinutes=int((remainSeconds_Total-tmpRemainDays*24*3600-tmpRemainHours*3600)/60);
//计算剩余的分钟数
if(tmpRemainMinutes<
remainMinutes="
+tmpRemainMinutes;
remainMinutes=String(tmpRemainMinutes);
vartmpRemainSeconds:
tmpRemainSeconds=int(remainSeconds_Total%60);
//计算剩余的秒数
if(tmpRemainSeconds<
remainSeconds="
+tmpRemainSeconds;
remainSeconds=String(tmpRemainSeconds);
outputMess=remainHours+"
:
+remainMinutes+"
+remainSeconds;
//将剩余的小时数、分钟数和秒数存储到outputMess变量中
(5)在“weatherReport”文件夹内新建名称为“weatherInfo”的ActionScript文件。
然后,在该文件中创建pack包、“weatherInfo”自定义类和主函数。
//导入文件运行所需的类
importflash.display.*;
import.*;
importflash.events.*;
importflash.errors.*;
importflash.system.*;
importflash.text.*;
importflash.utils.*;
importfl.controls.DataGrid;
//导入DataGrid组件
importfl.controls.dataGridClasses.DataGridColumn;
//导入DataGridColumn类
importfl.managers.StyleManager;
importfl.data.DataProvider;
//导入DataProvider类
publicclassweatherInfoextendsSprite{
privatevarIP:
privatevariisPath:
privatevarproxyPath:
privatevarprocessPath:
//定义ASP文件路径
privatevaraspRequest:
URLRequest;
privatevaraspLoader:
URLLoader;
privatevartmpString:
//定义URLRequest和URLLoader对象
privatevarmainArray:
Array;
privatevartmpArray:
privatevarstrToSend:
privatevarCITY:
privatevarDATE:
privatevarWEAT:
privatevarTEMP:
privatevarWIND:
privatevarULTR:
privatevarAIR:
//定义天气预报参数
privatevartmpOutputMess:
privatevartmpArrayForCountDown:
privatevarcountDownInterval:
uint;
privatevargetInfoInterval:
privatevarstartCountInterval:
//定义倒计时
privatevartryGetInfoTimes:
privatevartryWriteInfoTimes:
//定义尝试调用次数
publicfunctionweatherInfo(){
init();
//初始化设置
startLoad();
//获取天气预报信息
startInterval();
(6)创建init()函数,该函数用来初始化天气预报程序中的设置,包括编码、服务器IP、程序位置等。
privatefunctioninit(){
System.useCodePage=true;
//设置编码,使Flash和操作系统使用的语言保持一致
IP="
127.0.0.1"
//定义服务器IP
iisPath="
http:
//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flash CS4 设计天气预报程序 设计 天气预报 程序