Internet Explorer 8测式版出来了

三月 6th, 2008

IE8终于出来了!完装后重启,IE7和IE8模式可以并存.
官方地址

http://www.microsoft.com/windows/products/winfamily/ie/ie8/getitnow.mspx

做了简单测试.
新问题
图片标签没有设定长宽的情况下,设定float:left;图片会消失。
对网站文本进行选取,出现文字不可见。
html标签在不设高度情况,如果汉字行高设为奇数,会使外html标签增高一像素。
不支list-style-image;奇怪了。

改进
从IE7开始大部份标签开始支持伪类:hover,现在IE8开始支持伪类:focus;(复选框不支持);

继续测试中…..

IE中z-index层叠失效

三月 3rd, 2008

最近在制作HTML页面,很多两列的地方需要一侧因定宽度,另一侧自适应宽度.当需要一个下拉菜单效果时,无论把z-index的值设为多高,菜单的DIV始终不在页面最顶层.
HTML


<div class="a">
a <div class="menu">sub a</div>
</div>
<div class="b">
b
</div>


CSS


.a {
position:relative;
background:#f00;
}
.menu{
position:absolute;
background:#0ff;
height:50px;
z-index:99;
}
.b {
position:relative;
background:#ff0;
}


以上是页面代码,menu的z-index已设为99,但在IE6,IE7中DIV[menu]始终在div的下面.只能通加设置div[a]的z-index的值来提升级div[menu]层叠高度,但在火狐中无需设置.可以看出IE对层叠顺序的继承性比火孤要严格的多.但本人觉火孤的方式接近设计者的意图.虽然对IE和火狐对CSS不同解析深恶痛绝,也只能感到无奈.

用Flash AS3正则表达式实现百度的MP3搜索

三月 2nd, 2008

利用flash的URLRequest向百度发送关健字,再利用正则表达式提取mp3结果列表.再对结果列表再次请求,获取mp3的真实地址.
下面是具体的类



package {
    import flash.display.Sprite;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.events.ProgressEvent;
    import flash.net.URLVariables;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.xml.*;
    import flash.events.IOErrorEvent;

    public class Mp3Search extends MovieClip {
        private var xmlTextField:TextField = new TextField();
        //dansion.com dansion@163.com,;
        private var loader:URLLoader;
        private var sub:Number;
        public var Mp3List:Array;

        public function Mp3Search() {
            Mp3List=new Array();
            Mp3_search.trackAsMenu=true;
            Mp3_search.addEventListener(MouseEvent.CLICK,search);
        }
        private function search(event:Event):void {
            var variables:URLVariables=new URLVariables("f=ms&tn=baidump3&ct=134217728&lf=&rn=&lm=0");
            variables.word=input.text;
            var request:URLRequest = new URLRequest();
            request.url="http://mp3.baidu.com/m";
            request.data=variables;

            loader = new URLLoader();

            try {
                loader.load(request);
            } catch (error:SecurityError) {
                trace("A SecurityError has occurred.");
            }

            loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
            loader.addEventListener(ProgressEvent.PROGRESS,loaderProgress);

            trace("btn is donw: "+input.text);
        }
        private function loaderCompleteHandler(event:Event):void {
            progress_txt.text="加载完成";
            //var mp3Exp:RegExp=/http://([w-]+.)+[w-]+([w- ./?$,[]%&;:,+=u4e00-u9fa5]*)?216/g;
            //var mp3Exp:RegExp=/http://[^box][0-9]([w-]+.)+[w-]+([w- ./?$,[]%&;:,+=u4e00-u9fa5]*)?216/g;
            var mp3Exp:RegExp=/http://220.181.38.82([w- ./?$,[]%&;:,+=u4e00-u9fa5]*)?216/g;
            var mp3_array:Array=new Array();
            mp3_array=loader.data.match(mp3Exp);
            //trace(loader.data.match(mp3Exp));
            /*for (var i=0; i<mp3_array.length; i++) {
                //trace("输出:  "+mp3_array[i]+"   结束");
                var chineseExp:RegExp=/[u4e00-u9fa5]+/;
                //trace(mp3_array[i].match(chineseExp));
                Mp3Name.push(mp3_array[i].match(chineseExp));
            }*/
            trace("——————–");
            formatURL(mp3_array);

        }
        private function formatURL(array:Array) {
            for (var i=0; i<array.length; i++) {
                SubLoad(array[i],i);
                //sub=i;
            }
        }
        private function SubLoad(url:String,num:Number) {
            var chineseExp:RegExp=/[u4e00-u9fa5]+/;
                //trace(mp3_array[i].match(chineseExp));
                //trace(url);
            //var mp3name:String=new String();
            var mp3name:String=String(url.match(chineseExp));
            
            var subrequest:URLRequest = new URLRequest();
            subrequest.url=url;
          
60; var sub_loader:URLLoader;
            sub_loader = new URLLoader();
            try {
                sub_loader.load(subrequest);
            } catch (error:SecurityError) {
                trace("A SecurityError has occurred.");
            }
            sub_loader.addEventListener(Event.COMPLETE,SubLoaderComplete);
            //sub_loader.addEventListener(ProgressEvent.PROGRESS,loaderProgress);
            function SubLoaderComplete() {
                progress_txt.text="开始分析第"+mp3name+"搜索结果";
                var SubMp3Exp:RegExp=/http://([w-]+.)+[w-]+([w- ./?%&=u4e00-u9fa5]*)?.mp3/g;
                trace(mp3name+" :: "+sub_loader.data.match(SubMp3Exp)[0]);
            }
        }
        private function loaderProgress(event:ProgressEvent):void {
        progress_txt.text=String(event.bytesLoaded)+"/"+String(event.bytesTotal);
        }
        private function errorHandler(event:IOErrorEvent):void {
            trace("IOErrorEvent 出错");    
        }
    }
}



