May
31
Sep
5
看程序员们是如何喝酒的
大家喝的是啤酒。这时你入座了。
你给自己倒了杯可乐,这叫低配置。
你给自已倒了杯啤酒,这叫标准配置。
你给自己倒了杯茶水,这茶的颜色还跟啤酒一样,这叫木马。
你给自己倒了杯可乐,还滴了几滴醋,不仅颜色跟啤酒一样,而且不冒热气还有泡泡,这叫超级木马。
你的同事给你倒了杯白酒,这叫推荐配置。?
人到齐了,酒席开始了。
你先一个人喝了一小口,这叫单元测试。
你跟旁边的人说哥们咱们随意,这叫交叉测试。
但是他说不行,这杯要干了,这叫压力测试。
于是你说那就大家一起来吧,这叫内部测试。
这个时候boss向全场举杯了,这叫公开测试。
菜过三巡,你就不跟他们客气了。
你向对面的人敬酒,这叫p2p.
你向对面的人敬酒,他回敬你,你又再敬他……,这叫tcp.
你向一桌人挨个敬酒,这叫令牌环。
你说只要是兄弟就干了这杯,这叫广播。
可是你的上司jj听了不高兴了,只有兄弟么,罚酒三杯。这叫炸弹。 可是你的下级mm听了不高兴了,我喝一口,你喝一杯,这叫恶意攻击。 有一个人过来向这桌敬酒,你说不行你先过了我这关,这叫防火墙。 你的小弟们过来敬你酒,这叫一对多。 你是boss,所有人过来敬你酒,这叫服务器 。
酒是一样的,可是喝法是不同的 。
你喝了一杯,boss喝了一口,这叫c#。
你喝了一杯,mm喝了一口,这叫vb。
你喝了一杯,你大哥喝了半杯,这叫c++。 你喝了半杯,你小弟喝了一杯,这叫汇编 。
你喝了一杯,你的搭档也喝了一杯,这叫c。
酒是一样的,可是喝酒的人是不同的。
你越喝脸越红,这叫频繁分配释放资源。 你越喝脸越白,这叫资源不释放。 你已经醉了,却说我还能喝,叫做资源额度不足 。
你明明能喝,却说我已经醉了,叫做资源保留。 你喝一段时间就上厕所,这叫cache。
酒过三巡,你也该活动活动了。 你一桌一桌的走,这叫轮巡。 你突然看到某一桌的漂亮mm,走了过去,这叫优先级。 你去了坐下来就不打算走了,这叫死循环。 你的老大举杯邀你过去,你只好过去,这叫激活事件。 你向一桌敬酒,他们说不行不行我们都喝白的,于是你也喝白的,这叫本地化 。
你向boss敬酒,可是boss被围了起来,你只能站在外圈,这叫排队 。
你终于到了内圈,小心翼翼的向前一步,这叫访问临界区。 你拍着boss的肩膀说哥们咱们喝一杯,这叫越界。 你不知喝了几圈了,只会说两个字,干了,这叫udp。 可是还有人拿着酒瓶跑过来说,刚才都没跟你喝,这叫丢包。
喝酒喝到最后的结果都一样
你突然跑向厕所,这叫捕获异常。 你在厕所吐了,反而觉得状态不错,这叫清空内存。 你在台面上吐了,觉得很惭愧,这叫程序异常。 你在boss面前吐了,觉得很害怕,这叫系统崩溃。 你吐到了boss身上,只能索性晕倒了,这叫硬件休克
你找boss喝酒,boss说我喝不下了,这叫超过最大连接数 。
你继续劝boss喝酒,这叫刷新 。
boss说喝不了了,不喝了,这叫访问拒绝 。
然后boss说:小伙子,我们换个话题,这叫页面重定向。 boss问你:小伙子,你叫什么?这叫登录验证 。
boss说:你等等,我去下wc。结果左等右等就是等不回来,这叫连接超时。 你到处找boss,结果就是找不到,这叫该页无法显示。
一个人拿着啤酒到你们部门那桌,对你们经理说:我敬你们部门一杯。然后你们部门一个喝啤酒的人和他干了这杯。 另一个人拿着白酒也到你们那,对你们经理说:我也敬你们部门一杯。然后你们部门一个喝白酒的人和他干了这杯。 这叫多态。
一个人拿着两杯酒到你们部门那桌,把其中一杯酒放到经理面前,说:我敬你们部门一杯你们谁喝我不管,只要把这杯喝了就行了。 这叫封装。
一个人拿着酒到你们部门那桌,对你们经理说:我敬你一杯。然后经理点名:xxx,帮我喝这杯,你喝就等于我喝了。 这叫继承。
你拿个空杯子喝酒,这叫虚函数。 别人向你敬酒,你拿个小杯准备喝,他说:“不行,我们要大杯”,这叫需求变更 。
你拿个大杯敬酒,他说:“我们换小杯的”,这叫简化版本
大家喝的是啤酒。这时你入座了。
你给自己倒了杯可乐,这叫低配置。
你给自已倒了杯啤酒,这叫标准配置。
你给自己倒了杯茶水,这茶的颜色还跟啤酒一样,这叫木马。
你给自己倒了杯可乐,还滴了几滴醋,不仅颜色跟啤酒一样,而且不冒热气还有泡泡,这叫超级木马。
你的同事给你倒了杯白酒,这叫推荐配置。?
人到齐了,酒席开始了。
你先一个人喝了一小口,这叫单元测试。
你跟旁边的人说哥们咱们随意,这叫交叉测试。
但是他说不行,这杯要干了,这叫压力测试。
于是你说那就大家一起来吧,这叫内部测试。
这个时候boss向全场举杯了,这叫公开测试。
菜过三巡,你就不跟他们客气了。
你向对面的人敬酒,这叫p2p.
你向对面的人敬酒,他回敬你,你又再敬他……,这叫tcp.
你向一桌人挨个敬酒,这叫令牌环。
你说只要是兄弟就干了这杯,这叫广播。
可是你的上司jj听了不高兴了,只有兄弟么,罚酒三杯。这叫炸弹。 可是你的下级mm听了不高兴了,我喝一口,你喝一杯,这叫恶意攻击。 有一个人过来向这桌敬酒,你说不行你先过了我这关,这叫防火墙。 你的小弟们过来敬你酒,这叫一对多。 你是boss,所有人过来敬你酒,这叫服务器 。
酒是一样的,可是喝法是不同的 。
你喝了一杯,boss喝了一口,这叫c#。
你喝了一杯,mm喝了一口,这叫vb。
你喝了一杯,你大哥喝了半杯,这叫c++。 你喝了半杯,你小弟喝了一杯,这叫汇编 。
你喝了一杯,你的搭档也喝了一杯,这叫c。
酒是一样的,可是喝酒的人是不同的。
你越喝脸越红,这叫频繁分配释放资源。 你越喝脸越白,这叫资源不释放。 你已经醉了,却说我还能喝,叫做资源额度不足 。
你明明能喝,却说我已经醉了,叫做资源保留。 你喝一段时间就上厕所,这叫cache。
酒过三巡,你也该活动活动了。 你一桌一桌的走,这叫轮巡。 你突然看到某一桌的漂亮mm,走了过去,这叫优先级。 你去了坐下来就不打算走了,这叫死循环。 你的老大举杯邀你过去,你只好过去,这叫激活事件。 你向一桌敬酒,他们说不行不行我们都喝白的,于是你也喝白的,这叫本地化 。
你向boss敬酒,可是boss被围了起来,你只能站在外圈,这叫排队 。
你终于到了内圈,小心翼翼的向前一步,这叫访问临界区。 你拍着boss的肩膀说哥们咱们喝一杯,这叫越界。 你不知喝了几圈了,只会说两个字,干了,这叫udp。 可是还有人拿着酒瓶跑过来说,刚才都没跟你喝,这叫丢包。
喝酒喝到最后的结果都一样
你突然跑向厕所,这叫捕获异常。 你在厕所吐了,反而觉得状态不错,这叫清空内存。 你在台面上吐了,觉得很惭愧,这叫程序异常。 你在boss面前吐了,觉得很害怕,这叫系统崩溃。 你吐到了boss身上,只能索性晕倒了,这叫硬件休克
你找boss喝酒,boss说我喝不下了,这叫超过最大连接数 。
你继续劝boss喝酒,这叫刷新 。
boss说喝不了了,不喝了,这叫访问拒绝 。
然后boss说:小伙子,我们换个话题,这叫页面重定向。 boss问你:小伙子,你叫什么?这叫登录验证 。
boss说:你等等,我去下wc。结果左等右等就是等不回来,这叫连接超时。 你到处找boss,结果就是找不到,这叫该页无法显示。
一个人拿着啤酒到你们部门那桌,对你们经理说:我敬你们部门一杯。然后你们部门一个喝啤酒的人和他干了这杯。 另一个人拿着白酒也到你们那,对你们经理说:我也敬你们部门一杯。然后你们部门一个喝白酒的人和他干了这杯。 这叫多态。
一个人拿着两杯酒到你们部门那桌,把其中一杯酒放到经理面前,说:我敬你们部门一杯你们谁喝我不管,只要把这杯喝了就行了。 这叫封装。
一个人拿着酒到你们部门那桌,对你们经理说:我敬你一杯。然后经理点名:xxx,帮我喝这杯,你喝就等于我喝了。 这叫继承。
你拿个空杯子喝酒,这叫虚函数。 别人向你敬酒,你拿个小杯准备喝,他说:“不行,我们要大杯”,这叫需求变更 。
你拿个大杯敬酒,他说:“我们换小杯的”,这叫简化版本
May
6
flash lite 支持的键
左右软键:最上面的左右两边的软键
导航小键盘:方向键和ok键
数字键和* #键:0.1.2.3.4.5.6.7.8.9.*.#
当某个输入文本字段具有焦点并且用户按选择键时,Flash Lite 会打开设备的通用文本输入对话框,用户可以在其中输入文本。
其中数字键和导航小键盘是所有设备都可用的。左右软键是只有支持SetSoftKeys命令的设备可用。
Flash Lite 支持三种默认导航模式:双向导航、四向导航和具有换行功能的四向导航。不同的设备和 Flash Lite 内容类型支持不同的导航模式。
一般情况下,双向导航中的默认 Tab 键顺序为从左到右和从上到下。可以使用 Button、MovieClip 和 TextField 对象的 tabIndex 属性来自定义双向导航中的 Tab 键顺序。(注意:在支持四向导航的设备上,不支持 tabIndex 属性,因此不可能使用 tabIndex 属性为四向导航设置 Tab 键顺序。)
要在双向导航中控制 Tab 键顺序,可以为每个对象的 tabIndex 属性赋予一个数值,此数值指定该对象在默认导航中的顺序。例如,假设一个应用程序包含按钮 (my_button)、影片剪辑 (my_movieclip) 以及输入文本字段 (my_inputTxt)。以下代码确定了 Tab 键顺序,以使按钮最先获得焦点,接着是影片剪辑,最后是输入文本字段。
my_button.tabIndex = 1;
my_movieclip.tabEnabled = true;
my_movieclip.tabIndex = 2;
my_inputTxt.tabIndex = 3;
这个属性tabEnabled是指是否包括在 Tab 键的自动排序中。默认情况下为 undefined。如果 tabEnabled 属性为 undefined 或 true,则该对象包括在 Tab 键的自动排序中。如果 tabIndex 属性也设置为某个值,则该对象也包括在 Tab 键的自定义排序中。如果 tabEnabled 为 false,则即使设置了 tabIndex 属性,该对象也不包括在 Tab 键的自动或自定义排序中。
如果my_movieclip.tabEnabled = false;那么my_movieclip则不在排序中。
支持手机的键以及对应的代码。
设备键 ActionScript 键控代码/键控代码常数
选择键 Key.ENTER
上导航键 Key.UP
下导航键 Key.DOWN
左导航键 Key.LEFT
右导航键 Key.RIGHT
左软键 ExtendedKey.SOFT1(或 soft1)
右软键 ExtendedKey.SOFT2(或 soft2)
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
* 56
# 51
例如:
var myListener:Object = new Object();
myListener.onKeyDown = function() {
if (Key.getCode() == Key.RIGHT) {
trace("You pressed the right arrow key");
}
}
Key.addListener(myListener);
例如:
var myListener:Object = new Object();
myListener.onKeyDown = function() {
if (Key.getCode() == Key.LEFT) {
circle._x -= 10;
} else if (Key.getCode() == Key.RIGHT) {
circle._x += 10;
} else if (Key.getCode() == Key.UP) {
circle._y -= 10;
} else if (Key.getCode() == Key.DOWN) {
circle._y += 10;
}
};
Key.addListener(myListener);
例如:
fscommand2("SetSoftKeys", "Left", "Right");
fscommand2("FullScreen", true);
var myListener:Object = new Object();
myListener.onKeyDown = function() {
if (Key.getCode() == ExtendedKey.SOFT1) {
// 处理左软键按键事件。
status.text = "You pressed the Left soft key.";
} else if (Key.getCode() == ExtendedKey.SOFT2) {
// 处理右软键按键事件。
status.text = "You pressed the Right soft key.";
}
};
Key.addListener(myListener);
要在 Flash Lite 应用程序中使用左右软键,必须首先调用 SetSoftKeys 命令。之后,当用户按左软键时,Flash Lite 会生成一个 ExtendedKey.SOFT1 事件;当用户按右软键时,会生成一个 ExtendedKey.SOFT2 事件。
按钮事件说明
onDragOut 仅在具有鼠标或笔针的设备上支持。当用户在按钮上按下鼠标按钮,然后将鼠标指针拖动到按钮之外时调用。
onDragOver 仅在具有鼠标或笔针的设备上支持。当用户在按钮外部按下鼠标按钮,然后将鼠标指针拖动到按钮之上时调用。
onKeyDown 当按钮具有焦点而且释放某按键时调用。
onKeyUp 当按钮具有焦点而且按下某按键时调用。
onKillFocus 当从按钮中删除焦点时调用。
onPress 在按钮具有焦点的情况下当用户按设备上的选择键时调用。
onRelease 在按钮具有焦点的情况下当用户释放设备上的选择键时调用。
onReleaseOutside 在这样的情况下调用:在鼠标指针位于按钮内部的情况下按下按钮,然后将鼠标指针移到该按钮外部并释放鼠标按钮。
onRollOut 当按钮失去焦点时调用。
onRollOver 当按钮接收焦点时调用。
onSetFocus 当按钮具有输入焦点而且释放某按键时调用。
// 由于按钮具有指针经过状态而禁用焦点矩形
_focusRect = false;
// 事件处理函数 btn_1
btn_1.onPress = function() {
trace("You pressed Button 1");
}
btn_1.onRelease = function() {
trace("You released Button 1");
}
btn_1.onRollOver = function() {
trace("Button 1 has focus");
}
btn_1.onRollOut = function() {
trace("Button 1 lost focus");
}
// 事件处理函数 btn_2
btn_2.onPress = function() {
trace("You pressed Button 2");
}
btn_2.onRelease = function() {
trace("You released Button 2");
}
btn_2.onRollOver = function() {
trace("Button 2 has focus");
}
btn_2.onRollOut = function() {
trace("Button 2 lost focus");
}
左右软键:最上面的左右两边的软键
导航小键盘:方向键和ok键
数字键和* #键:0.1.2.3.4.5.6.7.8.9.*.#
当某个输入文本字段具有焦点并且用户按选择键时,Flash Lite 会打开设备的通用文本输入对话框,用户可以在其中输入文本。
其中数字键和导航小键盘是所有设备都可用的。左右软键是只有支持SetSoftKeys命令的设备可用。
Flash Lite 支持三种默认导航模式:双向导航、四向导航和具有换行功能的四向导航。不同的设备和 Flash Lite 内容类型支持不同的导航模式。
一般情况下,双向导航中的默认 Tab 键顺序为从左到右和从上到下。可以使用 Button、MovieClip 和 TextField 对象的 tabIndex 属性来自定义双向导航中的 Tab 键顺序。(注意:在支持四向导航的设备上,不支持 tabIndex 属性,因此不可能使用 tabIndex 属性为四向导航设置 Tab 键顺序。)
要在双向导航中控制 Tab 键顺序,可以为每个对象的 tabIndex 属性赋予一个数值,此数值指定该对象在默认导航中的顺序。例如,假设一个应用程序包含按钮 (my_button)、影片剪辑 (my_movieclip) 以及输入文本字段 (my_inputTxt)。以下代码确定了 Tab 键顺序,以使按钮最先获得焦点,接着是影片剪辑,最后是输入文本字段。
my_button.tabIndex = 1;
my_movieclip.tabEnabled = true;
my_movieclip.tabIndex = 2;
my_inputTxt.tabIndex = 3;
这个属性tabEnabled是指是否包括在 Tab 键的自动排序中。默认情况下为 undefined。如果 tabEnabled 属性为 undefined 或 true,则该对象包括在 Tab 键的自动排序中。如果 tabIndex 属性也设置为某个值,则该对象也包括在 Tab 键的自定义排序中。如果 tabEnabled 为 false,则即使设置了 tabIndex 属性,该对象也不包括在 Tab 键的自动或自定义排序中。
如果my_movieclip.tabEnabled = false;那么my_movieclip则不在排序中。
支持手机的键以及对应的代码。
设备键 ActionScript 键控代码/键控代码常数
选择键 Key.ENTER
上导航键 Key.UP
下导航键 Key.DOWN
左导航键 Key.LEFT
右导航键 Key.RIGHT
左软键 ExtendedKey.SOFT1(或 soft1)
右软键 ExtendedKey.SOFT2(或 soft2)
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
* 56
# 51
例如:
var myListener:Object = new Object();
myListener.onKeyDown = function() {
if (Key.getCode() == Key.RIGHT) {
trace("You pressed the right arrow key");
}
}
Key.addListener(myListener);
例如:
var myListener:Object = new Object();
myListener.onKeyDown = function() {
if (Key.getCode() == Key.LEFT) {
circle._x -= 10;
} else if (Key.getCode() == Key.RIGHT) {
circle._x += 10;
} else if (Key.getCode() == Key.UP) {
circle._y -= 10;
} else if (Key.getCode() == Key.DOWN) {
circle._y += 10;
}
};
Key.addListener(myListener);
例如:
fscommand2("SetSoftKeys", "Left", "Right");
fscommand2("FullScreen", true);
var myListener:Object = new Object();
myListener.onKeyDown = function() {
if (Key.getCode() == ExtendedKey.SOFT1) {
// 处理左软键按键事件。
status.text = "You pressed the Left soft key.";
} else if (Key.getCode() == ExtendedKey.SOFT2) {
// 处理右软键按键事件。
status.text = "You pressed the Right soft key.";
}
};
Key.addListener(myListener);
要在 Flash Lite 应用程序中使用左右软键,必须首先调用 SetSoftKeys 命令。之后,当用户按左软键时,Flash Lite 会生成一个 ExtendedKey.SOFT1 事件;当用户按右软键时,会生成一个 ExtendedKey.SOFT2 事件。
按钮事件说明
onDragOut 仅在具有鼠标或笔针的设备上支持。当用户在按钮上按下鼠标按钮,然后将鼠标指针拖动到按钮之外时调用。
onDragOver 仅在具有鼠标或笔针的设备上支持。当用户在按钮外部按下鼠标按钮,然后将鼠标指针拖动到按钮之上时调用。
onKeyDown 当按钮具有焦点而且释放某按键时调用。
onKeyUp 当按钮具有焦点而且按下某按键时调用。
onKillFocus 当从按钮中删除焦点时调用。
onPress 在按钮具有焦点的情况下当用户按设备上的选择键时调用。
onRelease 在按钮具有焦点的情况下当用户释放设备上的选择键时调用。
onReleaseOutside 在这样的情况下调用:在鼠标指针位于按钮内部的情况下按下按钮,然后将鼠标指针移到该按钮外部并释放鼠标按钮。
onRollOut 当按钮失去焦点时调用。
onRollOver 当按钮接收焦点时调用。
onSetFocus 当按钮具有输入焦点而且释放某按键时调用。
// 由于按钮具有指针经过状态而禁用焦点矩形
_focusRect = false;
// 事件处理函数 btn_1
btn_1.onPress = function() {
trace("You pressed Button 1");
}
btn_1.onRelease = function() {
trace("You released Button 1");
}
btn_1.onRollOver = function() {
trace("Button 1 has focus");
}
btn_1.onRollOut = function() {
trace("Button 1 lost focus");
}
// 事件处理函数 btn_2
btn_2.onPress = function() {
trace("You pressed Button 2");
}
btn_2.onRelease = function() {
trace("You released Button 2");
}
btn_2.onRollOver = function() {
trace("Button 2 has focus");
}
btn_2.onRollOut = function() {
trace("Button 2 lost focus");
}
May
6
和在 Flash Lite 1.1 中一样,在 Flash Lite 2.0 中可以使用loadMovie() 函数(或等效的MovieClip 对象的 loadMovie() 方法)将外部 SWF 文件加载到应用程序中。
同样,加载外部声音,可以使用 Sound.loadSound() 方法。在 Flash Lite 2.0 中,能使用此方法加载手机支持的任何声音格式。外部声音必须完全加载到内存中,然后才能播放。
和在 Flash Lite 1.1 中一样,在 Flash Lite 2.0 中可以使用loadMovie() 函数(或等效的MovieClip 对象的 loadMovie() 方法)将外部 SWF 文件加载到应用程序中。此外,在 Flash Lite 2.0 中,还可以使用 loadMovie() 函数来加载设备支持的任意图像格式。
事例如下:
image_mc.loadMovie("http://bbs.javascript.com.cn/image/msn/logo.gif");
或
loadMovie("http://bbs.javascript.com.cn/image/msn/logo.gif", "image_mc");
如果你不知道你的手机支持的图像格式,可以使用 System.capabilities.imageMIMETypes 属性,其中包含一个由支持的图像 MIME 类型构成的数组。该数组中每个元素的索引就是每个支持的 MIME 类型。
下面的代码将在加载外部png图片文件之前确定该设备是否支持png图像:
事例如下:
if (System.capabilities.imageMIMETypes["image/png"]) {
loadMovie("images/image.png", "mc_myPngImage");
}
另外FlashLite2.0在每帧中可以执行的 loadMovie() 操作数限制为 5,而将任一时刻执行的总操作数限制为 10。也就上说每 1 帧上最多可以加载5个外部图像,如果多于5,其他的就会加载不上。
事例如下:
image1.loadMovie("image1.jpg");
image2.loadMovie("image2.jpg");
image3.loadMovie("image3.jpg");
image4.loadMovie("image4.jpg");
image5.loadMovie("image5.jpg");
image6.loadMovie("image6.jpg"); // 不会加载
一般的解决方法是在多个帧上拆分 loadMovie() 调用,这样,每个帧都可以最多包含五个 loadMovie() 调用。
同样,加载外部声音,可以使用 Sound.loadSound() 方法。在 Flash Lite 2.0 中,能使用此方法加载设备支持的任何声音格式。外部设备声音必须完全加载到内存中,然后才能播放。
以下有关在 Flash Lite 2.0 中播放外部设备声音的信息很重要,需要记住:
一、与 Flash Player 的桌面版本不同,在 Flash Lite 2.0 中始终将外部加载的声音视为事件声音。这意味着外部设备声音不被作为数据流处理,即无法在下载过程中播放。声音数据必须完全下载,然后才能播放该声音。出于相同原因,必须调用 Sound 对象的 start()方法,才能在声音完全加载后播放声音(请参见下面的代码示例)。
二、loadSound()方法的 Flash Lite 2.0 实现不支持该方法的第二个参数(isStreaming)。如果出现此参数,Flash Lite 将忽略它。
三、Flash Lite 2.0 本身不能播放外部加载的 MP3 文件。如果您的应用程序加载了外部 MP3 文件,Flash Lite 会像处理任何外部加载的声音文件一样,将该声音数据传递给设备进行解码和播放。
下面的代码演示了如何加载和播放外部声音文件:
// 创建声音对象。
var mySound:Sound = new Sound();
// 为声音定义 onLoad 处理函数,
// 该处理函数将在声音完全加载后立即启动声音。
mySound.onLoad = function(success){
if(success == true) {
mySound.start();
}
}
// 加载声音。
mySound.loadSound("http://www.macromedia.com/audio.midi");
同样,加载外部声音,可以使用 Sound.loadSound() 方法。在 Flash Lite 2.0 中,能使用此方法加载手机支持的任何声音格式。外部声音必须完全加载到内存中,然后才能播放。
和在 Flash Lite 1.1 中一样,在 Flash Lite 2.0 中可以使用loadMovie() 函数(或等效的MovieClip 对象的 loadMovie() 方法)将外部 SWF 文件加载到应用程序中。此外,在 Flash Lite 2.0 中,还可以使用 loadMovie() 函数来加载设备支持的任意图像格式。
事例如下:
image_mc.loadMovie("http://bbs.javascript.com.cn/image/msn/logo.gif");
或
loadMovie("http://bbs.javascript.com.cn/image/msn/logo.gif", "image_mc");
如果你不知道你的手机支持的图像格式,可以使用 System.capabilities.imageMIMETypes 属性,其中包含一个由支持的图像 MIME 类型构成的数组。该数组中每个元素的索引就是每个支持的 MIME 类型。
下面的代码将在加载外部png图片文件之前确定该设备是否支持png图像:
事例如下:
if (System.capabilities.imageMIMETypes["image/png"]) {
loadMovie("images/image.png", "mc_myPngImage");
}
另外FlashLite2.0在每帧中可以执行的 loadMovie() 操作数限制为 5,而将任一时刻执行的总操作数限制为 10。也就上说每 1 帧上最多可以加载5个外部图像,如果多于5,其他的就会加载不上。
事例如下:
image1.loadMovie("image1.jpg");
image2.loadMovie("image2.jpg");
image3.loadMovie("image3.jpg");
image4.loadMovie("image4.jpg");
image5.loadMovie("image5.jpg");
image6.loadMovie("image6.jpg"); // 不会加载
一般的解决方法是在多个帧上拆分 loadMovie() 调用,这样,每个帧都可以最多包含五个 loadMovie() 调用。
同样,加载外部声音,可以使用 Sound.loadSound() 方法。在 Flash Lite 2.0 中,能使用此方法加载设备支持的任何声音格式。外部设备声音必须完全加载到内存中,然后才能播放。
以下有关在 Flash Lite 2.0 中播放外部设备声音的信息很重要,需要记住:
一、与 Flash Player 的桌面版本不同,在 Flash Lite 2.0 中始终将外部加载的声音视为事件声音。这意味着外部设备声音不被作为数据流处理,即无法在下载过程中播放。声音数据必须完全下载,然后才能播放该声音。出于相同原因,必须调用 Sound 对象的 start()方法,才能在声音完全加载后播放声音(请参见下面的代码示例)。
二、loadSound()方法的 Flash Lite 2.0 实现不支持该方法的第二个参数(isStreaming)。如果出现此参数,Flash Lite 将忽略它。
三、Flash Lite 2.0 本身不能播放外部加载的 MP3 文件。如果您的应用程序加载了外部 MP3 文件,Flash Lite 会像处理任何外部加载的声音文件一样,将该声音数据传递给设备进行解码和播放。
下面的代码演示了如何加载和播放外部声音文件:
// 创建声音对象。
var mySound:Sound = new Sound();
// 为声音定义 onLoad 处理函数,
// 该处理函数将在声音完全加载后立即启动声音。
mySound.onLoad = function(success){
if(success == true) {
mySound.start();
}
}
// 加载声音。
mySound.loadSound("http://www.macromedia.com/audio.midi");
Dec
15
从前,有一座圆音寺,每天都有许多人上香拜佛,香火很旺。在圆音寺庙前的横梁上有个蜘蛛结了张网,由于每天都受到香火和虔诚的祭拜的熏托,蛛蛛便有了佛性。经过了一千多年的修炼,蛛蛛佛性增加了不少。
忽然有一天,佛主光临了圆音寺,看见这里香火甚旺,十分高兴。离开寺庙的时候,不轻易间地抬头,看见了横梁上的蛛蛛。佛主停下来,问这只蜘蛛:“你我相见总算是有缘,我来问你个问题,看你修炼了这一千多年来,有什么真知拙见。怎么样?”蜘蛛遇见佛主很是高兴,连忙答应了。佛主问到:“世间什么才是最珍贵的?”蜘蛛想了想,回答到:“世间最珍贵的是‘得不到’和‘已失去’。”佛主点了点头,离开了。
就这样又过了一千年的光景,蜘蛛依旧在圆音寺的横梁上修炼,它的佛性大增。一日,佛主又来到寺前,对蜘蛛说道:“你可还好,一千年前的那个问题,你可有什么更深的认识吗?”蜘蛛说:“我觉得世间最珍贵的是‘得不到’和‘已失去’。”佛主说:“你再好好想想,我会再来找你的。”
又过了一千年,有一天,刮起了大风,风将一滴甘露吹到了蜘蛛网上。蜘蛛望着甘露,见它晶莹透亮,很漂亮,顿生喜爱之意。蜘蛛每天看着甘露很开心,它觉得这是三千年来最开心的几天。突然, 又刮起了一阵大风,将甘露吹走了。蜘蛛一下子觉得失去了什么,感到很寂寞和难过。这时佛主又来了,问蜘蛛:“蜘蛛这一千年,你可好好想过这个问题:世间什么才是最珍贵的?”蜘蛛想到了甘露,对佛主说:“世间最珍贵的是‘得不到’和‘已失去’。”佛主说:“好,既然你有这样的认识,我让你到人间走一朝吧。”
就这样,蜘蛛投胎到了一个官宦家庭,成了一个富家小姐,父母为她取了个名字叫蛛儿。一晃,蛛儿到了十六岁了,已经成了个婀娜多姿的少女,长的十分漂亮,楚楚动人。
这一日,新科状元郎甘鹿中士,皇帝决定在后花园为他举行庆功宴席。来了许多妙龄少女,包括蛛儿,还有皇帝的小公主长风公主。状元郎在席间表演诗词歌赋,大献才艺,在场的少女无一不被他折倒。但蛛儿一点也不紧张和吃醋,因为她知道,这是佛主赐予她的姻缘。
过了些日子,说来很巧,蛛儿陪同母亲上香拜佛的时候,正好甘鹿也陪同母亲而来。上完香拜过佛,二位长者在一边说上了话。蛛儿和甘鹿便来到走廊上聊天,蛛儿很开心,终于可以和喜欢的人在一起了,但是甘鹿并没有表现出对她的喜爱。蛛儿对甘鹿说:“你难道不曾记得十六年前,圆音寺的蜘蛛网上的事情了吗?”甘鹿很诧异,说:“蛛儿姑娘,你漂亮,也很讨人喜欢,但你想象力未免丰富了一点吧。”说罢,和母亲离开了。
蛛儿回到家,心想,佛主既然安排了这场姻缘,为何不让他记得那件事,甘鹿为何对我没有一点的感觉?
几天后,皇帝下召,命新科状元甘鹿和长风公主完婚;蛛儿和太子芝草完婚。这一消息对蛛儿如同晴空霹雳,她怎么也想不同,佛主竟然这样对她。几日来,她不吃不喝,穷究急思,灵魂就将出壳,生命危在旦夕。太子芝草知道了,急忙赶来,扑倒在床边,对奄奄一息的蛛儿说道:“那日,在后花园众姑娘中,我对你一见钟情,我苦求父皇,他才答应。如果你死了,那么我也就不活了。”说着就拿起了宝剑准备自刎。
就在这时,佛主来了,他对快要出壳的蛛儿灵魂说:“蜘蛛,你可曾想过,甘露(甘鹿)是由谁带到你这里来的呢?是风(长风公主)带来的,最后也是风将它带走的。甘鹿是属于长风公主的,他对你不过是生命中的一段插曲。而太子芝草是当年圆音寺门前的一棵小草,他看了你三千年,爱慕了你三千年,但你却从没有低下头看过它。蜘蛛,我再来问你,世间什么才是最珍贵的?”蜘蛛听了这些真相之后,好象一下子大彻大悟了,她对佛主说:“世间最珍贵的不是‘得不到’和‘已失去’,而是现在能把握的幸福。”刚说完,佛主就离开了,蛛儿的灵魂也回位了,睁开眼睛,看到正要自刎的太子芝草,她马上打落宝剑,和太子深深的抱着……
忽然有一天,佛主光临了圆音寺,看见这里香火甚旺,十分高兴。离开寺庙的时候,不轻易间地抬头,看见了横梁上的蛛蛛。佛主停下来,问这只蜘蛛:“你我相见总算是有缘,我来问你个问题,看你修炼了这一千多年来,有什么真知拙见。怎么样?”蜘蛛遇见佛主很是高兴,连忙答应了。佛主问到:“世间什么才是最珍贵的?”蜘蛛想了想,回答到:“世间最珍贵的是‘得不到’和‘已失去’。”佛主点了点头,离开了。
就这样又过了一千年的光景,蜘蛛依旧在圆音寺的横梁上修炼,它的佛性大增。一日,佛主又来到寺前,对蜘蛛说道:“你可还好,一千年前的那个问题,你可有什么更深的认识吗?”蜘蛛说:“我觉得世间最珍贵的是‘得不到’和‘已失去’。”佛主说:“你再好好想想,我会再来找你的。”
又过了一千年,有一天,刮起了大风,风将一滴甘露吹到了蜘蛛网上。蜘蛛望着甘露,见它晶莹透亮,很漂亮,顿生喜爱之意。蜘蛛每天看着甘露很开心,它觉得这是三千年来最开心的几天。突然, 又刮起了一阵大风,将甘露吹走了。蜘蛛一下子觉得失去了什么,感到很寂寞和难过。这时佛主又来了,问蜘蛛:“蜘蛛这一千年,你可好好想过这个问题:世间什么才是最珍贵的?”蜘蛛想到了甘露,对佛主说:“世间最珍贵的是‘得不到’和‘已失去’。”佛主说:“好,既然你有这样的认识,我让你到人间走一朝吧。”
就这样,蜘蛛投胎到了一个官宦家庭,成了一个富家小姐,父母为她取了个名字叫蛛儿。一晃,蛛儿到了十六岁了,已经成了个婀娜多姿的少女,长的十分漂亮,楚楚动人。
这一日,新科状元郎甘鹿中士,皇帝决定在后花园为他举行庆功宴席。来了许多妙龄少女,包括蛛儿,还有皇帝的小公主长风公主。状元郎在席间表演诗词歌赋,大献才艺,在场的少女无一不被他折倒。但蛛儿一点也不紧张和吃醋,因为她知道,这是佛主赐予她的姻缘。
过了些日子,说来很巧,蛛儿陪同母亲上香拜佛的时候,正好甘鹿也陪同母亲而来。上完香拜过佛,二位长者在一边说上了话。蛛儿和甘鹿便来到走廊上聊天,蛛儿很开心,终于可以和喜欢的人在一起了,但是甘鹿并没有表现出对她的喜爱。蛛儿对甘鹿说:“你难道不曾记得十六年前,圆音寺的蜘蛛网上的事情了吗?”甘鹿很诧异,说:“蛛儿姑娘,你漂亮,也很讨人喜欢,但你想象力未免丰富了一点吧。”说罢,和母亲离开了。
蛛儿回到家,心想,佛主既然安排了这场姻缘,为何不让他记得那件事,甘鹿为何对我没有一点的感觉?
几天后,皇帝下召,命新科状元甘鹿和长风公主完婚;蛛儿和太子芝草完婚。这一消息对蛛儿如同晴空霹雳,她怎么也想不同,佛主竟然这样对她。几日来,她不吃不喝,穷究急思,灵魂就将出壳,生命危在旦夕。太子芝草知道了,急忙赶来,扑倒在床边,对奄奄一息的蛛儿说道:“那日,在后花园众姑娘中,我对你一见钟情,我苦求父皇,他才答应。如果你死了,那么我也就不活了。”说着就拿起了宝剑准备自刎。
就在这时,佛主来了,他对快要出壳的蛛儿灵魂说:“蜘蛛,你可曾想过,甘露(甘鹿)是由谁带到你这里来的呢?是风(长风公主)带来的,最后也是风将它带走的。甘鹿是属于长风公主的,他对你不过是生命中的一段插曲。而太子芝草是当年圆音寺门前的一棵小草,他看了你三千年,爱慕了你三千年,但你却从没有低下头看过它。蜘蛛,我再来问你,世间什么才是最珍贵的?”蜘蛛听了这些真相之后,好象一下子大彻大悟了,她对佛主说:“世间最珍贵的不是‘得不到’和‘已失去’,而是现在能把握的幸福。”刚说完,佛主就离开了,蛛儿的灵魂也回位了,睁开眼睛,看到正要自刎的太子芝草,她马上打落宝剑,和太子深深的抱着……









