DFdou's Blog Life is short,Be yourself.

3011/090

iPhone-Adobe Flash和Microsoft SliverLight

先牢骚下,早上打电话给it部门说win7的系统不提供技术支持,所以我要向上内网,先得把系统换成xp,无语。。
还好开短会的时候同事说可以解决,弄了下,使用802.1X可以直接验证,唉。。
OK,下边说正题,微软推iPhone版SL是在开会时候鸽子给的信息,来源是cnbeta,我估计Adobe看到这个消息会泪流满面,跟苹果交涉了那么久,最后还是被苹果拒绝。
从短文内容来看,似乎微软只是做了视频流的转换,我估计SL的虚拟机是无法撞到iPhone里去的,除非,,,除非微软用iPhone的sdk做一个虚拟机,当然这个以微软和adobe的实力都没什么问题,最重要的问题是,这个需要苹果说"OK"。不然啥都没的谈~~
从苹果做事的一贯做法和APP STORE和Flash的巨大竞争来看,我猜是没戏~~
不然adobe官方也不会无奈的给出这么一张图:
adobe flash

3011/090

CSS-CSS Sprite 图片合并技术

文章来自:http://www.51jquery.com/2009-03/css-sprite/
作为一个前段开发人员,还是需要知道一下的哈。

一,关于CSS Sprite
CSS Sprites是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会 像以前那样一幅一幅地慢慢显示出来了。对于当前网络流行的速度而言,不高于200KB的单张图片的所需载入时间基本是差不多的,所以无需 顾忌这个问题。
按照yahoo的rules for high performance web sites的原则,应当较少Client与Server端间 的HTTP Request次数。通过CSS Sprites方法将多张图片组装成单独的一张图片,可以有效减少HTTP请求 的次数。
当整幅图片载入完成后,你就可以使用CSS方法通过设置背景位置的方式完成所需图片的准确调用。

加速的关键,不是降低重量,而是减少个数。传统切图讲究精细,图片规格越小越好,重量越小越好,其实规格大小无所谓,计算机统一都按byte计算。客户端每显示一张图片都会向服务器发送请求,所以,图片越多请求次数越多,造成延迟的可能性也就越大。

二,CSS Sprite的使用

有几篇关于CSS Sprites的文章,基本上把其原理和机制说明得很清楚。

What Are CSS Sprites?

How to create CSS sprites

Creating Rollover Effects with CSS Sprites

Building a Dynamic Banner with CSS Sprites

High Performance Web Sites中关于CSS Sprites的内容3.2. CSS Sprites

2711/090

Flash-New knowledge exchange for Flex/Flash/AIR developers

今天电脑崩了,结果嘛,就没写日志,转个博文偷懒下。来自:http://www.insideria.com/2009/11/new-knowledge-exchange-for-fle.html

There are about 250K developers working with Flex and AIR. If you add an army of ActionScript developers, this number will grow substantially. Where do you go if you have a technical issue while developing RIA? As of today, there no one place to ask questions and get answers. A respected forum flexcoders uses the outdated and hard to follow Yahoo! groups. Some people try to find answers visiting blogs they trust. Some developers post their questions on Twitter.

About a year ago Joel Spolsky and Jeff Atwood released a well designed and easy to follow knowledge exchange stackoverflow.com, where people earn reputation by suggesting the right solutions to people's problems. Flex/Flash/Air developers started to post their questions there among the plethora of questions on other technologies and programming languages.

Joel and Jeff went one step further and are offering the engine (stackexchange) for creation of similar knowledge exchanges for discussion any kinds of subjects. Using this engine is not free, but our company, Farata Systems continues contributing to Flex community and will pick up the cost involved with running the knowledge dedicated to RIA technologies that produce applications to be deployed with Flash Player.

We are just starting and created a an exchange Built4Flash on stackexchange engine and would like to invite Flex, Flash, AIR, and Coldfusion developers to post questions there and provide answers to others. The URL of the Web site ishttp://built4flash.stackexchange.com.

Your questions and answers not only will help others in solving their issues, but you'll also have a chance to become visible and reputable person in this lively and Flashy community.

