Archive for July, 2007

Blog坏了几天
Thursday, July 26th, 2007

前几天有门课程让做一个简单的mashup,我就准备在自己这个网站上搞,结果不小心把WordPress的文件全删除了,所以挂了好几天。

今天恢复了,不知道有什么问题没有。顺便用上了最新的WordPress 2.2.1,现在没有加任何插件,主题也很干净。

对了,那个简单的Mashup,在地图上显示你IP的对应位置:http://www.qingbo.org/map/。非常简单,其实是受别人的启发:)

快回家了
Saturday, July 21st, 2007

忙得连写blog的时间都没了,呵呵,回家可以放松一下。家里和北京完全是两个世界,没什么压力。

准备坐个D车回去,虽然贵了点,不过到保定这么一段距离,也贵不到哪里去,哈哈,体验一下。

其实还有十几天才回去,明天去送人,顺带把票买了。

上完的课还有没交的作业,考完的课还有没出来的分数,实验室有没完成的工作,还有。。。更重要的事情

AS3如何fade文本(text)?
Sunday, July 8th, 2007

fade文本的效果在很多时候是需要的,但初试时总不成功。找到的答案是,文本必须是static,或者如果文本是dynamic的话,必须embed字体进去。

在Adobe的这篇文章里,讲到了如何在Flash中潜入字体,末尾还给了一个利用Tween类做Fading的例子,然而文中似乎并没有提到只有潜入了字体才可以做这样的Fading

Flash中如何让一个Label使用手形光标?
Sunday, July 8th, 2007

原来光label.useHandCursor = true;还不够,要加下面两条语句:
label.mouseChildren = false;
label.buttonMode = true;

AS3的Dictionary是个好东西
Sunday, July 8th, 2007

最近在学习Flash的简单东西。为了数据和表现的分离,我把读取数据的代码做成一个类,跟显示数据的控件分开。

在第一帧的AS中,将一个数组的数据用循环显示到控件上,控件也是一个数组。但是,如果要给控件加上事件处理,比如点击,在处理函数中想获得数据,怎么办呢?

最直接的办法是用Array.indexOf()函数取得控件在数组中的下标,然后再取数据数组中的对应下标的元素,不是太好。

本来我是想在控件中找类似“setAttribute/getAttribute”的函数的(Java的HttpServletRequest有get/setAttribute,另外Eclipse JDT的编译器语法结构类都有get/setProperty:) )。后来发现了帮助中在讲Array时提到两种,一种indexed,一种associative,后者就是Dictionary。

你可以写,

var map:Dictionary = new Dictionary();
map[displayObject] = data;

在event handler里,map[e.target]就可以取得对应数据了。嗯,也可以叫做Map

FCKEditor的Packager
Saturday, July 7th, 2007

FCKEditor的js很大,它特意提供了一个packager来压缩。

FCKEditor的下载页提供了最新2.4.3版的下载,包括源代码及压缩过的代码。然而当我改动了JS想重新打包的时候问题来了,从同一下载页下载到的FCKEditor.Packager却不能使用,报错说找不到_packager.xml。搞笑的是那个下载的下面还提示2.4以前版本的Packager请到某某地下载。

最后浏览FCKEditor的Trac站点终于找到了想要的东西,下载地址

把它放在FCKEditor的目录下(和editor和_samples两个目录在同一层)运行即可。

Visual C++ 2005, ArcGIS Engine 9.2, ATL对话框程序
Friday, July 6th, 2007

首先向还在被迫学习或使用MFC、ATL之类代表原始社会生产力的工具的同志们道一声,你们辛苦了!

我郁闷了好长时间才把一个使用ArcGIS Engine的ATL程序弄起来。把详细过程分享出来,避免像我一样不熟悉ATL/COM的人走弯路。ArcGIS可以用C#或Java开发,但有时候你不能自己决定。

准备工作:

  1. Ctrl+Shift+N,New Project
  2. 选择Visual C++下的ATL,在右侧选择ATL Project,在Name栏填写project name,ATLDialog,OK
  3. 在随即出现的ATL Project Wizard里,选择“Application Settings”,Server Type选择Executable,点击Finish
  4. 项目已经生成。在Class View中,右击ATLDialog,Add=>Class
  5. 在Add Class对话框中,选择ATL Dialog,点击Add。接下来的ATL Dialog Wizard中,在Short name中填写TestDialog,点击Finish
  6. 向导已经为我们生成了一个ATL对话框的框架。

