About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Jan

    7

    二类涂鸦板:一种是主流的通过保存鼠标轨迹的方式来保存涂鸦数据,既使用矢量的方式来保存,样例如闪吧的涂鸦程序;另一种是通过保存 BitmapData 颜色值的方式来保存,样例还没有找到比较像样的样例。

    在《内置方法Array.shift 与自定义循环++的执行效率比较》一文中,我已经对 shift 方法与自定义的 ++ 方式分别作了比较。虽然自定义 ++ 的方式比内置的 shift 方法要快,但事实它们二者的效率都很低。由于 SharedObject 类是无法直接保存 BitmapData 对象的,所以只能将 BitmapData 的所有位图像素的每一个像素取 ARGB 值后保存。一张位图按500像素 x 500像素算,自定义 ++ 需要3秒多,而 shit 方法脚本超时。所以通过 BitmapData 的颜色方式来保存只能保存较小的位图。所以通过鼠标轨迹的方式保存涂鸦成了主流。

    More...

    Jan

    2

    偶然的发现,在AS1/2中内置的 Array.shift 方法执行效率很低,还是自定义一个索引因子来的快。(以下代码是我在将一个位图的每个像素分别取 ARGB 颜色值存储在一个数组中,再从数组中分别取出 ARGB 颜色值重新生成位图时的测试)。

    //使用shift方法
    import flash.display.BitmapData;
    var nowTime = getTimer();
    var bitmapWidth:Number = 50;
    var bitmapHeight:Number = 50;
    var myBitmapData1:BitmapData = new BitmapData(bitmapWidth, bitmapHeight, true, 0xffff0000);
    _root.createEmptyMovieClip("bmp1",this.getNextHighestDepth());
    bmp1.attachBitmap(myBitmapData1,getNextHighestDepth());
    var contents:Array = new Array();
    for (i=0; i<bitmapWidth; i++) {
        for (j=0; j<bitmapHeight; j++) {
            contents.push(myBitmapData1.getPixel(i, j));
        }
    }
    var myBitmapData2:BitmapData = new BitmapData(bitmapWidth, bitmapHeight, true);
    for (i=0; i<bitmapWidth; i++) {
        for (j=0; j<bitmapHeight; j++) {
            myBitmapData2.setPixel(i,j,Number(contents.shift()));//直接使用内置的shift方法
        }
    }
    _root.createEmptyMovieClip("bmp2",this.getNextHighestDepth());
    bmp2.attachBitmap(myBitmapData2,getNextHighestDepth());
    bmp2._x = 500;
    trace((getTimer()-nowTime));//输出581
     

     

    //自定义索引因子
    import flash.display.BitmapData;
    var nowTime = getTimer();
    var bitmapWidth:Number = 50;
    var bitmapHeight:Number = 50;
    var myBitmapData1:BitmapData = new BitmapData(bitmapWidth, bitmapHeight, true, 0xffff0000);
    _root.createEmptyMovieClip("bmp1",this.getNextHighestDepth());
    bmp1.attachBitmap(myBitmapData1,getNextHighestDepth());
    var contents:Array = new Array();
    for (i=0; i<bitmapWidth; i++) {
        for (j=0; j<bitmapHeight; j++) {
            contents.push(myBitmapData1.getPixel(i, j));
        }
    }
    var myBitmapData2:BitmapData = new BitmapData(bitmapWidth, bitmapHeight, true);
    var k = 0;//自定义的索引因子
    for (i=0; i<bitmapWidth; i++) {
        for (j=0; j<bitmapHeight; j++) {
            myBitmapData2.setPixel(i,j,contents[k]);
            k++;
        }
    }
    _root.createEmptyMovieClip("bmp2",this.getNextHighestDepth());
    bmp2.attachBitmap(myBitmapData2,getNextHighestDepth());
    bmp2._x = 500;
    trace((getTimer()-nowTime));//输出32 

     如果计算一张较大的位图时,分别将 bitmapWidth 与 bitmapHeight 设成500的话自定义索引因子需时3559毫秒,使用shift内置方法15秒脚本超时无法计算完。
     

    Dec

    15

    如果说《FLASH 文本工具“不完全”介绍(上篇 )》是针对FLASH初学者而言的,那么此篇就是针对ActionScript初级用户而言的。其实经常看到有人在一些FLASH相关的网站问一些关于文本工具,特别是在脚本方面的问题以及技巧。

    大多问题就是关于在FLASH中某些情况下,字体无法显示的问题,其实就是嵌入字体的问题;还有人会问嵌入中文字体使得文件变的非常大的问题,其实我们绝大部份情况下,并不需要嵌入整个字体包,只需要嵌入使用到的字体轮廓(嵌入字符)就可以。显示问题与嵌入字体使得文件变大的介绍与解决方式可以参考《FLASH 文本工具“不完全”介绍(上篇 )》

    More...

    Dec

    9

    涉及到FLASH文本工具的内容相当多,应用也相当广,不可能全部写进去。所以这里写的只是部份功能,针对部份在FLASH中直接使用文本工具排版的人员。文本工具分为静态文本、动态文本、输入文本三类。这个基本上不用介绍了,相信用过FLASH文本工具的人都会有所了解。主要是想介绍它的字体嵌入与排版时的样式是否保留的问题。

    (闲言:这是因为前几天有个网友问起,为什么静态文本在使用设备字体时无法保留上标和下标排版样式功能?直接下来也从这个问题开始回答起,引出的下面的所有的嵌入问题)

    More...

    Nov

    18

    [AS1/2]全局 _global 的用处

    • 0 Comments
    • Flash Platform

    大多时候 _global 被用在当一个文件的影片剪辑层次相当复杂的时候,用来简化编写代码时的路径。但这仅仅只是它一个小用途。

    _global 是一个全局概念,由于FLASH播放器是一个奇怪的播放器,它本身内置了堆栈的概念。即我们平时看到的 _level ,从一个正在被播放的SWF文件,不但可以加载另一个SWF文件当前面SWF的某一影片剪辑内,甚至可以将另一个SWF加载到同一层级的另一个堆栈层。

    而被定义成为 _global 的对象(这里的对象包括,变量、函数和对象,下同。)不仅可以在当前SWF文件被直接访问,在另一个SWF文件内也可以直接访问被定义成为 _global 的变量或函数等。

    More...

    Sep

    23

    前段时间看到网络上一些文章,大致意思是:地球是圆的,所以南辕北辙也没有错,只要一直向北走,绕地球一圈之后就可以到达目的地(也就是故事中的楚国)。前段时间看到酷六网的一则新闻,有学生在问老师同样的问题,这学生应该说是聪明反被聪明误。但老师的回答也是雷人,“因为古人认为天圆地方,不知道地球是圆的”,按这说法老师默认了学生的答案,只要一直向北走,就一定可以到达楚国了。学生的地理没学好,这老师的地理也没学好。

    地球虽然是圆的,可北极只有一个,当东半球从南向北夸过北极时继续前行时,就是西半球的从北向南了。如果一个人一直往北走,他最后只能走到北极,不可能走到南极去。一个简单而容易让人出错的问题。就如指南针到了地磁北极之后,它的指针N极应该是偏向下的,指向地面的。在北极的极点上,没有北面,任何一个方向都是南面;同样,南极的极点上没有南面,任何一个方向都是指向北面的。

    More...

    Aug

    11

    我没有见过真正的大海,
    可我向往大海,
    因为传说中大海总是很美。

    谁也不曾料到,
    七号台风天鹅的打翻了海船。
    水手们浮在海里已经数天,
    没有食物,没有淡水。
    有的只是好几个夜晚暴风雨中冰冷的海水。

    我的心与水手的亲人们紧紧相连。
    我责问天——为何要让美丽的大海降临如此灾难,
    我责问风——为何要让勤劳的人们承受如此磨难。

    More...

    Jul

    2

    一直被模仿,从未被超越

    • 0 Comments
    • Movies, TV and Celebrities

     
    他不理黑白界限 我们不辩真假是非
    黑或白有何紧要
    世界大同 肤色为何不可大同
    道德太多墨守陈规 阶级太大鸿沟天堑
    这时代那么多规矩和框架
    没人可以跳脱出来毫发不伤
    天真 很多时候 就注定是悲剧
    悲剧 到最后 才铸就这么段传奇

    >>>点击进入 Michael Jackson 病逝专题

    6月25日(北京时间6月26日)看到铺天盖地关于 Michael Jackson 去逝的报道,太突然了的事情总是无法接受。到现在也宁愿相信这是 Michael Jackson 为七月份演出给大家一个悲伤过后复活惊喜闹剧。

    只能轻轻的说声:再见了,Michael。

     

     

    Jun

    16

    《印象》四周年

    • 0 Comments
    • Stories

    闲言:
    很久没有看电子杂志了,上周末休息时去翻阅了最近二期《印象》,这是一本我最喜欢的电子杂志,不知不觉《印象》已经四周年了。从第一期到最近一期,无法让我删除其中任何一期。那些绚丽的影像除了展示了事物本身外,还有在那些“光影”背后的人和故事,以及生活中的那些印象。不知道有多少影像爱好者在阅读《印象》时成为了知性的人。

    《印象》中的印象人大多是一些在事业或生活中收获颇多的平凡人,无论是在工作中还是生活中,他们进行着一次又一次的冒险,他们是冒险家和梦想家。印象人是艺术家还是画匠并不重要,作品和精神所传达的才是最珍贵的。印象人成功也好,挫折也罢,这些只是他们生活中的一部分……印象的作品总是显的脱俗,却又能把想法深刻的表达传递给影像爱好者。

    More...

    May

    29

    在ActionScript编程过程中,很多时候一维数组无法满足复杂的数组结构。在C#之类的某些传统编程语言中,可供选择的还有二种数组结构:嵌套数组(Nested Array)或者多维数组(Multi-Dimensional Array)。

    所谓的嵌套数组就是数组里面的元素还可以是数组,由于数组中每个元素数组并不要求自己的元素个数相同,所以结构在模型上看起来像是参差不齐的锯齿状,故而也称为齿状数组(Jagged Array);而多维数组则是数组的每个元素中的元素数量还是相等的,如二维数组则行元素和列元素的数量必须一一对应,三维数组除了行和列之外还有深度元素在数量上的一一对应。

    More...