Aug 15
最近闲暇之余会看一看《别对我说谎/别对我撒谎》这部美剧,虽然最后都会被莱曼博士取得胜利,但是过程很精彩。
最为难得的是这个剧目很严谨,找不出什么逻辑上的漏洞。
点击在新窗口中浏览此图片
《别对我说谎/别对我撒谎》所讲的故事是如此的不可思议:看着你的眼睛,观察你的小动作,听你的声音,和你握手……男主角Lightman博士就会知道你是否说谎,以及为什么说谎。Lightman博士成立了一个私人机构,利用自己的所长为侦查犯罪提供帮助。他的同事包括Foster博士、一名杰出的心理学家;Loker, 《别对我说谎/别对我撒谎》完全不会撒谎因此饱尝恶果的首席分析人员;还有Torres,本能地对他人微妙的情绪变化有敏锐的洞察力,据她自己说这种能力来源于“交过很多个男朋友”。在这一个个“人体测谎仪”的监视下,所有的谎言都将无所遁形……该剧播出两周便杀入全美收视20强,在18岁到49岁的主力收视人群中收视率排名第12位,收获了无数人气。此外,男主角的扮演者Tim Roth的个人魅力也不容小觑,浑身上下洋溢着文艺中年的风度,他曾出演过《落水狗》《绿巨人2》等片,不过最广为人知的是他在《海上钢琴师》里扮演的1900的角色。   在剧中,Lightman博士的“特异功能”来自于多年来对某原始部落成员眉毛细微变化的研究,他的研究表明人不屑的时候嘴唇会轻微上扬,单边耸肩表示你对自己所说的事情不抱任何信心,抿了抿嘴表示听到了不喜欢的消息……首集一开始,Lightman博士就与一个令FBI感到束手无策的制造爆炸案的嫌犯狭路相逢。没有逼供、没有物证,Lightman和嫌疑人聊了一会儿天,捕捉到了对方耸肩、吸鼻子等几个转瞬即逝的“细微表情”后便找出了爆炸物的安置点,真是神乎其技。
点击在新窗口中浏览此图片
顺便上一个《别对我说谎/别对我撒谎》第二季的观看地址:http://www.hibaby.tk/vod-read-id-727.html
Aug 14
当门户网站频道过多的时候,并且绑定的是不同的二级子域。
这个时候就会发现,JS在整站中跨域的问题很让人恼火。
到处都是无权限。
我们会想到用iframe的方式来调用页面来实现跨域,但是那很麻烦很麻烦,而且还不好控制。
JQ中不是有跨域的解决方案吗?
NO!那个也麻烦。
flash本身就有跨域的方案,本身加入System.security.allowDomain("*");
然后写一个跨域规则的crossdomain.xml即可。

flash跨域类这么写:

package {
  
  import flash.display.*;
  import flash.events.*;
  import flash.net.*;
  import flash.external.ExternalInterface;
  import flash.system.Security;  

  public class FlashProxy extends Sprite{  
    
    private var _params:Object;
    private var _loader:URLLoader;
    private var _method:String;
    private var _id:String;
    private var _parse:Boolean;
    private var _inited:Boolean;
    private var _data:String;
    private var _xml:XML;
    
    public function FlashProxy(){
      Security.allowDomain('*');
      _inited = false;
      _data = "";
      _parse = true;
      _method = URLRequestMethod.POST;
      _loader = new URLLoader();
      configureListeners(_loader);
    }
    
    public function load(page:String,params:Object=null):void{
      if(!_inited){
        showError("FlashProxy还没有初始化!");
      }
      if(page == null || page == undefined){
        showError("page参数为必须的!");
        return;
      }
      var vars:URLVariables = new URLVariables();
      vars.tmp = Math.random();
      if(params != null){        
        for(var key in params){
          if(key == "tmp"){
            continue;
          }
          vars[key] = params[key];
        }
      }      
      _loader.dataFormat = URLLoaderDataFormat.TEXT;
      var request:URLRequest = new URLRequest(page);
      request.method = _method;
      request.data = vars;
      _loader.load(request);
    }
    
    public function setParse(value:Boolean):void{
      _parse = value;
    }
    
    public function setMethod(value:String):void{
      if(value == null || value == undefined){
        return;
      }
      value = StringUtil.trim(value);
      if(value.toLocaleUpperCase() == URLRequestMethod.POST || value.toLocaleUpperCase() == URLRequestMethod.GET){
        _method = value.toLocaleUpperCase();
      }      
    }
    
    public function getData():String{
      return _data;
    }
    
    private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        }
    
    private function completeHandler(event:Event):void {
      _data = _loader.data;
      if(_parse){
        try{
          _xml = new XML(_data);          
        }catch(error:Error){
          _parse = false;
          _xml = null;
          Tracer.debug("xml解析错误!");
        }
      }
            ExternalInterface.call(_id+".onComplete");
        }

        private function openHandler(event:Event):void {
            ExternalInterface.call(_id+".onOpen");
        }

        private function progressHandler(event:ProgressEvent):void {       
      ExternalInterface.call(_id+".onProgress",event.bytesLoaded,event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            showError("读取失败!\n  不能跨域访问,可能是你在web服务端根目录下没有放置crossdomain.xml文件!");
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            showError("读取失败!\n  HTTP错误代码为:"+event.status);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            showError("读取失败!\n  可能是因为下列原因:\n    1.网络忙,请稍候重试!\n    2.访问的web服务端没有开启!");
        }
    
    public function alert(msg:String):void{
      navigateToURL(new URLRequest(msg));
    }
    
    public function showError(msg:String):void{      
      ExternalInterface.call(_id+".onError",msg);
    }
  }
  
}


当然,这个是较简单的一个跨域类。
APMServ的作者在其博客上也发了一个JS通过FLASH来跨域的方案,很全面。
参考地址是:
引用
http://blog.s135.com/ajaxcdr/
Aug 12
应一位网友之邀,为他做一个和FIVERR.com一样的网站。
上网找寻了一番,没有什么可以拿来改的程序,也就只有自己来做了。
了解了一番FIVERR.com这个网站,其实也就是微博和B2C的结合体,有人说这很像威客。
在大学期间给外面的一个学长做过一个威客系统,在当时威客系统缺乏的情况下,销售的很是不错。
只可惜那时候不懂,被那学长占了很大便宜。直至今日,这套威客程序依旧在谷歌里面可以搜得出来。
所以就想到了在这个程序上继续的意图,昨晚翻开了以前的程序备份,看了一遍代码,觉得很是无语。
那时候果然是没有概念,所以还是重新来写一写吧。
预计20号上线测试,22号交付。
Aug 11
近期会有一个单子要做
其中涉及到了SNS的一些要素,而一些表现形式上都可以使用flash来完成。
其中涉及到的跨域问题毋庸置疑是要flash的。
而批量上传,视频等功能也不得不用flash来完成。
目前来说,这个单子中的群组功能将是一个挑战,虽然很多的程序都有,但是自己没做过
值得,研究一番。
Tags: ,
Aug 10
今天彪哥一时兴起,在BBS上转来转去。
结果用他那过时的IE6在首页发现,首页半天都加载不下来。
首页只有一个阿里妈妈的远程动画和些图片以及JS。
根据以往经验来看,就是这个flash的问题。
因为在IE6这个单线程的浏览器中,来进行多线程的操作,那简直是痛苦。
最后不得不把那动画换成了图片。
IE6快死掉吧。
Tags: ,
分页: 4/33 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]