About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Jan

    21

    在一个简单的 Alert 警告框后,如果想将程序化的设置某个文本输入框的焦点,可以在 Alert 的 CloseEvent 事件侦听器里设置,但那样会多写不少代码。一个小技巧是直接在 Alert 之前对想要设置的文本框调用 setFocus() 方法,就可以在关闭 Alert 后显示聚焦了(不要写在 Alert.show 的后面)。

    someTextInput.setFocus();//一定记得写在Alert前面
    Alert.show("someTextInput 不能为空。");
    //someTextInput.setFocus();//不要写在Alert后面 

    Dec

    11

    Flex 组件:ArdisiaLabs

    • 0 Comments
    • Flash Platform

    QQ 群里偶然看到的一个 Flex 组件 ArdisiaLabs。DEMO 地址:http://www.ardisialabs.com/demo/

    点了 DEMO 看了一下,组件类型挺丰富的,对官方原先的组件功能也有对应的功能上的扩展,而且提供了扁平化的设计风格。感觉上性能比 Flex 版本的 IBM ILOG Elixir Enterprise 组件要好一点,但缺少重量级的组件。

    Nov

    17

    很多链接已经打不开了,很多资料正在流失,仅为了收藏一下。
     

    More...

    Oct

    31

    无论是在 Web 版还是在桌面 AIR 运行时环境,无论是默认的或自定义的项编辑器 itemEditor,都 发现存在这个问题:先让运行时环境失去焦点,然后再让运行时环境重新获得焦点。此时如果 DataGrid 有焦点,并且有项被选中,会发现被选中的项的项编辑器会一闪而过,虽然不影响操作,但有碍视觉效果,尤其是使用一个较大面积的自定义项编辑器时(如果是默认文本项编辑器因为面积很小甚至很难注意到它)。可以用如下方法处理:

    定义一个变量 canEnabledItemEdit 默认值为 true, 表示默认情况下允许点击单元格后自动使用项编辑器。但需要通过对 itemEditBeginning 事件加以验证:

    private function itemEditBeginningHandler(e:DataGridEvent):void
    {
      if(!canEnabledItemEdit)
     {
      e.stopImmediatePropagation();
      e.preventDefault();
     } 
    }

    与之对应的在运行时失去和获得焦点时设置 canEnabledItemEdit 的值: 

    //假装很高级的省略了一些包与类相关的代码
    NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, deactiveHandler);
    NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, activeHandler);

    private function deactiveHandler(e:Event):void
    {
     canEnabledItemEdit = false;
    }

    private function activeHandler(e:Event):void
    {
     this.callLater(callLaterHandler);
     
     function callLaterHandler():void
     {
      canEnabledItemEdit = true;
     }
    }

    Dec

    25

    原文地址:http://www.rubenswieringa.com/blog/flex-book-component-beta

    原博客主好几年都未更新博客了,将来也许有一天会关闭博客,我先转载过来收藏一下,个人觉的这份 AS3 版本的 Flex 翻页源码非常棒。

    它的主要功能包括:翻页效果、自定义硬翻页或软翻页效果、支持透明页面、锁定页面、撕页效果等等(反正它的原文中都介绍了并且提供了 DEMO 效果)。其中撕页效果非常炫,它能将一个页面像一张纸一样从书籍中撕下来。

    我的翻页日记本程序《Dear Diary - 桫椤札记》用的就是这个翻页引擎。

    源码下载: 翻页效果源码demo.zip

    API 手册:

    http://www.rubenswieringa.com/code/as3/flex/Book/docs/

    http://www.cs.vu.nl/~eliens/assets/apidoc/book/

    More...

    Nov

    15

    这是因为代码中包含了类似 [ResourceBundle("xxxx")] 元标签,而这个标签往往用于指定组件的默认属性。

    举个例子:在 Apache Flex SDK 中,有一个 Spark 版本的 Alert 组件,在编译器设置中 -locale 值如果分别设置为 en_US 和 zh_CN 进行编译,那么它们所编译后的 SWF 文件使用的确认按扭上的文字显示,默认的值分别为 "OK" 和 "确认" 两个字符串。

    所以如果开发者使用的是源文件格式,不要随意的去掉这个[ResourceBundle("xxxx")] 元标签,更不要像网上其它教程所说的去掉 -locale 的指定属性值进行编译,或使用指定一个其它不相关的任意的 *.properties 文件到编译路径中,虽然这些方法能让编译器通过编译,但有可能产生副作用。

    继续以 Apache Spark 版本的 Alert 组件为例:如果开发者将这个 Spark 版本的 Alert 组件源码复制到默认的 Adobe 版本的 Spark 开发环境中去使用,那么它就相当于是一个第三方类库,在 Alert .as 文件中导入相应的类,修改好相应的包名,以及在样式文件中指定好对应的 AlertSkin.mxml 后编译,它就一定会有如下提示: 

    无法为区域设置“en_US”解析资源束“alert”

    如果编译器中设定的  -locale 值为 zh_CN ,那么它会同样换成这个值进行提示。解决这种第三方类库报这样错误的根本解决方法是找到对应的 *_rb.swc 文件,然后将这个 *_rb.swc文件添加到 Flex 项目属性的构建路径的库路径中。在这个例子中就是从 Apache Flex SDK 安装目录中找到 en_US 或 zh_CN 版本的 experimental_rb.swc 文件,它们都被存放在 “apache flex sdk 目录\frameworks\locale“下面。

    同样在使用其它第三方类库时也是相同的解决方法,找到对应的 *_rb.swc 文件。之于它们为什么会被取名为 _rb 后缀,我想大概是因为元标签 ResourceBundle 的名称中两个单词的首字母,所以每个第三方的开发公司就成了一种约定俗成的后缀取名方式。

    Nov

    13

    默认情况下如果直接 new SomeWindow() 生成一个窗口对象(SomeWindow 继承自 Window),并且直接调用它的 open() 方法后,它在打开时的坐标是随意的,而需求往往可能是新建窗口时的坐标要随着父窗口居中显示。

    我们可以通过在 windowComplete 事件侦听器中可以重新定位它的坐标,但由于整个窗口初始化从添加到舞台,到窗口大小的变化,再到整个 windowComplete 事件的发生都是异步的,并且由于 Flex 采用延迟刷新的方式,在 new 一个新窗口生成到它被定位,整个窗口会有一个视觉上的瑕疵:它看起来像是一个窗口在生成后从一个坐标突然跳到了另一个位置(很突兀)。

    所以一种比较好的方式是先将它的 visible 属性设为 false,样例代码:

    //在调用位置直接将它设为false
    var win:SomeWindow= new SomeWindow();
    win.open();
    win.visible = false;

    然后在 SomeWindow 窗口内部重现它(以顶级窗口作为居中参考对象),nice:

    private function windowCompleteHandler(event:AIREvent):void
    {
        var _win:NativeWindow = FlexGlobals.topLevelApplication.nativeWindow;

        this.nativeWindow.x = _win.x + ((_win.width - this.nativeWindow.width) >> 1);
        this.nativeWindow.y = _win.y + ((_win.height - this.nativeWindow.height) >> 1);

        this.visible = true;
        this.activate();
    }

    Aug

    31

    Apache Flex TourDeFlex 1.0

    • 0 Comments
    • Flash Platform

    在线演示:http://flex.apache.org/tourdeflex/index.html

    源码下载:http://www.apache.org/dyn/closer.cgi/flex/tourdeflex/1.0

    从这个 Apache 最新版本的 TourDeFlex 1.0 中可以看到什么验证器、格式化器仍然全部都是 MX 的。非可视化类没有被做成 Spark 版本也就算了,当初 Flex 标准版和专业版最大的区别是图表类,居然也没有被做成 Spark 版本;从 Adobe 捐赠给 Apache 到现在冒似已经过了二年有余了,居然连最常用的 Alert、Tree、Accordion 等组件居然也没有对应的 Spark 版本,而应用中常用的 NumericStepper、TextInput 在不同环境中的常见 Bug 也未得到修复。真是 Shit !

    这么久连个 Alert 都不给做,还指望 Apache 去做类似支持表头分组,跨行、跨单元格、合并单元格等功能的重量级组件 AdvancedDataGrid ?新组件就更不要提了,唉,洗洗早点睡了吧。。。

    Jun

    2

    Flex 中 CSS 样式选择器的使用

    • 0 Comments
    • Flash Platform

    Flex 4.5 以后的版本中 CSS 样式选择器的举例说明(标签选择器、类别选择器、ID选择器、交集选择器、并集选择器、后代选择器、全局选择器、伪类等)。

    More...

    May

    23

    Adobe Scout 相关资料

    • 0 Comments
    • Flash Platform