I really hope you'll support this initiative.

Tagged as: , , No Comments
2611/091

AS3-Caurina 动画类

今天玩了下Caurina类,和TweenLite的差别并不大,具体哪个好用,对我来说,TweenLite更熟悉点=,=
而老外(尤其是日本人)的Flash破解出来基本都是Caurina来作为Tween类,因为Caurina开源的关系么?
Caurina官方地址如下:http://hosted.zeh.com.br/tweener/docs/en-us/
类包下载地址:http://code.google.com/p/tweener/downloads/list,看好版本再下载哈。
最简单的动画代码如下:

import caurina.transitions.Tweener;
Tweener.addTween(clip_mc,{x:500,time:1,transition:"easeOutBounce"});

让clip_mc的x位置花1s的时间运动到500位置,动画的ease为easeOutBounce。熟悉TweenLite的应该很快就可以熟悉Caurina了。至于addTween的详细参数,,自己看文档去~
下边来个结合Timer的Demo,来自flepstudio.org

2511/090

记得关注你的竞争对手

browser
换了工作之后对工作工具的接触多了起来,上一个工作办公室Mac和Windows是5,5开,但是浏览器大家几乎都是Firefox,虽然要做下IE6,7的兼容,但是基本上不用去管IE8,Safari,理由很简单,国内客户基本用不到。这也算是个节约成本的做法,不过现在想想其实IE8和Safari相对IE6来说对CSS支持算很规范了(顺便呼吁一下"请升级您的IE6,thx")。至于Chrome,刚出来时候没发现自带调式工具,就一直放着,而且,习惯了Firefox,插件数量多嘛。
现在工作的地方Mac,Ubuntu差不多是55开,只有为数不多的人装了Windows,恩,我就是为数不多的其中一个哈哈。浏览器方面,IE6,7,8,Firefox,Chrome分布的很不均衡,只有为数不多的那群人装的是IE…
接触了一段时间才发现,原来Firebug类似的功能IE8,Chrome都是自带的,于是"豆腐你out,很out。" 现在是同时对我的评价,555啊~
flash vs sliverlight
因为主要在做Flash的工作,所以平时一般只关注Flash方面的新闻,Sliverlight在我看来一直是鸡肋,出了之后一直没当回事儿,国内对SL支持最多的估计就是腾讯,QQ安装包里有捆绑SL虚拟机,不知道MS这个单子付了多少米哈。MS自然也不是省油的灯,于是SL之后,SL3,SL4来了,有一天,忽然就发现SL已经完全不是当年的SL了,呵呵,谁叫平时不够关注哪。
怎么说呢,平时还是多关注点东西吧,尤其是竞争对手的产品,不然没法体现自己的优势的。
这就好比你和某人同时在追一个MM,你首先必须得了解MM(或者说消费者?),接着还要了解那个该死的情敌,这样才能做到知己知彼,百战不殆。
----------------------------------------------------------------------------------------------
最近打算装个Ubuntu,手痒吧,看隔壁,前后都是Ubuntu。
另外,在同学的影响下看了下Java,才发现说原来AS是这么繁琐的语法,Java简洁很多啊。

2411/090

AS3-SharedObject Flash的Cookie

该从何讲起呢,,先说浏览器的Cookie吧,可以方便的记录一些东西,但是Flash就比较麻烦了,如果要操作Cookie,还得借助其他语言,js,php,asp?着实有点让人不爽,不过Adobe给了个SharedObject给大家玩,借助这个东西保存客户端的信息就比较easy了,来,咱来看个Demo:

Demo代码:

import org.nwhy.utils.*;
init();
function init() {
	var ckie:FlashCookie=new FlashCookie("nwhy");
	if (ckie.data.txt) {
		txt.text=ckie.data.txt;
	} else {
		txt.text="暂无数据";
	}
	btn.addEventListener(MouseEvent.CLICK,saveCookie);
	function saveCookie(_e:MouseEvent) {
		ckie.data.txt=txt.text;
		ckie.flush();
	}
	btnClear.addEventListener(MouseEvent.CLICK,clearCookie);
	function clearCookie(_e:MouseEvent) {
		ckie.clear();
	}
}