其中主要是两个正则表达式写法.
新建一个MC链接Mp3Search类,MC里有一个文本输入框(名:input),一个表示按扭的MC(Mp3_search),加载提示动态文本框(progress_txt).

转载请注明出处!

点这里下载

细说百度的IM工具

三月 1st, 2008

1月29看到有百度出了内测的百度hi,下载安装了.虽然不能正常登录,看从百度安装文件夹看到一些眉目.安装后占用空间:22.7M,不算大.
logo,一个熊头和一个气泡整合(灰白色),再加上蓝色的H和红色倒过来的i.红蓝两色是来自己百度的logo,反正百度的也经很土了,估计设计师在设计这个logo一定很头疼.这个logo快捷方式在桌面并不显眼.
sysface目录有58个系统表情.表情的细节不如QQ.
syshead目录有28个头像.基本上是风景图片,或是根据百度hi的logo图片.不如QQ有个性,不能登录不知道支不支持自定义头像.
sysimage目录里的GIF图片可以看出除了发送自己定表情外,也可以发送截图(默认表情应该是通过字符转义实现).
MovieData目录有三个SWF文件,一个是登录动画,另两个是视频联接的动画.
skin目录里有两个皮肤,一个是default,另一个是rose(应该是针对女性用户的皮肤)
sound目录是几个系统提示声音.也没有什么特色.
AutoUpdate目录,这个是自动更新.
从安装目录里的licence文档里看到:"特别声明:百度Hi软件的语音视频技术得到Global IP Solutions, Inc.的授权"
从网上放出的界面看,整体外观也是一般.好像VISTA出来后,很多界面设计都模仿那种变化线(不好表达,就用这个词代替).
从一开始听说百度到现看到实际的东西,心里落差比较大.总感觉并不好.网上有网友对百度hi这个名字就不认可.想想也是,网友取名百度小声,百度说吧.以及baidu message .除了baidu message有MSN的味道之外,小声,说吧,还是不错的.众里寻他千百度,这个百度公司名的来源,其实百度可以再从这诗句再命名.本人就认为叫"千寻"也不错.可以和百度名字对应,而千寻这个名也不失IM的特色.更保留文化特色.如果实在不好决定用什么名字,也可以以百度的影响力,在自己的贴吧,网上搞一个名字征集活动,再来个投票,不但可以震震声势,也可以让广大网民参与其中.
网上报道说百度开发近一年的时间,而且其中最重要的语音视频技术又不是自己开发.从已知的功能上来讲,百度的开发实力也不怎么样!
QQ已经大众化,MSN也有相当部份上班言族在用,SKYPE也不公司,网上做生意用淘宝旺旺,个人用来当免费电话.对于一般网民而言,都是一上网开QQ,偶尔用MSN,skype.开网店的用旺旺.那百度的定位是哪里?娱乐性不如QQ,功能实用性并没有吸引人的.或许一些百度贴吧,百度知道,百度空间的用户会用,还有就是尝新鲜的青少年.这些不足和QQ竟争.说不定和只能MSN(国内用户)较个劲.

