A Man for All Seasons

刚才翻译一篇关于正则表达式的文章的时候,听到了这首《A Man for All Seasons》,这个是憨豆特派员的主题区,还有一首插曲《does your mother know》(就是电影最后放错的光盘里面憨豆载歌载舞的那一段的配乐)。但是个人还是喜欢这首a man for all seasons。
非常打动我的就是那句
The more you see the less you know
还有那句反复出现的
Loves them and leaves them alone, so alone

我有搜索到中文歌词,个人觉得中文歌词非常符合电影的主题,但是如果单独听歌曲的话,感觉就不太一样:
http://zhidao.baidu.com/question/28409072.html?si=4

link的修改

看了一下上一篇文章竟然是去年写的...
一年多没有整理blog,今天上来先把link重新做了一下,去掉一些打不开的连接(原来还有人比我可怜,一年之内连blog都消失了)。
别人告诉我说swf规范都更新了,我还在这里贴自己很久很久以前翻译的过时文章,多少有些失落的说。

【翻译】SWF结构规范第四章:显示列表(六)

RemoveObject
RemoveObject标签从显示列表移除指定的角色(在指定的深度)。
所支持的最小文件版本是SWF 1。
RemoveObject
字段 类型 注释
Header RECORDHEADER 标签类型=5
CharacterId UI16 被移除角色的ID
Depth UI16 角色的深度
RemoveObject2
RemoveObject2标签从显示列表移除指定深度的角色。
所支持的最小文件版本是SWF 3。
RemoveObject2
字段 类型 注释
Header RECORDHEADER 标签类型=25
Depth UI16 角色的深度
ShowFrame
ShowFrame标签通知Flash Player显示列表中的内容。影片在单独的每一帧间是暂停的。
所支持的最小文件版本是SWF 1。
ShowFrame
字段 类型 注释
Header RECORDHEADER 标签类型=1

最近的一点说明

前一段时间因为考试的缘故所以有段时间没有上网,后来又因为考试失利的缘故继续没有上网,后来猛然发现图书下载已经不能用了,再次感谢提供空间的朋友,因为现在没有空间,所以如果哪位朋友需要哪本书请跟我说,并且留下电邮,我会发到您邮箱里面。直到我找到新的空间,重新开放图书下载。感谢朋友们对图书下载的支持。

mc的onKeyDown/onKeyUp事件

我一直在使用下面的代码响应按键:
var obj = new Object();
obj.onKeyDown = function() {
trace("key down");
};
obj.onKeyUp = function() {
trace("key up");
};
Key.addListener(obj)
//你可以把obj换成你喜欢的任何对象
实际上mc就有onKeyDown/onKeyUp事件的。原则上我们可以通过mc.onKeyDown=function(){...}这样的代码来定义mc的onKeyDown事件,根据帮助,这样定义的前提是必须设置焦点在mc上,需要采用下面的代码设置焦点在mc上:
mc.focusEnabled = true;
Selection.setFocus(mc);
这样,所有的代码就变成下面的样子了:
mc.focusEnabled = true;
Selection.setFocus(mc);
mc.onKeyDown=function(){
trace("key down");
}
测试一下,怎么没有效果?我当初就是这样发现他有点问题的。
跟pawaca讨论了一下,经过更深入的测试,我们得出这样的讨论结果:
首先应该肯定mc确实是有onKeyDown/onKeyUp事件的(也就是说帮助上面提供的信息是正确的),那问题出在哪里呢,假如你的计算机也跟我的计算机一样反应迟钝的话,你就会在发布的一瞬间看到黄色的框框(没错,这个黄色的框就是flash里面默认的焦点框),这就是说,焦点实际上也被设置在mc上了(也就是说设置焦点的那两行语句是没有问题的),当你移动鼠标的时候就会发现黄色的焦点框从屏幕消失了,原来鼠标这个东西很特殊,在这个例子里面,鼠标只要一移动就会将焦点从mc“转移”到鼠标上来(pawaca箴言:别相信Selection.getFocus()),当mc失去焦点,mc的onKeyDown/onKeyUp也无法响应了。
建议大家等待flash9的mouseFocus,以便解决这个问题。
测试使用的flash版本:macromedia flash mx 2004 7.0.1试用版
测试使用的flash播放器:flashplayer 8(具体版本我没有看清楚)

