• Blog
  • About
  • Hello
  • 开发日志 - 解耦 - [技术]

    2010-10-29 | flex 解耦 AdvanceDatagrid

    这几天的工作,让我知道解耦在系统设计中的重要性。我们宁愿牺牲一下速度,也要保持设计符合一般的设计规则。

    简单,解耦,在一般人的认识范畴之内,不要做比较诡异的设计和实现,有时候你觉得很好,但是在团队里面,却是一个个噩梦。

    Flex 有个bug,你在继承AdvanceDatagrid的类中显式调用super(),flex会抛出一个莫名其妙的exception,你要么用calllater,要么不要显示调用super()。

    但是calllater实在是要非常谨慎的使用,这个方法严重破坏了程序的可读性和可预测性。

    另外,对event的控制真的需要使用Struts类似的控制模式,要在config里面集中注册和管理,这样才不至于成为你的噩梦。

    更多:开发日志 - 解耦 - [技术]
    凯文 发表于22:05:00 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • 开发日志 —Flex 改变 Spark DropDownList的默认行为 - [技术]

    2010-10-22 | flex drop down list

    如果你点击Spark DropDownList,那么Spark DropDownList默认就会马上打开一个popup的窗口,但是我不想这样,我希望popup窗口在我控制之下打开。

    为了实现这个目标,我基本上完全浏览了这个控件的源代码,Spark DropDownList全部控件都是写在Spark DropDownList Skin中的,由一个Popupanchor,一个按钮,一个label组成,在Spark DropDownController中,会给button添加事件,看下面代码

     

       
    private function addOpenTriggers():void
    {
        // TODO (jszeto): Change this to be mouseDown. Figure out how to not 
        // trigger systemManager_mouseDown.
        if (openButton)
        {
            if (isNaN(rollOverOpenDelay))
                openButton.addEventListener(FlexEvent.BUTTON_DOWN, openButton_buttonDownHandler);
            else
                openButton.addEventListener(MouseEvent.ROLL_OVER, openButton_rollOverHandler);
        }
        }

     

    那我就给openButton加了一个事件

     

    this.openButton.addEventListener(FlexEvent.BUTTON_DOWN,handler,false,1);

     

    注意最后一个参数是指这个Listner的优先级,只有加了这个,那么这个handler才能比原来注册的Listner先执行。

    为什么要先执行?因为我们要做下面的事情。

     

    private function click(event:Event):void
    {
       event.preventDefault();
       event.stopImmediatePropagation();
    }

     

    这个被证明是最好的方法,我可是花了好长时间才弄出来,因为我要把Adobe的源代码翻个底朝天。走了好多弯路,花了好多时间,不过证明技术到最后不是最大的难题,什么技术问题都能解决的。

     

    更多:开发日志 —Flex 改变 Spark DropDownList的默认行为 - [技术]
    凯文 发表于00:02:00 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 开发日志 - 关于Flex Event的Scope管理 - [技术]

    2010-10-19 | flex event scope

    今天费了好多时间来调试一个bug,到最后只改了四个字母,非常之优雅地解决这个问题。

    这是一个关于Event的Scope管理不好,Event的生命周期结束之前有一个意料之外的Listener。简化的例子如下

    var objectA;
    var objectB;
    objectB.addChild(ObjectA);
    objectA.addListener(Event.CREATE, handler);
    objectB.addListener(Event.CREATE, handler);
    objectA.dispatchEvent(new Event(Event.CREATE));

    事实上,原本设计程序的人只想这个Create Event在objectB自身内被捕捉相应,而不是给外部的类或者说是父节点来捕捉到。

    修复这个bug 我就改了

     

    objectB.addListener(Event.CREATE, handler,true);

     

    让这个事件只在capture的阶段被响应.

    我觉得事件的scope可以有空间上和时间上的划分,

    空间上,可以控制event在哪个类里面被响应。

    时间上,可以控制event在哪个环节上可以被响应。

    这样也许更好。

    同时,event的addlistner方式虽然用起来很方便,但是的确不容易管理和维护,你很难知道这个event丢出去之后到底谁来响应,所以有很多无用的event被创建和销毁,大大降低app的性能。

    我还是比较喜欢struts中控制action mapping的方式,可以在一个地方注册好自己的event的创建和event的listner,这个是个比较独裁的方式,但是真的可以减少很多痛苦。

    更多:开发日志 - 关于Flex Event的Scope管理 - [技术]
    凯文 发表于18:41:00 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 开发日志 —Flex App - [技术]

    2010-10-15 | flex 工作

    这两天的TG开发不是很快,因为最近在重新思考整个工具的工作流程,想重新梳理下,得出一个完整而简洁的流程。

    逐渐接触新公司的代码,发现大家写的code也不是那么nice,没办法,时间不允许,谁也不愿意冒险为了质量而超过deadline。混乱是每天需要面对的事情。

    更多:开发日志 —Flex App - [技术]
    凯文 发表于00:23:00 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 开发日志 Java图片处理 - [技术]

    2010-10-11 | java flex swf 导入 图片处理

     

    1. Java处理图片,想到导出清晰的图片要注意两个环节,一个是设置Graphic2d的setRenderingHint,另外一个是设置JPEGEncodeParam的setQuality,后者是关键,参考,参考2
    2. Flex载入swf影片的时候,需要使用mx:Image来做为container,参考

     

    更多:开发日志 Java图片处理 - [技术]
    凯文 发表于00:28:00 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 开发日志 - Flex Spark Skin - [技术]

    2010-09-28 | Flex Spark Skin

     

    Flex Spark Skin 的确是个比较强大的东西,但是比较麻烦,而且不灵活。

    这个东西是个比较失败的工程师的作品。

     

    更多:开发日志 - Flex Spark Skin - [技术]
    凯文 发表于00:26:00 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 开发日志-奇妙的栅格画-第一出 - [技术]

    2010-09-17 | flex 栅格 动画 视觉

    记得两三个月之前自己看到一个栅格画,觉得很有意思,我当时也觉得,自己也能做出来。

    拖拉了好久,今天终于找到时间做了下,写程序很快,不过把原理想通,倒是挺费力的,人笨。

    明天,会有更加有趣的版本,今天就写在这里记录下自己的成果。

    鼠标放到栅格上,拖动栅格就能看到一个小球来回转动

    更多:开发日志-奇妙的栅格画-第一出 - [技术]
    凯文 发表于01:42:57 | 阅读全文 | 评论 2 | 编辑 | 分享 0
  • Flex Lifecycle的好文 - [技术]

    2010-08-10 | Flex Lifecycle

    看链接

    更多:Flex Lifecycle的好文 - [技术]
    凯文 发表于16:27:52 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Neuro Productions 创意图像互动工作室 - [牛a和牛c之间]

    2010-06-10 | neuroproductions flex 图像

    Neuro Productions 是个创意图像互动工作室,这个工作室充满了富有创意和高技术含量的图像实验性作品,太令人诧异了。

    这是今天最可爱的发现

     

    更多:Neuro Productions 创意图像互动工作室 - [牛a和牛c之间]
    凯文 发表于02:20:22 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Flex性能优化 - [技术]

    2010-02-24 | Flex 性能 Performance

    最近涉及到了大规模运算的使用,所以提高性能的需求比较迫切,我尝试了一下几个方法,性能能从20×20提高到50×50个点的矩阵。

    1. 用Enterframe来代替Timer驱动计算
    2. 千万不要使用Array的revert功能,尤其是在你的array里面有万个元素的时候,宁可多写一个循环从尾巴开始遍历
    3. Math的任何函数都是费时间的,如Sin,如果可以,先把360度的sin值求出来放入数组中,用sin[250]来求值
    4. Math.min(a,b)不如a>b?b:a
    5. 习惯使用位值操作 a>>2 == a/2
    6. 用乘法,不要用除法, a*0.5比a/2快

    Flash不太适合图形的大规模运算,所以我要很扣才行。 

    有时候,只有到了这种资源稀缺的时候,你才有心思去好好规划自己的算法,好好去整理自己的代码,其实也是件很有趣的事情。

    将来,我想引入Flex profiler 来找出ObjectLinks里面的瓶颈,因为将来会有更加耗费时间的碰撞检测,边界检测,和将来3D空间的ObjectLinks。

    参考资料

    Round up of ActionScript 3.0 and Flex optimization techniques and practices

    AS3 Performance Optimization

    Optimizing Flex Applications(幻灯片)

    Optimizing Adobe AIR for Code Execution, Memory, and Rendering

     

    更多:Flex性能优化 - [技术]
    凯文 发表于09:36:56 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • ObjectLink Bug 修复 - [技术]

    2009-12-29 | flex objectLink

    看下面两个对比,第一个距离合适,第二个距离会变大

    有bug的

    假设未知问题为f,与这问题相关的变量是x=单位帧里位移调整次数,y=单位帧里位移计算次数,那么问题的方程就是f(x,y),然后x的变量是z=每次位移量,假设y的值足够大,那么f可以写成f(x(z))。

    所以得出结论,如果要解决这个问题,就必须要根据小球的数目,调整位移次数。来解决这个bug

    更多:ObjectLink Bug 修复 - [技术]
    凯文 发表于13:57:37 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 新版小球 - [技术]

    2009-12-29 | flex objectLink

    小球链条一段是固定的,一段可以运动,你可以用鼠标拽两端,看看小球行为的不同。

     

    更多:新版小球 - [技术]
    凯文 发表于13:24:09 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Excellent Proximity Detection - [技术]

    2009-12-09 | flex 人类 工程 gskinner proximity

    gskinner provides us a very good resolution for proximity detection, but again, if you try to learn it, you have to go back to the original stage and understand his idea.

    Finally, excellent idea apply to everything in the world, people, technology.

    更多:Excellent Proximity Detection - [技术]
    凯文 发表于07:32:52 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • 前面两个小玩意的修复版 - [技术]

    2009-11-25 | flex ObjectLink bug 修复

    修复了前面两个demo会“飘”的bug

    更多:前面两个小玩意的修复版 - [技术]
    凯文 发表于21:29:47 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 一日一玩意 - [技术]

    2009-11-25 | flex ObjectLink

    ObjectLink Concept Demostration

    更多:一日一玩意 - [技术]
    凯文 发表于00:32:05 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 开源项目ObjectLink - [技术]

    2009-11-24 | objectLink flex 粒子系统

    ObjectLink是准备开源的一个项目,师从Box2d以及诸多来自Making Thing Move的例子。

    师从Box2d是指表现形式类似,不过也仅此而已,成品将会是和Box2d异常不同的东西。

    将来会是3个方向

    1 物理引擎

    2 粒子系统

    3 插件扩展

    不过最近都在忙出国的事情,一时间进度不是很快,呵呵,估计第一个版本还要到明年春节之后才能问世。

    下面是一个小小的Concept Provement,不是很惊艳,但是足以说明他可以做很多东西,期待下吧

    更多:开源项目ObjectLink - [技术]
    凯文 发表于00:17:49 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • flex blog集中 - [技术]

    2009-11-13 | away3d flex

    away3d的geek:Der Schmale

    另外一个away3d的成员:www.infiniteturtles.co.uk

    更多:flex blog集中 - [技术]
    凯文 发表于23:18:56 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • AVM3-Alchemy应该是个很有前途的东西 - [技术]

    2009-11-13 | flex alchemy

    如题

    看这里

    更多:AVM3-Alchemy应该是个很有前途的东西 - [技术]
    凯文 发表于17:27:35 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 绽放 - [技术]

    2009-11-08 | flex

    下班回来的路上,有丝丝凉意,我缩头缩脑猥琐地走在回家的路上。

    一路上贼头贼脑东张西望,无意中看到台球馆前面一个小小的激光灯,打出一个很有意思的图案,仿佛一朵朵绽放的花朵,一眼就能看到这个一个简单模式通过一个叠加实现的,不过你又不能一下子说明他这个模式什么。

    于是回来玩了下,做了下面这个东西出来。

    更多:绽放 - [技术]
    凯文 发表于17:31:39 | 阅读全文 | 评论 1 | 编辑 | 分享 0
  • Flex 奇怪需求一览 - [技术]

    2009-11-05 | flex 需求

    1. Datagrid中显示行号,行号不随其他Column的排序而变化
    2. Datagrid中以HH:MM:SS格式显示时间,时间支持排序
    3. 用代码在Datagrid初始化时,对Datagrid的指定字段排序
    4. 数组arr,设置一个key,arr["sort"] = "test",遭遇错误,如何提供替代方式
    5. 在flash player激活的时候给舞台上Object设置focus

    有兴趣的话,帮忙回答下。

    更多:Flex 奇怪需求一览 - [技术]
    凯文 发表于18:33:42 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Flex-用Timer制作一个码表(计数器) - [技术]

    2009-11-03 | 计时器 flex timer

    马上要用到这个Timer,本来想去找现成的,不过发现现成的计时器不多,于是自己做了一个。看效果

    搞了半天,还是有bug,不过不是TimeComputer.as的错,那就算了吧,大家将就看着

    看源文件

    更多:Flex-用Timer制作一个码表(计数器) - [技术]
    凯文 发表于15:48:05 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Flex -Flickr API Test Panel - [技术]

    2009-10-29 | flickr api test call flex

    做了一个panel来测试Flickr API的调用,这次没有用现成的类库,自己重新做了一个,这个panel可以很好地让你了解Flickr API的步骤,以下做个小说明

     

    1. 第一个需要你输入你的api_key和secret
    2. 选择生成新的frob,生成的frob会出现在新打开的网页url中
    3. 把url的frob取出,输入Frob框
    4. 下一步,程序会自动获取token
    5. 基于xml配置生成方法列表
    6. 同样根据xml的配置生成参数输入框。
    7. 所有的调用结果都在console中出现
    点这里看这个小panel(chrome不支持直接打开?)
    源代码在这里

     

    更多:Flex -Flickr API Test Panel - [技术]
    凯文 发表于23:20:54 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Flex - 3维物理引擎 Jiglibflash 3d physic engine - [技术]

    2009-10-09 | jiglibflash flex physic engine

    突然间发现的

    3维物理引擎 Jiglibflash 3d physic engine

     

    更多:Flex - 3维物理引擎 Jiglibflash 3d physic engine - [技术]
    凯文 发表于16:43:45 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Away3D利器-Prefab3D 1.0 - [技术]

    2009-09-17 | away3d flex prefab3d VizualPV3D

    Prefab3D 1.0是为Away3D而开发的一个图形化编辑器,不过目前还在开发阶段,不是很完整,拭目以待。

    另外也不能忽略了专门为PV3D VizualPV3D。

    可惜现在没有时间去试用他们.....

    更多:Away3D利器-Prefab3D 1.0 - [技术]
    凯文 发表于15:56:46 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Flex - 摘要 - [技术]

    2009-09-15 | flex as3dmod wave

    Sean Moore在Round up of ActionScript 3.0 and Flex optimization techniques and practices中总结了很多提高性能的方法。

    Theresa Neil 在50 Most Usable RIAs 一文中提到6个RIA的原则

    1. 直接,"Where there is output, let there be input"
    2. 轻量
    3. 同一页面完成所需功能
    4. 提供邀请/提示信息
    5. 使用渐变
    6. 立即反应,异步,不中断用户体验

     as3dmod用来模拟wave比较好。可以到everyday flash上去看他的教程

    更多:Flex - 摘要 - [技术]
    凯文 发表于10:22:59 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Flex - 如何获取TextArea中的行数

    2009-09-14 | flex textarea lines

    private function updateStats(evt:Event):void {
    	var nLines:uint = textArea.mx_internal::getTextField().numLines;
    	var nChars:uint = textArea.length;
    	var str:String = "{0} characters; {1} lines";
    }
    

    原文参考

    更多:Flex - 如何获取TextArea中的行数
    凯文 发表于22:28:32 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Away3D中LineSegment的使用 - [技术]

    2009-09-07 | Flex Away3D

    private function generatePath():void
    {
    	var i:int = 0 ;
    	var prePos:Vertex = new Vertex(0,0,0);
    	//var mat:WireframeMaterial = new WireframeMaterial(0xff0000,{width:4});
    	for (i;i<100;i++){
    		
    		var line:LineSegment = new LineSegment({edge:400,width:1000});
    		line.start =  prePos;
    		prePos.add(new Number3D(60*Math.random(),30*Math.random(),50*Math.random()));
    		line.end =  prePos;
    		scene.addChild(line);
    	}
    
    	
    }
    

    这样看起来就是一个弯曲的路径,看例子。或者source code,3D引擎是用Away3D的官网

     

    更多:Away3D中LineSegment的使用 - [技术]
    凯文 发表于17:25:25 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Flex-让Alpha透明度设置作用于Text,Label控件 - [技术]

    2009-09-03 | Flex textfield alpha transparent 透明度设置

    Text Field透明度的问题困扰我许久,今天终于在flashyiyi那里找到了答案。

    解决方案是设置TextField.blendMode = BlendMode.LAYER.

    看一下示例

    可以看到BlendMode.NORMAL图片可以正常隐藏,而文字不能,但是BlendMode.LAYER下两者都正常。

    源文件

    更多:Flex-让Alpha透明度设置作用于Text,Label控件 - [技术]
    凯文 发表于12:18:43 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • Flex - Array 和ArrayCollection的性能比较 - [技术]

    2009-09-02 | Flex Array ArrayCollection Performance 性能

    一直想,写程序的时候要用Array呢还是ArrayCollection,array方法少,用起来不方便,从开发方便的角度来看要比ac好,但是效率方面怎么样呢?于是做了一个小程序验证一下。

    结论是:Array优于ArrayCollection,从测试结果平均看来,AC的效率是随着object的数目呈线性下降的,Orz,而Array则是体现了优异的效率,在object增加的情况下,基本上没有太大的变化。所以如果在你需要遍历所有元素的情况下(比如说物理引擎,3D引擎等),Array是不错的选择

    ArrayCollection(以下简称AC)应该是包装了Array的Wrapper,支持事件机制,你在对ArrayCollection中的对象进行增加删除更新操作时ArrayCollection会产生事件,可以通过collectionchange事件监听,所以在图表开发中都用ArrayCollection做数据源,一旦有更新,就会反映在图标上

    既然如此,那么AC的效率肯定要比原生的Array要差的咯。下面的图表验证了这点。

    程序会自动往Array和AC里面添加一定数量的Object{test:"hello"},(从零开始,每次递增1或者(总数/10),一直到你的输入的数值)。默认是1000个Object。

    图表横轴是添加的Object的数量,纵轴Y是时间。

    有兴趣的话,看看源代码

    更多:Flex - Array 和ArrayCollection的性能比较 - [技术]
    凯文 发表于15:13:34 | 阅读全文 | 评论 0 | 编辑 | 分享 0
  • 追不上的sword大人 - [技术]

    2009-08-31 | flex sword game physical

    上次sword建议把链接的文字改得明显一点,在此谢谢sword大人的建议。

    最近在研究flex的physical simulation,于是做了这个游戏,想给sword大人,也自己娱乐下。

    操作很简单,上下左右,目的就是为了追上去kiss sword大人哈哈

    这里开始kisss

    有兴趣可以看看这个源文件。

    更多:追不上的sword大人 - [技术]
    凯文 发表于16:48:41 | 阅读全文 | 评论 1 | 引用1 | 编辑 | 分享 0
