About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • 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

    Oct

    14

    Xcode 编译时报错:No code signing identities found

    heck dependencies

    Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) matching the team ID “XXXXXXX” were found.

    CodeSign error: code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 8.1'

    先确认开发者证书是否已经安装;如果安装了还报错,就将钥匙管理器里旧证书先删了,重新安装。

    Oct

    14

    全新安装的XCode 6.4 在创建静态库(static library)时如果选择的虚拟设备,提示创建成功,但文件名称在 Products 目下显示依然是红色的,如果右键选择 Show in Finder,也是无法直接跳转到该文件的。Google 了一下之后发现在 6.1 版时就已经存在这个问题。

    简单的方法:先以 iOS Device 创建一次,然后可以在右键 Show in Finder 里找到静态 .a 文件,而此后虚拟设备创建成功时,它就在 Debug-iphoneos 同父级的目录下 Debug-iphonesimulator。

    Oct

    13

    安装 xcode 时提示先关闭 itunes

    • 0 Comments
    • Miscellaneous

    安装 xcode 时提示:in order to continue installation,please close the following application ,然后列表中出现一个 itunes 进程,但事实上并没有运行 itunes。

    应用程序 - 实用工具 - 活动监视器 把 ituneshelper 强制结束就可以了。

    Oct

    13

    iOS ANE 制作过程中的 .a 静态库文件是必须使用 XCode 来编译生成的,所以 OC 相关的基础资料还是要花个几十分钟了解一下。否则既便从 gitHub 上下载到了 ANE 项目源码,也不知道文件放在哪里,想要或多或少修改一下类名或方法名都不知道怎么改,那就比较痛苦了。

    以下这几篇是我觉的看的过程中觉的最简单的 OC 入门资料了。

    1、OC:Clang 编译器编译OC代码(可以忽略不看,只要了解 Clang 是个编译器的名称就可以了)

    2、OC:基本数据类型(粗略看一下,反正每个编程语言的基本数据类型大同小异)

    3、OC:类的定义必看的

    4、OC:成员变量、方法必看的

    5、OC:属性必看的

    6、OC:内存管理粗略看一下)

    7、OC:集合类(暂时没看,将来如果有一天我学 OC 的话一定会看的)

    PS:不过我想不会有那一天了  ,因为我只想学 swift 。

    以下这两篇和上面的差不多,比较容易看懂的入门级 OC 资料。

    1、iOS开发系列—Objective-C之基础概览

    2、iOS开发系列--Objective-C之类和对象

    ……(省略了很多)

    3、iOS开发系列—Objective-C之Foundation框架

    Oct

    13

    OC:成员变量、方法

    • 0 Comments
    • Objective-C

    OC 类的成员变量、方法、修饰词、修饰符号、占位符、调用方法过程说明。

    原文链接http://www.jianshu.com/p/67e2766b53f7

    More...