【翻译】SWF结构规范第四章:显示列表(五)

ClipEventFlags
CLIPEVENTFLAGS序列指定一个事件处理器运用于的一个或多个精灵的事件。SWF 5以及更早的版本中CLIPEVENTFLAGS占用2字节,SWF 6之后占用4字节...
(more)

【翻译】SWF结构规范第四章:显示列表(四)

ClipEventFlags
CLIPEVENTFLAGS序列指定一个事件处理器运用于的一个或多个精灵的事件。SWF 5以及更早的版本中CLIPEVENTFLAGS占用2字节,SWF 6之后占用4字节... (more)

【翻译】SWF结构规范第四章:显示列表(四)

PlaceObject2
字段 类型 注释
Header RECORDHEADER 标签类型=26
PlaceFlagHasClipActions UB[1] 适用于Flash 5及以后的版本:含有ClipActions字段
(仅用于精灵),否则始终为0
PlaceFlagHasClipDepth UB[1] 有ClipDepth字段
PlaceFlagHasName UB[1] 有Name字段
PlaceFlagHasRatio UB[1] 有Ratio字段
PlaceFlagHasColorTransform UB[1] 有ColorTransform字段
PlaceFlagHasMatrix UB[1] 有Matrix字段
PlaceFlagHasCharacter UB[1] 放置有角色
PlaceFlagMove UB[1] 定义一个被移动的角色
Depth UI16 角色的深度
CharacterId 若PlaceFlagHasCharacter为真,
则类型为UI16 角色ID
Matrix 若PlaceFlagHasMatrix为真,
则类型为UI16 转换矩阵数据
ColorTransform 若PlaceFlagHasColorTransform为真,
则类型为CXFORMWITHALPHA 颜色转换数据
Ratio 若PlaceFlagHasRatio为真,
则类型为UI16
Name 若PlaceFlagHasName为真,
则类型为字符串(STRING) 角色的名称
ClipDepth 若PlaceFlagHasClipDepth为真,
则类型为UI16 影片深度(参看剪辑层)
ClipActions 若PlaceFlagHasClipActions为真,
则类型为CLIPACTIONS 适用于Flash 5及以后的版本:
影片脚本数据

影片脚本仅对被放置的精灵角色有效,它为精灵定义了事件处理器。
CLIPACTIONS
字段 类型 注释
Reserved UI16 必须为0
AllEventFlags CLIPEVENTFLAGS 剪辑脚本中的事件
ClipActionRecords CLIPACTIONRECORD[一个或更多] 单独的事件处理器
ClipActionEndFlag 若SWF版本小于等于5,
则类型为UI16
若SWF版本大于6,
则类型为UI32 必须为0

CLIPACTIONRECORD
字段 类型 注释
EventFlags CLIPEVENTFLAGS 事件处理器运用于的事件
ActionRecordSize UI32 从该字段结束至下一
CLIPACTIONRECORD
(或ClipActionEndFlag)
的字节偏移量
KeyCode 若EventFlags包含
ClipEventKeyPress,
则类型为UI8;
否则没有KeyCode字段 按下的键盘码(参看BUTTONCONDACTION)
Actions ActionRecord[一个或多个]

【翻译】SWF结构规范第四章:显示列表(三)

显示列表标签
Display List Tags