试一下吧。在文件ATLDialog.cpp中,找到_tWinMain函数,在前面添加代码:

CTestDialog dlg;
dlg.DoModal();

并且在前面要包含我们对话框的声明:#include “TestDialog.h”
按下F7,编译结束后对话框弹出了,按下OK,程序正常结束。

接下来,我们就可以在此基础上加上ArcGIS的控件了(给地图控件加一个点击事件处理)。

  1. Resource View中,ATLDialog->ATLDialog.rc->Dialog->IDD_TESTDIALOG,打开对话框编辑窗口
  2. 对话框稍微拉大点,右键->Insert ActiveX Control。在弹出的框中选择ESRI MapControl,同样方法加入ESRI LicenseControl
  3. 调整好MapControl的大小位置后,右键->Add Event Handler
  4. 弹出的向导中,选择CTestDialog类,Message Type选择OnMouseUp,点击Add and Edit
  5. 输入代码:

    IMapControl3Ptr ipMapControl;
    GetDlgControl(IDC_MAPCONTROL1, IID_IMapControl3, (void**) &ipMapControl);
    ipMapControl->AboutBox();

  6. 关键时刻来了。IMapControl3Ptr这些接口的定义在哪里呢?不要试图在ArcGIS的VC++ Help for VS2005中找到答案,它会让你郁闷几天的。
    在stdafx.h中找到#include <atlcom.h>这行,把它替换成下面的代码(根据你的ArcGIS安装位置更改):

    #define ISegment IMSSegment
    #include <atlcom.h>
    #include <atlwin.h>
    #undef ISegment

    #include “C:\Program Files\ArcGIS\include\CPPAPI\SDK_Windows.h”

  7. 按下F7,对话框又出现了,并且有淡蓝色背景的地图控件,在上面点右键,ESRI的授权声明就跳出来了。

ArcGIS的文档里,我没有发现有关于如何解决ISegment重复定义的介绍。而且文档中也没有提到SDK_Windows.h这个文件,只说那些控件的定义应该如何去导入,很繁琐,其实包含这个文件就可以了。

好了,有了这个基础,其它的翻翻文档和Sample应该就问题不大了,你可以试试加载一幅地图进来。

迷茫的一代啊
Sunday, July 1st, 2007

我也是这一代人中的一个。

光公布出来的数据,跳楼自杀的就数不清了,一定还有一些死在宿舍里没有张扬出来的,我就知道一个在宿舍割腕自杀的。

今天有个老乡发短信说她学校有个人跳湖自尽了。我去过那个学校,很漂亮,湖上有漂亮的桥,多可惜,漂亮的景色有了令人生畏的死亡气息。

大一时我苦学了不到半年,就开始想每天晚睡早起学那些东西到底是为了什么。后来我不学了,在牛人如林的班里很快落后,于是转系。曾经非常堕落,堕落的时候也非常懊悔,但就是不知道该做什么。找信任的老师谈话,找学校的心理老师谈,找关系好的同学谈。再后来面临读研和工作选择时又迷茫,到底是该工作为家里减轻负担呢,还是该继续躲在学校这个温室(或者说棺材,如果你不经常挣扎的话)里呢?因为对社会的恐惧,我选择了后者。前段时间,又在彷徨,到底是该退学,离开这个垃圾坑呢,还是混两年,拿到那张明明是废纸却被人看作是人才的第一标准的文凭?我又选择了后者。非常感谢在这些迷茫的时候听我诉说给我建议的朋友和老师。

当然,自杀对自己来说没有什么好坏。如果真的没有灵魂,死去后万事结束,世界也就没了,一切消失,有什么好有什么坏?人不是为自己活的,有许多人在乎你。父母花了多少心血把我们养了这么大,一瞬间,他们的付出全成了空。

记得有一次有同学发给我一个类似点名的消息,他说他也想到过自杀。我也想到过自杀,但是没想到他也有过这种念头。看来人人都有难过的时候。在想到自杀的时候,多找人谈谈吧,尽管最后还得靠自己解决,至少你会知道有人关心你,在意你。

这个社会的大部分不会在乎我们有没有信仰。他们以盈利为第一目的,甚至利用我们的迷茫。于是湖南卫视才会发财,捧出了几个缺少应有能力甚至不可想象的明星。在这样的时代里,文化也会腐朽。

上午听到有人跳湖的消息,下午看到SillySnail写的文章,感叹感叹。