2010-12-13

貌似很久没有好看的电影了

自从最近看了生化危机:来生后,完全失望了。对生化迷来说,除了游戏是不朽的经典外,电影已经沦陷了。

从头到尾的一首配乐不说,忽快忽慢的镜头让人反胃。看画面也不像是低成本的电影。难得国内会引进这部“恐怖”片,但评价真的很低。

盗梦空间给人的是什么感觉呢?是制造了一堆的悬念,故事也很离奇,但总觉得人物少了些什么。好想念当年看星球大战的时候,一个从内到外都充满着活性的阿纳金。

很期待明年的加勒比海盗,希望型男不会让人失望。

国内的电影还在走恶搞,低成本搞笑片的路线,没兴趣。

2010-12-11

某些IE内核浏览器导致的flash通信问题

昨天那篇博客里提到“设置allowscriptaccess为always”的问题。

后来测试发现,在IE下正常,在chrome下也正常,由于本人经常使用chrome,没有及时的发现这个问题。

在某些IE内核的浏览器下,首次打开正常,第二次打开的时候又出现allowscriptaccess为空的问题,这意味着flash跟页面的通信又断了。

在网上找了很久,发现了这篇博客,里面提到遨游浏览器下的一个“js调用flash里的方法可能会失败”的问题,还给出了出处。于是继续溯源。

这篇博客提到“Maxthon引发的系列问题”,指出遨游在js处理、缓存机制上都存在问题。

继续溯源,发现了这篇博客,应该是这一串文章的起点了,说到了在遨游下flash与js交互的问题和解决办法——在地址后添加随机字符串。

还发现遨游的bug不止这些。

测试发现不止是在遨游下有这样的问题,360、搜狗的兼容模式、世界之窗都有一样的问题。

2010-12-10

Flash的跨域访问


最近做了个新浪微博的小应用,遇到了不少头疼的问题,主要出在Flash的跨域访问问题上。

应用地址:这里

要做这个应用,没有自己的服务器,所以在网上找:

应用是显示在微软的smallbusiness上,该空间是静态的,有自助建站功能,页面不需要我去设计了。

flash存放在新浪的SAE上,新浪SAE提供php空间,作为新浪app的运行和开发平台。

微博的数据由新浪微博API获得。

应用的数据存储在SAE的mySQL数据库中。

开发过程中出现了这样一些问题:

原本想将flash挂在smallbusiness上的,发现不能访问微博API的数据,存在跨域问题。在网上寻找解决办法,最多的是说在服务器上建立crossdomain.xml文件。该文件是存放在被访问的域名下,而微博API域名下我也没办法去放置这样一个文件。。所以用了另一个方法解决:在SAE上用php做数据中转。于是封装了几个用到的api,在SAE应用域名下建立了自己的crossdomain.xml,这样flash就能获取微博的数据了。

flash读写SAE上数据库的解决办法也是跟上面说的一样。

flash的微博应用本身有个获取授权码的问题,因为没办法callback,一般情况下是需要弹出授权页面,由用户自己手动获得授权码并输入到flash中。而flash弹出的窗口是不被浏览器信任的,很容易被拦截。所以为了绕过这个过程,也为了避免弹出窗口被屏蔽,使用了php页面授权,再加载flash的方式。其中就会在很多个授权页面中进行跳转,详见OAuth授权

授权的过程中,key是保存在cookie中的,这又出现一个问题,我在IE下浏览总出现key丢失的情况,原因是cookie不受信任,IE安全性设置过高,不受信任的cookie没有保存,授权就没办法完成了。于是将key直接放在页面参数中传递,授权可以通过。

问题接着来,获得授权后的key需要保存,不使用cookie,就使用flash的本地数据的保存方式,这就需要在php授权之前有个验证是否存在保存过的key的一个步骤。

以上这些所有的授权步骤都在smallbusiness的一个页面中完成,用户完全看不到页面跳转的过程,因为使用了一个iframe(目前不知道其他什么办法,iframe似乎也不是很受欢迎),载入的是存在SAE上的php页面。

这其中又出现了一个flash的安全问题,跨域的flash跳转页面当非“_blank”的时候又是不被信任,需要设置allowscriptaccess为always。

至此,在一个静态页面中,flash完成了授权页面的跳转,访问了微博API数据,读写了SAE上的数据库,最终呈现出来。