显示列表标签用于给显示列表添加角色和角色的属性。
PlaceObject
PlaceObject标签为显示列表添加一个角色。CharacterId决定往显示列表中添加的角色,Depth字段决定深度层,Matrix字段指定角色的位置,比例和旋转度。若PlaceObject标签超过了转换矩阵的限度,则会为记录附加一个ColorTransform字段。
这就为角色具体指定了一个颜色效果(比如透明度),一个角色可以被多次添加入显示列表,只要他们含有不同的深度和转换矩阵。
注意:PlaceObject标签很少用于SWF 3及以后的版本,在SWF 3和以后的版本中,PlaceObject由PlaceObject2取代。
所支持的最小文件版本是SWF 1。
PlaceObject
字段 类型 注释
Header RECORDHEADER 标签类型=4
CharacterId UI16 被放置的角色的ID
Depth UI16 角色的深度
Matrix MATRIX 转换矩阵的数据
ColorTransform(可选) CXFORM 颜色转换的数据
PlaceObject2
PlaceObject2扩展了PlaceObject标签的功能,PlaceObject2标签可以给显示列表添加角色或者修改已经处于显示列表中的角色的属性。Flash 4和flash 5中PlaceObject2标签稍微有些改变,Flash 5加入了剪切动作(clip actions)。
标签开始于一组标记,这些标记指出现有哪些字段在标签内。可选字段为CharacterId,Matrix, ColorTransform,Ratio,ClipDepth,Name和ClipActions,只有Depth是唯一一个一直需要的字段。
深度值控制了显示的角色的层次。低深度的角色在高深度的角色之下。深度为1的角色显示于最底处。显示列表种可以有多个相同的角色,但它们必须处于不同的深度,一个深度只能容纳一个角色。也就是说,角色可以由自己的深度来标明(因此CharacterId是可选项)
PlaceFlagMove和PlaceFlagHasCharacter指出一个新的角色是否被添加入显示列表,或显示列表中的一个角色是否被修改。这两个标记的含义如下:
• PlaceFlagMove = 0并且PlaceFlagHasCharacter = 1
一个新的角色(带有ID或CharacterId)被指定具体的深度并且放置于显示列表。其他字段设置新角色的属性。
• PlaceFlagMove = 1并且PlaceFlagHasCharacter = 0
指定深度的角色被修改。其他字段修改这个角色的属性。因为一个深度只能含有一个角色,所以CharacterId为可选字段。
• PlaceFlagMove = 1并且PlaceFlagHasCharacter = 1
指定深度的角色被移除,同时新角色(带有ID或CharacterId)被放置于该深度。其他字段设置新角色的属性。
比如一个在几帧之内做运动的角色,它的PlaceFlagHasCharacter在第一帧被设置,之后的几帧PlaceFlagMove被设置。第一帧时该角色被放置在指定的深度,然后初始化转换矩阵,之后的几帧仅仅替换该角色的转换矩阵即可。
PlaceObject2标签的可选字段有如下含义:
• CharacterId字段指定被添加入显示列表的角色。只有在添加新角色时使用。如果已经在显示列表的角色被修改了,则会缺少CharacterId字段。
• Matrix字段指定了添加或者修改的角色的位置,比例,旋转度。
• ColorTransform字段指定了添加或者修改的角色所运用的颜色效果。
• Ratio字段指定了添加或修改的对象的形素比(morph ratio),仅当该角色定义DefineMorphShape时该字段才会有用。并且控制形素进行的程度。若为0则在形态的开始就显示。ratio值为65535,则角色在形态结束时显示。在0至65535之前的值,flash Player会在形状开始和形状结束之间修改,并且显示一个中间形状。
• ClipDepth字段指定了被放置的角色遮住的最大深。ClipDepth为0则表示该角色不是一个剪切角色(clipping character)。
• Name字段指定添加或者修改的角色的名称,该字段仅用于精灵(sprite)角色。为SetTarget动作标识精灵。它允许主影片(或者其他精灵)在精灵内部执行动作(参看精灵和影片剪辑)。
• ClipActions字段,仅用于放置精灵角色,定义多个事件处理器。
所支持的最小文件版本是SWF 3。

【翻译】SWF结构规范第四章:显示列表(二)

剪辑层
Clipping Layers


显示列表中有一种特殊的角色被叫做剪辑层(clipping layer),它不会显示,而是会剪切(遮住)其上的角色。PlaceObject2的ClipDepth字段指定由剪辑层遮住的最大深度。假如一个形状的深度是1,而clipDepth的值为4,所有的深度都大于1,包括深度4,但深度4仍会被深度1的角色遮住,而深度4以上的角色不会被遮住。


使用显示列表
Using the Display List