是不是跟Cookie一样顺手?

2311/097

AS3-Captcha验证码类

忽然想做个Flash版的验证码,于是就做了,先来看下Demo:

哈哈,是不是觉得最后那个验证码很变态=。=

2011/092

AS3-Effect explode 图片爆炸效果

这个需求是昨天碰到的,怎么说呢,怪怪的,主要是想不出可以模拟爆炸效果的公式。
先来看Demo:

1911/090

Flash-数组作为函数参数时传的是引用

老实说,一直没有发现数组作为实参传递时传的是数组本身的引用,也就是实际地址。如此一来在函数操作的过程中,会直接改变原数组的值,有些场合可能需要这么做,而有些时候可能就不需要。
撇开直接修改的部分不谈,如何避免修改到原数组的值呢?方法应该有很多,简单的做法就是clone一个数组,来点代码吧:

var ary_test:Array=[1,2,3,4,5];
function arrayChange(ary:Array){
	var ary_tmp:Array=arrayClone(ary);
	ary_tmp.push("end");
	trace(ary_tmp);
}
function arrayClone(ary:Array):Array{
	var ary_tmp:Array=[];
	ary_tmp=ary_tmp.concat(ary);
	return ary_tmp;
}
arrayChange(ary_test);
trace(ary_test);
/*output:
1,2,3,4,5,end
1,2,3,4,5*/

ary_test数组有[1,2,3,4,5]5个元素,如果直接arrayChange(ary_test)而不var ary_tmp:Array=arrayClone(ary)再对ary_tmp进行push操作,那ary_test的值会直接被修改,最后变成[1,2,3,4,5,end]。加上一个var ary_tmp:Array=arrayClone(ary)的操作,这样ary_tmp就是另一个Object了,和ary_test的内存地址不是一个位置,这样可以完整的保存一个原始数组。
PS:话说昨天在网上看到一个如何让字符串变成传引用的求助帖,我才发现原来数组是传的引用,唉,我太弱了……

Tagged as: , No Comments
1811/090

Apache-mod_rewrite重定向模块的一些问题

应隔壁师傅要求,卸载了WAMP,重新下载PHP,Mysql,Apache,,说是要重新配置。
还好,也没有想象中那么麻烦,配置都还挺顺利。
不过在启用Apache的mod_rewrite模块的时候发现了点问题,虽然启用了,但是页面一直没有正确的重定向。
还原.htaccess,还是同样的问题,到底是哪里出了问题呢?
师傅指导:可能是目录权限配置问题,找了下,发现是httpd.conf配置里的Directory的AllowOverride None属性(有多层文件夹权限可以设置,搜索AllowOverride All比较容易找到)导致.htaccess配置被屏蔽。
把AllowOverride None改成AllowOverride All就可以了。

1711/090

WordPress-AppCloud主题

推荐个主题,AppCloud:
AppCloud
是商城类型的模板,看起来改造成自己用的模板也还不错,有兴趣的可以看下,不过记得看下版权,版权啊版权。
Demo地址:http://demo.icreativelabs.com/ecommerce/
Download地址:http://portfolio.icreativelabs.com/wp-content/plugins/download-monitor/download.php?id=Download+Appcloud

1611/099

Air-fWeather Google Weather Api使用例子

需要Flash Player9+,如果你看到这段文字,请点击下边的图片链接更新您的Flash Player,或者直接下载Air文件进行安装。
get_flash_player

AIR程序下载地址(需要先安装AIR运行时):http://nwhy.org/nwhy/fDEV/fWeather.air.
fWeather
不知道为什么,Google Weather Api的说明文档一直没有找到,难道现在连Lab状态都不是?
这次是用Flash CS4做的AIR程序,发布的时候发现Flash在生成xml配置文件的时候存在一点问题啊……

1311/090

Flash-Date 类的一些东西

最近用到Date类,发现AS2和AS3的Date类有所不同,主要将AS3的,AS2嘛,应该会慢慢被淘汰的哈。
先讲下构造函数:

