About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Nov

    16

    我挺讨厌 Creative Cloud 这个东西的,每次下载和安装非常的慢,而且不能备份安装程序本身,每次重装系统后又得重新下载和安装,而且是完全捆绑式的安装非常令人反感。偶然看到这个页面《Creative Cloud 2015 Downloads: Adobe CC 2015 Direct Links / Trials》,我收藏一下先。

    必须使用迅雷下载

    原文链接http://prodesigntools.com/adobe-cc-2015-direct-download-links.html

    More...

    Nov

    10

    自定义函数的参数是array、point等类型时不能指定默认值。比如:

    var a: Array = [123];
    function test(b: Array = [120])
    {
     trace('b:' + b);
    }
    test(a);
    trace("Rarray:" + a);

    上面这个代码编译时就会报错:参数初始值设定项未知或不是编译时常数。改成下面这样子就可以了:

    var a: Array = [123];
    function test(b: Array = null) {
     if (== null) b = [120];
     trace('b:' + b);
    }
    test(a);
    trace("Rarray:" + a);

    Nov

    8

    1、按下 Ctrl + ` 组合键,输入以下代码,并回车:

    import urllib2,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp)else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ''%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf)'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')

    2、重启 Sublime Text。

    3、使用 Ctrl + Shift + P 打开命令行模式,在里面输入“Install Package” 即可搜索需要的 Package。

    4、输入选择 ConvertToUTF8 后,再次重启 Sublime Text,就可以解决中文乱码的问题。

    Nov

    3

    API 手册中写的是:

    注意:当在 Mac® OS X 上选择并打开多个文件时,AIR 将调度单个 invoke 事件,该事件在 arguments 数组中包含所有所选文件的名称。但是,在 Windows ® 和 Linux 中,AIR 将为 arguments 数组中只包含该文件名的每个所选文件调度一个单独的 invoke 事件。

    这句话前半句对 MAC 写的很清晰,但后半句对 Windows ® 和 Linux 写的很含糊。

    举个例子:AIR 程序先关联某个后缀名,然后同时选中两个文件后,右键菜单中选择“打开”。当应用程序启动后就会发生 invoke 事件,但 MAC 和 WIN 上各有区别。

    虽然选中了两个文件,但在 MAC 上只会调用一次 invoke 事件,在 arguments 数组参数中包含两个元素,分别是对应的两个文件名(请注意是文件名类型是 String,不是文件 File 类型)。而在 WIN 系统里,两个文件在同一个应用里会产生两次 invoke 事件,并且 arguments 数组长度为 1,也就是数组元素永远只包含 1 个元素

    Nov

    1

    Flex MXML 花括号绑定语法在编写程序时非常方便,可以省去大量的编码工作,让编译器自动完成。在使用列表类组件时,有时会遇到这样的提示:数据绑定将无法检测对“length”的指定。虽然它不会影响最终结果,但在调试和发布时都会遇到警告。

    比如,有一个按钮只想在列表类组件选中一行时启用,在未选中或多选几行时禁用,虽然可以这么写:

    //它会产生一个警告:数据绑定将无法检测对“length”的指定
    enabled="{Boolean(dg.selectedItems.length == 1)}"

    从 API 手册中可以查到 selectedItems 可以用于绑定操作,但它是一个 Array 对象,而 Array 的 length 属性并不可以用于绑定操作。需要作一些修改: 

    //这样世界就安静了
    enabled="{Boolean(new ArrayList(dg.selectedItems).length == 1)}"

    因为 API 手册中写了 ArrayList 的 length 属性可以用于绑定操作。

    Oct

    31

    比较通用,反正 AS、JS 之类的都差不多语法。

    static public function randomAccountString(_len:uint):String
    {
        //帐号一般第一个字母不能为数字
        var charsForFirstChar:String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

        var firstChar:String = charsForFirstChar.charAt(uint(Math.random() * charsForFirstChar.length));

        var chars:String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

        var randomChar:String = "";

        for (var i:Number = 0; i < _len - 1; i++)
        {
            randomChar += chars.charAt(uint(Math.random() * chars.length));
        }

        randomChar = firstChar + randomChar;

        return randomChar;
    }


    static public function randomPasswordString(_len:uint):String
    {
        //密码往往是区分大小写的,并且允许使用一些特殊符号
        var chars:String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,[]{}!@#$%&*()_-+=";

        var randomChar:String = "";

        for (var i:Number = 0; i < _len; i++)
        {
            randomChar += chars.charAt(uint(Math.random() * chars.length));
        }

        return randomChar;
    }

    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;
     }
    }

    Oct

    19

    偶然看到,收藏一下先:https://github.com/mindjolt/starling-builder-editor

    Oct

    19

    作为一名纯粹的 AS3 开发者,想要使用第三方平台的功能,总是会涉及到原生的 SDK  觉的很是坑爹,因为很少有平台会直接提供 ANE 文件给 AS3 开发者使用(尽管 GitHub 上有很多开源项目可以下载到源文件,但因为 ANE 太旧不支持 64 位或第三方的 SDK 太旧需要重新替换)。如果已经了解了安卓 ANE 的制作流程,那么基本上也就了解 iOS ANE 的制作流程了,但却又与安卓的 ANE 有很大的不同之处。

    最大的不同之处就是 Xcode 和 OC。如果已经了解了 Flash Builder(简称 FB),那么既便是零基础 ADT Bundle 用户第一次安装也会觉的有点眼熟,毕竟它们都是基于 eclipse 这个环境,知道类文件放在什么位置,第三方库从什么位置引入,并且语法也非常类似,有着相同的“包”的概念。但如果是零基础的 Xcode 用户,第一次安装后那么基本上就傻眼了——

    原本想系统的学习一边 Xcode IDE 环境,在网上找了一遍相关的书籍,基本上都在讲 OC 和 Swift 语言,找不到 Xcode 相关的书籍,唯一能够找到一本中文的书籍是古老的《Xcode 3 高级编程》的译本,看了一天连第3章都没看完,我可耻的放弃了,一是资料过于陈旧, Xcode 6/7 相比之下界面已经有了非常大的变化,二是译者很多口语用的好像都是台湾人的口语,并不是大陆口语习惯(有些句子我甚至读不通),实在看不下去了

    然后直接搜 iOS ANE 相关的教程,基本上找到的还是官方的一些制作教程,都是无关乎 Xcode 和 OC 基础的,搞的 AIR 开发者好像人人都熟悉 Xcode 和 OC 一样,也有非官方的个人博客贴子比如《IOS ANE的坑爹之路(一)》,但是都一样,并没有什么卵用,里面提到了一个“所谓的”有用工具“ANE的XCode模板”,关于它的简单介绍就是“可以省去打包 ANE 手动操作的过程”。我试了在 Xcode7 上运行脚本安装失败了,我猜它是“太老”了,我又重新下载了 Xcode 6.4 版本,再安装,还是失败,我猜它是“太老太老”了……我已经没有耐性再去下载一个更老的版本去测试这个“所谓的”有用工具了,因为在我的心里面已经将它定位成垃圾了,不就是省了一个手动打包的过程么,我在学习制作安卓 ANE 时就已经撑握了。

    对于我的挑战就是成功的制作出静态库 .a 文件发送到 Windows 下。还是直接进入实践了,于是从 Google 开始第一步搜索,如何制作一个 OC 的静态库,代码放在什么位置,啊,为什么没有包的概念,那让我填个公司或组织的反向定义做什么,等等等(不需要等到几年之后再来看这篇贴子,我现在就已经觉的很幼稚了)。同时新建了好几个项目,一边对比一边设置,不管怎么样,终于成功的制作出了 .a 文件,于是便开始了左右开弓,不断的清理,不断的生成,不断的发送到 Windows,不断的打包 ANE,不断的调试,不断的报错,不断的 Google,不断的清理,不断的生成,不断的发送到 Windows,不断的打包 ANE,不断的调试,不断的报错,不断的 Google……幸好买的是两台笔记本可以同时左右开弓操作,如果是两个台机在两个桌子跑来跑去我估计我真的会疯掉的。

    折腾了将近一天之后,当编译器的进度条终于到达 100% 没有报错时,我真想高呼一声 Google 万岁!~

    一篇通用的 64 位 ANE 制作教程《64-bit requirements for iOS apps》。

    PS:XCode 版本必须大于6, iOS SDK 版本必须大于 8,AIR SDK 版本必须大于 16.0

    我不得不说 Adobe 是我见过最好的真正面向全球的国际化公司,无论是 Photoshopw、Illustrator、DreamWeaver、Fireworks、Flash、FlashBuilder、Audition、Premiere 等等我下载过的每一个软件,无论图像、视频、动画、编程工具都提供了国际化的语言,软件从界面,到帮助文件,到 API 手册,甚至到每一个版本的更新说明,都提供了中文本地化,再看看 Xcode 和 Android Studio……我只能叹一口气“唉,英文没学好,怪我喽~”。尽管也有人说微软的产品也提供了全中文化的开发环境和全中文的 API 手册,但我更喜欢 Adobe,因为 AS3 在编程语言排行榜的历史上从来没有进过前10 名,最高一次也只到达过 18,大多时候它都在 30 名以后,有时甚至 50 名开外,它是一个何等小众化的编程语言,却提供了全球化的 API 帮助文档,这才是我喜欢它的地方。

    Oct

    19

    Admob Banner 尺寸与常量

    • 0 Comments
    • Miscellaneous