Logo

dansion’s 日志

学无止境~~~~~~~
rss
  • 首页
  • 日志首页
  • FLASH音乐盒
  • FLash 地图
  • 登录

Posts Tagged ‘Flash ActionScript’

用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).

转载请注明出处!

点这里下载

Tags: actionscript3, flash, Flash ActionScript, mp3
Posted in 作品 | No Comments »

FLASH动态文本消除锯齿方法

星期五, 四月 27th, 2007

方法一:嵌入字符集

选中文本后,属性面板里。选择“动画消除锯齿”,会弹出对话框。
选择嵌入字符集。
还可以自己定字符集,需要修改UnicodeTable.xml 文件,位于C:Program FilesMacromediaFlash 8<language>First RunFontEmbedding 

<glyphRange name="Uppercase [A..Z] " id="1" >
    <range min="0×0041" max ="0×005A" />
</glyphRange>


比较简单,定议多个<r[---]ange>就可以了。
这种方法最大的好处不会对swf文件大小产生太大影响(英文字符),适全小规模应用。
嵌入大小字,标点符号,数字一共114字,文件增加10K-20K之间。

方法二,用TextFormat

先在库里新建字体,创建链接标识符 (比如把04b08嵌入字体到库里,链接标识符为04b08)

var text_fmt:TextFormat = new TextFormat();
text_fmt.font = "04b08";
text_fmt.size = 10;
this.createTextField("my_txt", 10, 20, 20, 320, 240);
my_txt.autoSize = "left";
my_txt.embedFonts = true;
my_txt.selectable = false;
my_txt.setNewTextFormat(text_fmt);



这种方法,用法方面,可以在as中随便设置,但最不好的一点会使文件大不小,起码是4M以上。

而且字体是第一帧导出,会使文件加载进度控制变得很麻烦。

不管用那种方法,最好是先嵌入字体。第一种方法虽然不需要嵌入字体,但如果要到另一台电脑上修改的话,就会丢失字体。
嵌入的字体会在字体名称后面加个"*"

Tags: flash, Flash ActionScript
Posted in FLASH心得 | No Comments »

Flash真正全屏

星期五, 四月 20th, 2007

1,全屏下 Flash 文本框无法输入.
2,AS2 中一句话来调用全屏:
Stage["displayState"] = "fullScreen";
但必须使用事件处理器来调用才生效.就是:onPress,onClick…之类的.
3,最后就是HTML中必须加入 <param name="allowFullScreen" value="true" />属性,<embed>里面加上allowFullScreen="true"

Tags: flash, Flash ActionScript
Posted in FLASH心得 | No Comments »

  • about me

    dansion:现就职于口碑UED,从事前端发开工作。倚看浮尘,独乐矣!
    twitter:dansion.zeng
  • TAG

      五笔 农历 播放器 玄学 百度 网站 actionscript3 AMFPHP as css CSS3预览 dreamweaver FancyUpload ff firefox flash flash 10 Flash ActionScript Flash ActionScript flash cs3 flash remotion flex flv google html ie ie6 ie8 im Javascript js loader mp3 opensearch qq svn textarea WebSlices z-index
  • 最新文章

    • js与flash交互
    • yui2.8在Dreamweaver的代码提示
    • QQ五笔的小动作!
    • swfobject判断浏览器是否安装或是启用flash
    • 自定义 Dreamweaver CS4 代码提示
    • FLASH Loader 的 bug?
    • 离开深圳
    • JS滚动条
    • as闭包,addEventListener传参数.
    • 闭包!!!
  • 最新评论

    • zhouqi: 好冷清,捧场来了~ YUI提示快上来吧~
    • kenis: 在天地会看到博主的农历类,特地来这里感谢博主~
    • dafi: QQ五笔输入法已经出来了。
    • admin: 是比较杯具,因为虚拟服务商的问题。dis文件是文本类型的。
    • jinhr: 无法下载,以下是显示的错误信息。太可笑了。 发现被禁止的关键字:**** 在页面上发现被禁止的关键字:****! 请及时删除!
    • dafi: 你不在,吃饭时杀伤力都不强了。 那天江请吃饭都松了口气:还好曾董不在。。。
    • auzn: 是有问题 :)
    • shaming: 今天查阅了资料,月柱确实是跟着二十四节气走,仁兄是对的;然而在那个类中月柱“快了一天”,比如09年10月8日是寒露,从这天起月柱才由“癸酉”变成“甲戌”,但是那个类中10月7日就已经是“甲戌”月了。 瑕疵我找到了,原来只要把下面代码中的(d+1)改成d即可。 if ((d+1)>=firstNode) {
    • admin: 八字里是缺少一个时柱。但月柱跟农历月份走,有待考量,相当于年柱是否以春节为界,还是以立春为界。
    • shaming: 仁兄写的农历AS类果然强大,您的这个类在网络上广为流传,有幸我也看到了并使用了,在此非常感谢您! 接着就是我发现的问题: 1、八字没有出来,也就是时辰的天干还没有。 2、月柱应当跟着农历月分走。
  • 分类

    • Flash ActionScript (8)
    • FLASH心得 (8)
    • Javascript (6)
    • xhtml+css (16)
    • 了心作 (5)
    • 作品 (3)
    • 其它 (7)
    • 未分类 (8)
    • 网站相关 (2)
    • 胡言乱语 (2)
  • 存档

    • 2010年二月
    • 2009年十一月
    • 2009年十月
    • 2009年八月
    • 2009年七月
    • 2009年六月
    • 2009年五月
    • 2009年四月
    • 2008年十二月
    • 2008年八月
    • 2008年六月
    • 2008年五月
    • 2008年四月
    • 2008年三月
    • 2008年二月
    • 2008年一月
    • 2007年十二月
    • 2007年十一月
    • 2007年十月
    • 2007年五月
    • 2007年四月
    • 2007年三月
    • 2007年一月
© 2005-2010 dansion’s 日志 is proudly powered by WordPress Entries (RSS) and Comments (RSS). 浙ICP备06014046号