Date () 构造函数
public function Date(yearOrTimevalue:Object, month:Number, date:Number = 1, hour:Number = 0, minute:Number = 0, second:Number = 0, millisecond:Number = 0)
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
构造一个新的 Date 对象,该对象将保存指定的日期和时间。
Date() 构造函数使用最多七个参数(year、month、... millisecond)将日期和时间指定为毫秒。 新构造的 Date 对象包含的日期取决于传递的参数的数目和数据类型。
如果未传递参数,则赋予 Date 对象当前日期和时间。
如果传递一个 Number 数据类型的参数,则基于自 GMT 时间 1970 年 1 月 1 日 0:00:000 以来的毫秒数赋予 Date 对象一个时间值,如独立参数所指定的。
如果传递一个 String 数据类型的参数,并且该字符串包含一个有效日期,则 Date 对象包含基于该日期的时间值。
如果传递两个或更多个参数,则基于传递的参数值赋予 Date 对象一个时间值,该时间值表示日期的年、月、日、小时、分钟、秒和毫秒。
如果传递一个字符串给 Date 类构造函数,则日期可以有多种格式,但必须至少包括月、日和年。 例如,Feb 1 2005 是有效的,而 Feb 2005 则是无效的。 下表列出了一些有效格式:
Day Month Date Hours:Minutes:Seconds GMT Year(例如,“Tue Feb 1 00:00:00 GMT-0800 2005”,这与 toString() 一致)
Day Month Date Year Hours:Minutes:Seconds AM/PM(例如,“Tue Feb 1 2005 12:00:00 AM”,这与 toLocaleString() 一致)
Day Month Date Year(例如,“Tue Feb 1 2005”,这与 toDateString() 一致)
Month/Day/Year(例如,“02/01/2005”)
Month/Year(例如,“02/2005”)
参数 yearOrTimevalue:Object — 如果指定了其它参数,则此数字表示年份(如 1965);否则,表示时间值。 如果该数字表示年份,则 0 至 99 之间的值表示 1900 年至 1999 年;否则,必须指定表示年份的所有 4 位数字。 如果该数字表示时间值(未指定任何其它参数),则为 GMT 时间 1970 年 1 月 1 日 0:00:00 之前或之后的毫秒数;负值表示 GMT 时间 1970 年 1 月 1 日 0:00:00 之前 的某个时间,而正值表示该时间之后的某个时间。
month:Number — 0(一月)到 11(十二月)之间的一个整数。
date:Number (default = 1) — 1 到 31 之间的一个整数。
hour:Number (default = 0) — 0(午夜)到 23(晚上 11 点)之间的一个整数。
minute:Number (default = 0) — 0 到 59 之间的一个整数。
second:Number (default = 0) — 0 到 59 之间的一个整数。
millisecond:Number (default = 0) — 0 到 999 之间的一个整数(毫秒)。

1211/090

AS3-视频拍照功能

Demo:


下载地址:http://dl.dropbox.com/u/477487/flash/as3/AvatarEdit.rar,呵呵,老规矩,豆腐不保证这个链接的永久有效性哈哈。

1111/092

Air-无缝安装工具AIRInstallBadge的使用方法

AIRInstallBadge是个啥,大家自己G去,使用方法也挺简单的。
先导入需要的swfobject:

<script type='text/javascript' src='{your url}/swfobject.js'></script>
//设置参数,都很明了看着设置吧~
<script>
var flashvars = {};
flashvars.airversion = '1.5';
flashvars.appname = 'fLing';
flashvars.appurl = '{your url}/fLing.air';
flashvars.imageurl = '{your url}/fLing.jpg';
var params = {};
params.wmode = 'window';
params.menu = 'false';
params.quality = 'high';
var attributes = {};
swfobject.embedSWF('{your url}/AIRInstallBadge.swf', 'fling_div', '205', '170', '9.0.115', '{your url}/expressInstall.swf', flashvars, params, attributes);
</script>

html部分的代码:

<div id="fling_div"></div>

看代码是不是就跟swfobject嵌入Flash的操作一模一样?呵呵,废话嘛,本来就是swfobject,当然一样。

Page 1 of 212