2008年7月 的存档

感谢朋友们的意见和建议!

电介质 发布于 2008年07月27日 星期天

前几天做了个海词(DICT.CN)的Adobe AIR版 ,在网上征求了一些网友和朋友的意见和建议,网友和朋友都非常热心,给了不少好的建议,在此对他们表示感谢,尤其是Nick、蓝色理想论坛的我是7Yue,还有Ethan.Du。谢谢了,朋友!:)

根据他们的建议我做了些小的改动,主要改动如下:

    1、只开一个翻译窗口
    2、加入了浮动窗隐藏的选项-在菜单中控制
    3、增加了关闭自动播放语音的选项-在菜单中控制
    4、点击系统托盘图标,自动显示翻译窗口,如果有拷贝单词,则同时查询单词
    5、菜单加了分割线,显示更清楚了
    6、其他一些小的细节改动

以在这个地址直接下载安装:

http://flash.moligu.com/wp-content/uploads/2008/07/mydict1.air

也可以上这个页面,在线安装。

文章分类: 未分类 ->1 条评论 »

海词(DICT.CN)的Adobe AIR版

电介质 发布于 2008年07月22日 星期二

Please upgrade your Flash Player This is the content that would be shown if the user does not have Flash Player 9.0.115 or higher installed.

最近研究Adobe AIR ,看英文文档,时常要用词典查词,喜欢用海词(dict.cn),但使用web用起来感觉不方便,于是做了个海词(DICT.CN)的Adobe AIR版客户端,周围没有苹果的Mac OS X操作系统,所以还没在苹果的平台下测试。麻烦有的朋友帮忙测试一下。

上面的web在线无缝安装,可能因为国外的服务器会比较慢,可以刷新下试试;也可以直接下载,需要安装Adobe AIR运行时

目前的Adobe AIR技术还没法做到像金山词霸那样的屏幕取词功能,目前只支持拖拽取词,和剪贴板取词,具体使用参看:myDict使用帮助
关于myDict
不是美工出身,在界面设计上花了不少时间,自己还算满意:)

这个在线词典主要应用到了Adobe AIR的下列技术手段:
拖拽管理、本地窗口、系统托盘、剪贴板、本地菜单等等,其他为as3技术,如xml解析。

这个小词典,我还会不断完善(一是自己要用,二也分享给需要的朋友们),希望朋友们试用,多提宝贵意见和建议:)

下一步主要会增加历史查询的存储和翻阅。

文章分类: AIR ->9 条评论 »

关于Adobe AIR的无缝安装

电介质 发布于 2008年07月19日 星期六

web页上的无缝安装,是Adobe AIR从技术角度促进推广的一个有效手段,通过Adobe AIR的这一无缝安装技术,可以在web页面上检测安装Adobe AIR运行时、Adobe AIR应用程序,以及启动运行Adobe AIR应用程序。

要使用这一技术,首先需要flash player要在版本9以上,在web页执行AIR应用无缝安装的swf文件,是通过调用Adobe官方提供,一个air.swf文件(http://airdownload.adobe.com/air/browserapi/air.swf)中的API来实现的这些功能的。

在Adobe AIR的SDK里提供了一个例子源代码:badge其中包括fla,as,js和html文件,核心代码就是as了,js是为了在html页里嵌入swf文件。

这个例子,只提供了从web安装Adobe AIR运行时和Adobe AIR应用程序的功能,需要提供的参数中要注意的是,appurl必须是绝对地址,而不能是相对地址,就是类似”http://domain.com/youair.air”的形式。

网上流传的另外一个AIRInstallBadge.swf则提供了全部的Adobe AIR无缝功能。其中另外需要提供的参数,包括Adobe AIR应用程序ID参数appid和发布者ID参数pubid。Adobe AIR应用程序ID,是在Adobe AIR应用程序描述文件里指明的,形如com.adobe.example.myTest,发布者ID则是在Adobe AIR程序打包发布时生成的,一般可以在安装后的Adobe AIR应用程序目录的META-INF\AIR目录下,看到publisherid文件,用记事本打开里面的字符串就是。这两个参数是用于确定Adobe AIR程序是否被安装,已经启动运行Adobe AIR程序所必须的。

另外如果开发者想要Adobe AIR程序可以从web启动运行,则必须将Adobe AIR程序描述文件的allowBrowserInvocation(运行浏览器调用)元素设为true。

文章分类: AIR ->发表评论 »

关于Adobe AIR跨平台的透明开发问题

电介质 发布于 2008年07月06日 星期天

Adobe AIR程序可以跨平台运行的特性,是其优势之一,虽然目前只能在Mac、windows上,但linux环境也会很快被支持,已经在开发进程当中。

对于开发者来说,跨平台开发的代码透明是最理想的了,但是由于操作系统的管理方式的差异,要做到完全透明是不易的甚至有时是不可能的,今天看了Adobe 官方的一个例子,知道至少下面的一些问题是需要开发者去分别为不同平台去处理的。

对于Mac是Dock Icons(停靠图标),对于windows是System tray icons(系统托盘图标);对mac和windows都使用过人人,应该知道他们的区别。在Adobe AIR开发中就需要针对这两个的区别分别处理,例子代码如下:

if(NativeApplication.supportsDockIcon){
var dockIcon:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, undock);
dockIcon.menu = createIconMenu();
} else if (NativeApplication.supportsSystemTrayIcon){
var sysTrayIcon:SystemTrayIcon =
NativeApplication.nativeApplication.icon as SystemTrayIcon;
sysTrayIcon.tooltip = “Stopwatch”;
sysTrayIcon.addEventListener(MouseEvent.CLICK,undock);
sysTrayIcon.menu = createIconMenu();
}

这个例子代码通过在运行时判断是否支持Dock Icons和System tray icons,来分别用不同的代码段处理Adobe AIR应用程序的两个平台图标的显示、事件监听、和菜单创建。将NativeApplication.nativeApplication.icon 根据平台支持情况分别作为DockIcon和SystemTrayIcon,来分别处理调用,事件监听和菜单创建,在Windows下还有SystemTrayIcon的工具条提示信息的设置。

另外就是对于用户通知当前Adobe AIR应用程序有事件发生的处理,在Mac OS X,Dock Icon能被用来通知有事件发生,而windows下采用的是另外一套方案,可以通过改变system tray icon的图像,或弹出一个窗口消息。在窗口层面的的事件通知功能,是用一个当前应用程序窗口的任务栏按钮的闪动来实现,以吸引用户去点击按钮,查看窗口事件。因此对于此类消息事件通知的开发,同样需要两套不同的代码支持,例子代码如下:

if(NativeApplication.supportsDockIcon){
        var dock:DockIcon = NativeApplication.nativeApplication.icon as DockIcon;
        dock.bounce(NotificationType.CRITICAL);
    } else if (NativeApplication.supportsSystemTrayIcon){
        stage.nativeWindow.notifyUser(NotificationType.CRITICAL);
    }

这个例子代码根据操作系统的支持情况分别调用DockIcon.bounce()NativeWindow.notifyUser()两个函数来处理,提示通知。

对于将来的linux下的支持,我想linux下的支持方式应该是类似windows的SystemTrayIcon方式,不应该再出来另外一种情况的单独处理判断了吧。

文章分类: AIR ->1 条评论 »