IE6中textarea宽度问题!

二月 29th, 2008

textarea设了100%宽度,起初在IE,FIREFOX都正常显示.但在IE里只要输入文字就会自动增宽.
解决方法:在textarea外再加一个100%宽的div.
哎,又是一个BUG.

Mark of the web

二月 27th, 2008

用了N年的Dreanweaver,一直没注意在菜单"命令"最下面有一个插入Mark of the web(也不知道Dreanweaver cs3之前版本有没有),什么是Mark of the web?
最后在微软的MSDN上找到相关资料,是安全设置.在用户把网页另存到本机,再打开时,限制执行脚本,ActiveX控件。简称(MOTW).
具体的格式:


<!– saved from url=(URL长度)URL地址 –>


其中URL长度以四位表示,URL地址是所在的域,URL长度要和URL地址的字符长度一致。当不知道URL地址时可以用以下通用格式。表示在internet.


<!– saved from url=(0014)about:internet –>


不过对IE7好像没什么作用。windows xp2 之后,IE对本地执行js脚本都会有安全提示功能。火狐等它浏览器应该是不买微软这个帐的。总得来说没啥作用。搞了这么多年的网页,这个东西算是旮旯级的东西。

js+flash实现一次上传多个文件

一月 15th, 2008

在老外一个博客中发现一个好东西.
利用flash调用文件选择对方框的功能,给合js,实现可以一次选择多个文件,并且可以定制文件类型.
绝对的好东西.
老外的博客地址:http://digitarald.de
上传组件演示地址:http://www.dansion.com/FancyUpload/FancyUpload.html

FLash在Firefox中100%高度问题

一月 9th, 2008

Flash在加上xhtml文档声明的html文件中用不着100%来设定高度.在IE中没有问题,在Firefox中就使100%高度无效.
一种做法是去除html文档最前面的文档声明。如果不去除xhtml的文档声明,加上一段CSS就可以解决问题。


html{
height:100%;
}


其实使用xhtml的DTD不但使CSS的设置会出现问题,而且会使用html下的JS在xhtml下也可能出现问题。
其中最常见是xhtml的滚动条的样式在body里设置也是无效,也得用html下设置。

FLash中escape()出问题

一月 8th, 2008

利用escape () 转化中文的URL地址,但转成的结果并非是正确的结果。
查来查去,最后发现是AS3.0的escape()和AS2.0的escape()有着不同的功能。
AS3.0用escapeMultiByte ()的功用才和AS2.0一样。

Flash中ExternalInterface.call返回null值

十二月 31st, 2007

利用ExternalInterface.call调用html里的js函数,参照了flash帮助文档里的做法.可以执行js的函数.但就是无法获取return的值.
网上一大堆教程也只是抄flash帮助文档的东西.也试了allowScriptAccess=always.结果无效,
最后让我去搜了N个flash网站,答案居然是只要给<object>加上一个id或是name就解决了.
哎…….无语了

注(IE7.0)