下面是创建一个flash动画的过程:
1 用定义标签定义每个角色,每个角色都被赋予唯一的一个ID,并被添加入字典。
2 通过PlaceObject2标签将每个角色添加入显示列表。PlaceObject2标签指定了要显示的角色,有下面的属性:
■ depth值,该值控制了显示的角色的层次。低深度的角色在高深度的角色之下。深度为1的角色显示于最底处。显示列表种可以有多个相同的角色,但它们必须处于不同的深度,一个深度只能容纳一个角色。
■ transformation matrix属性。该属性定义了要显示的角色的位置,比例,系数,角度,旋转值。不同transformation matrix属性的同一个角色可能会被放置多次(在不同的深度)。
■ 可选的color transform属性。具体指定了被放置的角色所运用的颜色效果。颜色效果包括透明度和颜色转换。
■ 可选的name字符串。为SetTarget定义了角色。SetTarget用于在精灵内执行脚本。
■ 可选的ClipDepth值。指定被放置的角色遮住的最大深度。
■ 可选的ratio值。控制形素对象被放置时如何显示。若为0则在形态的开始就显示。ratio值为65535,则角色在形态结束时显示。
3 通过ShowFrame标签将显示列表的内容呈递给屏幕。
4 通过PlaceObject2标签修改显示列表中的每一个角色。PlaceObject2会在角色被分配与深度的同时分配给它一个新的转换矩阵(角色ID无需指定,因为每一个深度只有一个角色)。
5 通过ShowFrame标签在新的位置显示角色。步骤4和步骤5反复进行,保证了帧动画的进行。
注意:如果一个对象在每一帧都没有改变,也就没有必要在每一帧都重新替换它。
6 通过RemoveObject2标签移除显示列表中的所有角色,只需要被移除角色的深度值,以便标识被移除的角色。

【翻译】SWF结构规范第四章:显示列表(一)

SWF结构规范已经在图书下载专题中提供下载。

这里仅公布去年翻译的SWF结构规范第四章:显示列表。

正文:
SWF文件的每一帧的显示都需要经过三个过程:
1 对象被定义标签(definition tags)定义(定义标签包括DefineShape,,DefineSprite等)。每个对象都有一个唯一的ID,该ID被叫做角色(character),存储在被叫作字典(dictionary)的库中。
2 被选中的角色从字典中拷贝,之后置于显示列表(display list),该列表内含有下一帧将要显示的所有对象。
3 上面两个过程一旦完成,显示列表中的内容就会通过ShowFrame标签呈递给屏幕。显示列表中的所有对象都含有一个深度(depth)值,深度决定了对象的排列层次。低深度的角色在高深度的角色之下。深度为1的角色显示于最底处。显示列表种可以有多个相同的角色,但它们必须处于不同的深度,一个深度只能容纳一个角色。
在SWF 1和2中,显示列表结构简单,包含了屏幕上此时显示的所有对象。SWF 3和之后的版本中显示列表是有层次的,显示的对象仍然可以有一个关于其子对象的列表。详情请参考DefineSprite。
• PlaceObject 在显示列表中添加一个角色
• PlaceObject2 在指定的深度添加或修改角色
• RemoveObject 从显示列表移除指定的角色
• RemoveObject2 从指定的深度移除角色
• ShowFrame 将要显示的内容呈递给显示列表
注意:PlaceObject和RemoveObject是较旧的标签,已经很少在SWF 3以及后面的版本中使用了。
下表说明了显示过程,首先定义三个对象,一个形状(shape),一个文本对象(text object)和一个精灵(sprite)。这些对象被赋予ID并储存在字典中。角色1(形状渐变)放在深度1,当这一帧出现时它将被其他对象所掩盖。角色2(文本对象)被放置了两次,一次在深度2,一次在深度4。角色3(精灵)在深度3。

【翻译】抽象工厂在as2.0中的运用

来自www.design-nation.net

原文在这里:http://www.design-nation.net/en/archives/000411.php

我毕竟是中学文化水平,有一些地方翻译的不正确,希望朋友们指出:)
抽象工厂模式实例:

抽象工厂(abstract factory)属于创建型模式。它提供一个接口来创建一系列相关联的对象,而不用具体指定它们的类... (more)

工程目录结构及命名规范(三)

第一部分
第二部分

客户端层级目录结构:
ClientName\TYPE_ProjectName
顶层目录由ClientName开始,该名称没有空格,允许使用下划线(_),该目录下有TYPE_ProjectName文件夹(由“_”分开),类型总是区分大小写的,而工程名不能含有空格或下划线。这样每个人稍微看一眼就能找到正确的文件夹。
(more)

