44 12
发新话题
打印

[研究] 引用yahoo天气预报源文件(28日更新)

wuwulong越来越厉害了,赞一个。

TOP

真的感谢chenlangeer的支持,其实这个实现的原理是和那个播放器差不多的。

TOP

请问这个对局入网的支持如何?我每次打开它(swf),它都是显示我所处省份的省会城市天气,能不能直接显示我所处的地级市呢?

TOP

那是你的IP地址通过百度只能找到你的省会城市,其实你可以改一下源文件,跳过找地名那一段,直接改成你现在所处的城市就行了。

TOP

谢谢呜呜龙的答复,最近用它只能搜到省会天气了,你刚发帖的时候还能搜地级市,什么原因呢?

TOP

这个和你获得的是动态ip地址有关,可能有时候获得的IP在百度搜索结果为你的省会城市。
我前面说过,你如果想一打开就显示你的地级城市,可以把源文件里根据IP地址搜地名的那一段去掉,然后把里面的相关地方改成你现在的城市就可以了。

TOP

支持,收藏了。/
我想"闪"得再快些.
http://longqifu.blog.163.com

TOP

是这样改的吗?假如我搜湖南省湘潭市!谢谢你!
            System.useCodepage = true;
            var tianqiurl="http://wuwulong.136.tofor.com/"
            var city:String;
            var weather;
            var riqi=new Array();
            var tianqi_tu=new Array();
            var tianqi_qi=new Array();
            var wendu_top=new Array();
            var wendu_low=new Array();
            var fengxiang=new Array();
            var fengli=new Array();
            weather = "<p align=\'center\'><br><br><font color=\'#ff0000\' size=\'14px\'>气象数据读取中,<br>请稍候...</font></p>";
            var mydi = new LoadVars();   
               mydi.load(tianqiurl+"zhaodi.asp");
            mydi.onData = function(s) {
            if (s!=undefined){
            city=找字符(找字符(s,"来自:"," "),"湖南","湘潭市");
            city=找字符(city,"自治区","市");city=找字符(city,"内蒙古","市");
            city=找字符(city,"新疆","市");city=找字符(city,"新疆","地区");
            city=找字符(city,"西藏","市");city=找字符(city,"西藏","地区");
            city=找字符(city,"宁夏","市");city=找字符(city,"广西","市");
            city=替换(city,"市","");city=替换(city,"特别行政区","");
            city=替换(city,"省","");city=替换(city,"中国","");
            refreshCity(city)}
            else{
               weather = "<p align=\'left\'><font color=\'#ff0000\'>网络不畅!</font></p>";
               }
            }
            function refreshCity(cityName)
            {
            System.useCodepage = false;
            weatherIcon_mc.loadMovie("");
            weather = "<p align=\'center\'><br><br><font color=\'#ff0000\' size=\'14px\'>气象数据读取中,<br>请稍候...</font></p>";
            var mytian = new LoadVars();
            mytian.city=escape(cityName);mytian.rd=random(8888);
            mytian.sendAndLoad(tianqiurl+"yahooqi.asp", mytian, "POST")
            System.useCodepage = true;
            mytian.onData = function(s) {
            if (s!=undefined){
            s=找字符(s,"today","穿衣指数");trace(s);
            riqi=我找(s,"<div class=\"tn\">","</div>");
            tianqi_tu=我找(s,"<embed src=\"","\" quality=");
            tianqi_qi=我找(s,"ft1\">","</span>");
            wendu_top=我找(s,"\"hitp\">","℃");
            wendu_low=我找(s,"\"lotp\">","℃");
            fengxiang=我找(s,"风向:","<br");
            fengli=我找(s,"风力:"," </div>");
            riqi1.text=riqi[0];riqi2.text=riqi[1];riqi3.text=riqi[2];
                        if (s.indexOf("N/A") != -1)
                        {
                            weather = "<p align=\'left\'><font color=\'#ff0000\'>抱歉,暂无“" + cityName + "”的天气信息,请尝试使用上一级城市名,如江西南康隶属于赣州地区。查询“赣州”即可</font></p>";
                        }
                        else
                        {
                            showqi(0)
                        } // end if
                    }
                    else
                    {
                        weather = "<p align=\'left\'><font color=\'#ff0000\'>网络不畅!</font></p>";
                    } // end if
                };
            } // End of the function
            function showqi(j)
            {
            weather = "<font color=\'#0000ff\' size=\'14px\'><b>" + city + "</b></font>("+riqi[j]+")<br />";
            weather = weather + ("<font color=\'#0099ff\' size=\'12px\'><b>" + tianqi_qi[j] + "</b></font><br />");
            weather = weather + ("<font color=\'#ff0000\'>" + wendu_top[j] + "℃</font>~" + "<font color=\'#0099cc\'>" + wendu_low[j] + "℃</font><br />");
            weather = weather + "风向:"+fengxiang[j]+"<br>风力:"+fengli[j];
            var myML:MovieClipLoader=new MovieClipLoader();
            var myL:Object=new Object()
            myML.addListener(myL);  
            myML.loadClip(tianqi_tu[j],weatherIcon_mc);   
               }
            function 替换(a,b,c)
            {
                var _l2 = b;
                var _l6 = _l2.length;
                  k=0
                  do{ var _l3 = a.indexOf(_l2, 0);if(_l3==-1){break;}
                    var _l1 = a.slice(0, _l3);
                    var _l5 = _l1.length;
                    var _l7 = a.slice(_l6 + _l5);
                    var _l4 = _l1 + c + _l7;
                  a=_l4;k=k+1
                  }while((_l3!=-1))
                  if(k==0){return(a);}else{
                    return(_l4);}
            } // End of the function
            function 找字符(a,b,c)
            {var l1=b.length;var z1=a.indexOf(b);var z2=a.indexOf(c,z1+l1);
            if(z1==-1||z2==-1){return(a)}else{return(a.slice(z1+l1,z2))}}
            function 我找(str0,str1,str2)
            {var _l3 = str1.length;var hunhe=new Array();var a=str0;var j=0
              do{var _l5=a.indexOf(str1, 0);if(_l5==-1){break;}
                var _l2 = a.indexOf(str1, 0) + _l3;
                var _l1 = a.indexOf(str2, _l2);
                hunhe[j] = a.slice(_l2, _l1);
               var _l0 = a.indexOf(hunhe[j],0)
               a=a.slice(_l2);j=j+1;}while(_l5!=-1);
               return(hunhe)
                }// End of the function
   图层 5
      帧 1
         查天气, (, 12 pts)
         (空), <riqi1>
         (空), <riqi2>
         (空), <riqi3>
   图层 4
      帧 1
         (空), (address)
         新闻按钮
            新闻按钮 的动作
               on (release)
               {
                   if (address == undefined || address == "" || address == "请输入要查询的城市")
                   {
                       address = "湘潭市";
                   }
                   else
                   {
                     city=address;
                       refreshCity(city);
                   } // end if
               }
         新闻按钮
            新闻按钮 的动作
               on (release)
               {
                   showqi(0);
               }
         新闻按钮
            新闻按钮 的动作
               on (release)
               {
                   showqi(1)
               }
         新闻按钮
            新闻按钮 的动作
               on (release)
               {
                   showqi(2)
               }
   图层 3
      帧 1
         空, <weatherIcon_mc>
   图层 2
      帧 1
         (空), (weather)

