Profiel van 伐蚁伐 | I CAN FLASH!Foto'sWeblogLijsten Extra Help

Weblog


    08 september

    关键字排名查询工具as3版本

    学习as3,为了练习,把原来的关键字排名查询工具用as3重新做了一遍,增加一些功能。
    通过这个过程发现as3的强大和严谨,目前水平有限,还需要继续深入学习和应用。
     
    查看as3版本的关键字排名查询工具:http://www.flashplayer.cn/keywords/
     
    28 augustus

    Flash Player10一个非常牛的功能SaveBitmap

    _bmp.save("drawing.jpg");
     
    利用这个功能,把Bitmap对象直接输出成图片格式,保存到本机。
    在线图片制作工具也许都不需要服务器端的处理了。大笑
     
    10 april

    Flash CS3中五个最重要的新功能

    1. Import Photoshop Files
    2. Exporting Motions and Animations
    3. Improved Skinning of Components
    4. New and Improved Flash Video Importer
    5. Brand New Interface
     
    详细信息查看原文: http://blogs.zdnet.com/Stewart/?p=336
    28 januari

    Library Sound Control

    做了几个函数来控制Library中的声音,方便控制声音播放、循环播放和停止。
     
    主要函数如下:
    //声音元件需要加上Linkage
    var soundObject:Object = new Object(); //存放声音对象
     
    function playSound(sName:String,isLoop:Boolean){ //播放声音Library中的声音 sName 声音元件的Linkage,isLoop 是否循环
     if(soundObject[sName])soundObject[sName].stop(sName);
     soundObject[sName] = new Sound();
     soundObject[sName].attachSound(sName);
     if(isLoop){
      soundObject[sName].onSoundComplete = function(){
       this.start();
      }
     }
     soundObject[sName].start();
    }
     
    function stopSound(sName:String){    //停止声音 sName 声音元件的Linkage "b1" or "b1,b2,...."
     var tmpArr = sName.split(",");
     for(var i in tmpArr){
      soundObject[tmpArr[i]].stop(tmpArr[i]);
     }
    }
     
    function stopAllSound(){ //停止所有声音
     for(var i in soundObject){
      soundObject[i].stop(i);
      delete soundObject[i];
     }
    }
    22 november

    今天吃什么? (Flash 版本)

    其实最初作这个东西只是想做一个手机版本(Flash Lite 2),顺便也做了一个普通版本
     
    下面是这个东西的说明
     
    你是否每天都要问自己“今天吃什么?”让这个小工具来帮助你回答吧。你可以用它来记录经常吃的饭菜,价格以及叫餐电话,可以对这些饭菜进行条件选择(随机、最贵、最便宜等)。
      这个工具是通过SharedObject来记录数据的,所以它是与每一台电脑上的数据对应,类似于web中的Cookie,你可以通过页面访问或者将它保存到电脑上来使用 (本机的数据和本页看到的数据是不同的)。
     
    普通版本请访问:http://www.flashplayer.cn/whateat/
     
    手机版本
    适合机型:Dopod 577w/586w/595/596/710/P800w (需要安装Flash Lite 2.1 for WM5)
    开发测试平台:Dopod 577w
    分辨率:240*320
    下载手机版本“今天吃什么”  
     
    今天吃什么
    24 augustus

    按钮辉光效果

    在一些网站上看到过辉光效果,模仿制作了一个这样的效果,主要是利用了模糊和透明度的变化。
    演示地址:http://www.flashplayer.cn/example/buttonlight/  (鼠标移动到小图标上)
     
    下面是主要的实现代码
     
    function showlight(mc) {
     if (light) {
      light.removeMovieClip();
     }
     this.attachMovie("light", "light", getNextHighestDepth(), {_x:mc._x, _y:mc._y, _width:mc._width, _height:mc._height});
     //(new Color(light)).setRGB(random(0xFFFFFF));//产生随机颜色
     var myBlurdata:BlurFilter = new BlurFilter(0, 0, 1);
     var myFilters:Array = light.filters;
     myFilters.push(myBlurdata);
     var fblur = 0;
     light.onEnterFrame = function() {
      fblur += 30;
      light._alpha = 100-fblur/2;
      myFilters[0].blurX = fblur;
      myFilters[0].blurY = fblur;
      light.filters = myFilters;
      if (fblur>150) {
       delete this.onEnterFrame;
       this.removeMovieClip();
      }
     };
    }
     
    这段代码就是将一个白色的色块进行模糊以及透明度变化来产生光辉的效果。
     
    09 augustus

    彩色光条效果

    做了一个彩色光条的效果,效果请浏览
     
    制作非常简单,基本就是应用一下mask效果,复制多个光条利用一些随机性产生效果
    for (var i:Number = 0; i<15; i++) {
     var tmpmc:MovieClip = light.duplicateMovieClip("light_"+i, i+1);
     tmpmc._x = randomZone(150, 500);
     tmpmc._y = randomZone(150, 400);
     tmpmc._xscale = randomZone(70, 120);
     tmpmc._yscale = randomZone(70, 120);
     tmpmc._rotation = randomZone(0, 360);
     tmpmc.b.gotoAndPlay(randomZone(1, 130));
     tmpmc.b.a.gotoAndPlay(randomZone(1, 50));
    }
    //返回s到e的随机数,包括s和e
    function randomZone(s:Number, e:Number):Number {
     return s+Math.floor((e-s+1)*Math.random());
    }
     
    08 augustus

    为Flash 十周年做一幅图片

    Flash十年,为Internet带来巨大的改变,做一幅图片送给Flash、Macromedia、Adobe、以及所有热爱Flash的人们
     
    07 juli

    让某一区域的按钮失效

    某一片区域有许多按钮,需要让这些按钮失效,当然可以将每个按钮的enabled设置为false,以下做法也许更好。
    用一个全透明的mc(命名为blank),盖在最高层,然后加如下代码
     
    blank.onRelease = function(){
     //nothing
    }
    blank.enabled = false;
     
    这样被盖住的区域内按钮就全失效了 blank被remove掉,按钮就恢复了
     
    我是这么做的,不知道有没有更好的方法。
     
    22 juni

    了解Apollo

    Lou Susi: So ... is Apollo just a player? Or is it an app to help develop RIAs?
    Mike Chambers: It is a runtime. It is used to run the applications.
     
    了解更多:Building Killer RIAs?
    14 juni

    世界杯赛况flash调用+手机版本

    显示世界杯小组以及排名情况,数据来自世界杯官方网站,可以在页面上调用
     
    另外还有一个手机版 本(Flash Lite 2.0) 适合Nokia 6680,Nokia 6681,有兴趣的朋友可以下载看看(在模拟器中制作, 没有在手机上测试过)
    24 maart

    一个非常优秀的flash游戏

    用线条和几何图形勾勒出的生物,以及游戏中的结构组合,感觉非常好
    作者:Jenova Chen 陈星汉
    15 december

    自己真是孤陋寡闻!

    以前发过一个自认为挺难的问题,就是如何取得当前文本的光标位置,也想了一些办法。今天才发现,flash里边有一个Selection类,可以轻松取得。知识不全面不扎实的结果。
     

    Selection 类可以让您设置和控制插入点所在的文本字段(即,具有焦点的字段)。选择范围索引是从零开始的(例如,第一个位置为 0、第二个位置为 1,依此类推)。

    Selection 类没有构造函数,这是因为一次只能有一个当前具有焦点的字段。

    这样取得一个文本框的当前光标位置轻而易举 Selection.getCaretIndex();

    06 december

    Flash内加URL链接的一点经验

    制作一些含有URL链接的Flash广告条,将他们放到页面中,会遇到一些奇怪的问题,比如打开链接的时候会被google工具条屏蔽,鼠标放到链接上光标形状会在手型和鼠标之间不停的闪,最后解决了这些小问题,总结一下经验,希望对遇到类似问题的朋友们有用。
     
    使用onRelease事件而不使用onPress事件,使用onPress事件,打开链接的时候出现过被google工具条拦截的现象,另外web上的链接也都是onRelease事件,即鼠标松开的时候才打开链接,符合用户点击链接的习惯。
     
    鼠标放到链接上光标形状会在手型和鼠标之间不停的闪,那么请在html代码中加入这个参数
    <param name="wmode" value="opaque">

    这里也一起加上

    <embed ... wmode="opaque" ..></embed>

    使用这个属性的时候,如果你的Flash中有打开连接的代码,请不要用onPress事件,因为这样很容易被google工具条等拦截,具体原因,我不清楚。

    05 december

    把Flash Blog聚合器优化了一下

    生成静态页面,速度大大提高,一起来关注Flash最新资讯
    03 december

    用BitmapData.floodFill做填色游戏

    在flash8之前的填色游戏一般是将要填色的物件分成若干个小的MovieClip,然后单独对其填充颜色。
    利用BitmapData.floodFill对位图对象填充颜色的特性来实现区域填色,似乎比较方便,只要将线稿导入到flash中,变成BitmapData就可以填色了。下面是一个实例
     
    ------------------------------------------------------
    import flash.display.BitmapData;
     
    var colorNumber:Number=15; //色块数量
    var nowColor:Number; //记录当前颜色
    var showNowColor:Color=new Color(this.attachMovie("block","showNowColorMc",100,{_x:460,_y:330,_width:50,_height:50})); //生成一个色块显示当前颜色
     
    for(var i:Number=0;i<colorNumber;i++){ //生成控制色块
     this.attachMovie("block","block"+i,i+10,{_x:(i*30+10),_y:350});
     var tmpMc:MovieClip=eval("block"+i);
     var tmpColorMc:Color=new Color(tmpMc);
     var tmpColor:Number=random(0xffffff); //随机颜色
     tmpMc.thisColor=tmpColor;
     tmpColorMc.setRGB(tmpColor);
     showNowColor.setRGB(tmpColor);
     nowColor=tmpColor;
     tmpMc.onRelease=function(){
      nowColor=this.thisColor;
      showNowColor.setRGB(nowColor);
     }
    }
     
    var myBitmapData:BitmapData = BitmapData.loadBitmap("fillpic"); //创建一个位图对象
    var mc:MovieClip = this.createEmptyMovieClip("mc", 1);
    mc.attachBitmap(myBitmapData,2); //载入位图对象
     
    mc.onRelease=function(){ //点击设置颜色
     myBitmapData.floodFill(this._xmouse,this._ymouse, nowColor); //为当前位置(同一颜色的连续区域,这里是白色)填充颜色
     //floodFill 在图像上执行倾倒填充操作,从 (x, y) 坐标开始,填充一种特定的颜色。
    }

     
    30 november

    大量Flash8范例

    这个页面收集了非常多的Flash8范例,可以看到用Flash8能够做出如此精彩的效果!
     
     
    不过很少有源文件,对于这些效果实在摸不着头脑,哪位朋友如果有这些效果的源文件,希望能与大家共享,谢谢。
    08 november

    BitmapData.draw方法尝试

    最近看了一些Bitmap以及滤镜相关的源文件,看不懂 脑子不够用!
     
    看了一些简单的源文件,尝试使用BitmapData.draw方法,参照着做了实例以下是代码
     
    -----------------------------------------------------------
    import flash.display.BitmapData; //导入BitmapData 类
    var mybmp:BitmapData=new BitmapData(Stage.width,Stage.height,false,0); //建立一个和场景一样大的位图对象
    this.attachBitmap(mybmp,1); //将位图图像附加到主场景上
    //----效果部分 建立一个mymc 内部建立一个line 绘制一条直线 每帧随机旋转一个角度-----//
    this.createEmptyMovieClip("mymc", 2);
    mymc.createEmptyMovieClip("line", 1);
    with(mymc.line){
     lineStyle(5, 0x00FFFF, 30);
     moveTo(0, 0);
     lineTo(20, 20);
    }
    mymc.onEnterFrame=function(){
     this.line._x=this._xmouse;
     this.line._y=this._ymouse;
     this.line._rotation=Math.random()*360;
    }
    //----------------效果部分结束-------------------------//
    this.onEnterFrame=function(){
     mybmp.draw(this); //不停的描绘场景
    }
    -----------------------------------------------------------
     
    我的理解是BitmapData.draw就像一个照相机,将图像记录下来,保存到位图对象,我们让他不停的纪录,就能将所有的图片同时展现出来,就像以上的实例,这样可以替代以前复制大量的mc并分别设置属性来显示效果的操作,关键是不会占用大量资源。
     
    Bitmap以及滤镜部分看的实在头晕,希望精通的朋友给予指点,谢谢!
    04 november

    给flash加一个trim()函数

    flash没有自带trim()函数,只有自己加一个,下面是函数代码
     
    -------------------------------------------------------------------------------
     
    var myS:String="      前面后面含有全角空格\" \"和普通空格\" \",现在把他们去掉    ";
     
    trace("原字符串:"+myS);
    trace("处理后的:"+trim(myS));
     
    function trim(myString:String){ //过滤前后空格
     if(myString.indexOf(" ")==-1 && myString.indexOf(" ")==-1){  //如果字符串内没有空格直接返回
      return myString;
     }
     var omyString:String=myString; //把原始字符串保存下来
     myString=replace(myString," "," "); //把全角空格替换成普通空格,方便处理
     
     var lblanknum:Number=0;//开始位置的空格数量
     var rblanknum:Number=0;//结束位置的空格数量
     
     //计算开始位置的空格数量
     for(var i:Number=0;i<myString.length;i++){
      if(myString.charAt(i)!=" "){
       break;
      }else{
       lblanknum++;
      }
     } 
     //计算结束位置的空格数量
     for(var i:Number=(myString.length-1);i>0;i--){
      if(myString.charAt(i)!=" "){
       break;
      }else{
       rblanknum++;
      }
     } 
     return omyString.substring(lblanknum,(omyString.length-rblanknum));
    }
     
    function replace(s:String,o:String,n:String){ //字符替换函数 把s中o替换成n
     return s=s.split(o).join(n);
    }
     
     
    输出部分
    原字符串:      前面后面含有全角空格" "和普通空格" ",现在把他们去掉    
    处理后的:前面后面含有全角空格" "和普通空格" ",现在把他们去掉
     
    *