共2页 1 2 下一页 最后一页

我的资料

凯文

一旦发疯的投入工作之中,对某个目标有强烈的渴望,就会在脑海里形成一个意象,身边的任何一个新发生都会坚定地指向那个意向,这时,神灵就会给你一把照亮前途的火炬,智慧之井就会向你洞开

文章分类

  • 管理[3]
  • 工具[7]
  • 创业[9]
  • 企业[6]
  • 商业[10]
  • 思考[24]
  • 乱弹[12]
  • 成长[41]
  • 技术[87]
  • 人工智能[13]
  • 牛a和牛c之间[16]
  • 达尔文教义[33]
  • 摄影[1]
  • 转载[12]
  • 旅游[3]
  • 草泥马[10]
  • 画画[2]
  • 记事[67]
  • Great Mind[9]
  • 国[16]
  • 文化[11]
  • 科学[26]
  • 数学[2]
  • 我的话[6]
  • 读书[6]

Tag

  • flex[40]
  • 美国[29]
  • 科学[26]
  • 人类[24]
  • 工程[19]
More..

最新文章

  • 关于视觉人工智能的例子
  • 美国精神- 听从自己内心的愿望,让内心指引方向
  • 美妙的旧金山之旅
  • 老婆回去了
  • When Jobs is Gone
  • 快要扛不住了
  • 同样的节日,不同的日子
  • 给老婆的照片
  • 为什么不当个程序员
  • 黑客与画家 摘录
全部日志>>

链接

  • yupoo
  • infoq
  • osflash
  • Flash Bookmarks
  • wolfram mathworld
  • Sword
  • flashandmath.com

管理

  • 进入后台 写新日志
  • 文章管理 评论管理
  • 更换模板 访问统计
Copyright © 2002-2009 Beherca.com, All Rights Reserved. 版权所有
Author By Beherca 浙ICP备09056413号