[ 本帖最后由 烟波浩渺 于 2007-3-28 19:57 编辑 ]

TOP

去掉下面的:
var mydi = new LoadVars();   
               mydi.load(tianqiurl+"zhaodi.asp");
            mydi.onData = function(s) {
            if (s!=undefined){
            city=找字符(找字符(s,"来自:"," "),"湖南","湘潭市");
            city=找字符(city,"自治区","市");city=找字符(city,"内蒙古","市");
            city=找字符(city,"新疆","市");city=找字符(city,"新疆","地区");
            city=找字符(city,"西藏","市");city=找字符(city,"西藏","地区");
            city=找字符(city,"宁夏","市");city=找字符(city,"广西","市");
            city=替换(city,"市","");city=替换(city,"特别行政区","");
            city=替换(city,"省","");city=替换(city,"中国","");
            refreshCity(city)}
            else{
               weather = "<p align=\'left\'><font color=\'#ff0000\'>网络不畅!</font></p>";
               }
            }
换成这样一句就可以了:refreshCity("湘潭")

TOP

谢谢了!

TOP

楼主能把教程发出来嘛???
让我们菜鸟也学习学习。。。
做出属于自己的FLASH。。。。

TOP

跨网站访问,不一定必须用到asp或php中转。当然这是最方便的。
1. 在swf的html嵌入javascript用xmlhttp也就是ajax,不过有也有跨域访问权限问题,不过这不是远程服务器的问题而是浏览器的安全设置问题
2. 跨网站访问,相当于跨域访问,在要访问的网站根目录加个策略文件,如果是自己做服务器这个方法很方便,别人的就不行了

TOP

:victory:

TOP

谢谢楼主,俺的天气预报做好了。

TOP

 44 12
发新话题