工程目录结构及命名规范(二)


第一部分

-PROJECT_FILES-目录的结构以及命名规范:
一个好的结构中,文件夹的命名应该是清晰的,这样的文件夹组织结构应该介于内部和客户端通讯之间。这样就可以减少错误和不必要的努力。团队每个成员的责任就是确保事物时刻处于组织中并被正确的分类,不应该在以后或被其他什么人闲置不用。这个系统就是针对下面这些常见问题而设计的,并且很大程度的基于那些常见的想法,应该解决下面的问题:
1、我需要上载最新结构,但是我不知道需要什么或不需要什么。
2、最新的文件在哪里?我需要尽快将这些文件发送到客户端!
3、我想更新规范文档,但是我在哪里可以找到最新的规范文档?
4、最新的修订过的质量评估数据表在哪里?我想添加新的注释。
5、哪个是最新文件?是PSD还是ZIP?他们的文件名都相同!
同时这个系统还有以下好处:

1、确保每个人都在使用最新文件或更新最新文件
2、只对必需文件和文件夹进行存档和恢复。
3、客户端工程交付CD仅包含最终文件,因此更新文件时就可以排除其他的文件的干扰

[翻译]工程目录结构及命名规范(一)

转载请注明原文地址和作者!
原文地址:http://www.ivantodorov.com/blog/?p=24
作者:Ivan Todorov
第一部分:
无论你是一个自由软件开发者,还是大公司的一名员工,你的组织能力和命名习惯会直接影响客户对你的认识。你命名的文件名是否保持一致并且具有良好的可预知性?你花费了多少时间在更新那些错误和不用的文件上?其他同事多长时间会跑来问你一次“最新的一个文件在哪”?我们是否应该有一个相关的系统排除干扰和减少错误?
在这篇文章中我分享了BLITZ的工程组织管理和命名惯例方面的经验,不使用那些版本控制软件。如果你对版本控制感兴趣,请关注我的空间,我将会在近期发布文章一步一步的讲解利用SubVersion进行多用户版本控制。
请到http://www.ivantodorov.com/blog/wp-content/050826/BLITZ_ProjectNamingAndOrganizationalGuidelines.zip下载文档。
该zip文件包含一个工程文件夹模板的完整的“文件服务器共享”结构,就像我们在这里讨论的一样。还有一篇word格式和pdf格式的文章和一个额外的模板,请将它们提取出来,剩下的空文件夹为我们所示例的文档结构。
文件服务器: \\SERVERNAME
通过VPN登陆到网络或直接在站点上连接到空间的电脑都可以访问文件服务器。可以通过在浏览器内访问\\SERVERNAME或开始菜单>运行>打开: \\SERVERNAME来访问服务器。
下面是对每个共享和它的用途的简要描述:
-Branding_&_Identity-
包含你公司的logo,风格指导,商标,标识和销售材料。

-Company-
HR相关和其他公司文件。

-Creative&Technical_Resources-
开发团队使用的图片和连接

-Installs-
不同程序的安装文件

-IT-
信息工程部需要的文件,驱动和文档

-Portfolio-
这几年里完成的所有工程的总和

-Project_Data-
工程管理所需的工程数据,包含法律协议,工作进度表和声明,还有预算。

-Project_Files-
包含技术团队使用的工程文件,比如Photoshop文件,Flash文件,文档和客户资源。

-Stock_Content-
包含一些资源,比如那些被公司购买并拥有的照片。

-Texture_Maps-
包含图像地图和3D以及设计团队使用的贴图。

job post

none

Calendar

<< September 2010 >>
SunMonTueWedThuFriSat
   1234
567891011
12131415161718
19202122232425
2627282930  

Search


Last comments

夏思 says 2010年最新股民资源,最新一手股民资源,Q Q 9 7 8 5 7 1 9 1 9...

PearsonNell says People deserve very good life time and <a...

MarcyHouston says All people deserve wealthy life and <a...

hV35Chloe says When people stuck with argument essay creating, hence I would propose to buy custom...

Yardley says Best site in world. I am from Botswana and know bad English, please tell me right I...