2013年10月31日
摘要: eval & window.eval & window.execScript 的区别首先看一下 eval 和 window.eval 的区别直接看示例代码:var x = 2;var test = function(){ var x = 5; eval('alert(x)');};var test_win = function(){ var x = 6; window.eval('alert(x)');};alert(x); // IE6/7/8/9/Chrome/Ff: 2test(); // IE6/7/8: 5, IE9/Chr... 阅读全文
posted @ 2013-10-31 10:04 花森 阅读(599) 评论(0) 推荐(0) 编辑
  2013年10月30日
摘要: ExtJs 源码笔记------Ext.js最近准备系统的学习一下Ext的源码,SO,话不多说,从第一篇开始。首先,先看一下Ext.js这个文件的代码结构:var Ext = Ext || {}; // 定义全局变量Ext._startTime = new Date().getTime();(function(){ // 定义一些局部变量 var ...... // 核心 Ext.apply = function(){......}; // 初始化 Ext 的一些属性函数 Ext.apply(Ext, {......}); }());... 阅读全文
posted @ 2013-10-30 16:50 花森 阅读(1363) 评论(0) 推荐(0) 编辑
  2013年9月17日
摘要: 图像的旋转缩放平移变换公式在前两天的应用中,用Flex简单写了一个拖动图片缩放的ObjectHandler控件,当时的功能还比较简单,只有缩放功能,不能平移和旋转。太不完整了!平移还好,旋转一来,就有点头疼了。旋转必然要涉及旋转中心点的问题。一般的情况是缩放的中心点是图片左上角,旋转的中心点是图片的中心,如果用户每操作一次就要手动去改变一下中心点,不仅逻辑上繁琐,也给调试带来很大的不便,最后不仅错在哪一步不知道,连怎么错的都不知道!!!。那么,比较好的解决办法是,指定中心点center,给定平移量shift,缩放量scale,旋转量rotate,及图片的原始宽高size 即可保证图片正确显示。 阅读全文
posted @ 2013-09-17 09:56 花森 阅读(3255) 评论(0) 推荐(0) 编辑
  2013年9月16日
摘要: Ext.apply & Ext.Object.merge &Ext.clone前两天写Ext的时候,碰到对象引用的问题,本想Ext有自己的拷贝对象的方法,Ext.apply(),那就用呗~~ 然,问题依然存在啊。于是,猜想:Ext.apply不能拷贝深层对象,深层对象依然是引用。先看源码: /** * Copies all the properties of config to the specified object. * Note that if recursive merging and cloning without referencing the original . 阅读全文
posted @ 2013-09-16 15:10 花森 阅读(2486) 评论(0) 推荐(0) 编辑
  2013年9月15日
摘要: Flex 学习笔记------ 自定义拖放控件ObjectHandlerFlex里面写动画效果甚是简单,而且没有兼容性问题,这一点比js好太多了。也是最近学习Flex以来感到令人欣慰的地方。废话不多说,进入正题。现在的需求是给定一张图片(或其他控件也可以,暂时我就按自己做的项目上的来举例吧),要求拖动四个角的时候,图片可以按比例缩放。这么一个常见的需求,不用多想,网上肯定已经有现成的控件了不是。google一下,果然,ObjectHandles,这个类库还能支持旋转。功能看那上去很强大,但是,跟我的需求还是有些冲突,我的要求是拖动四个角的时候图片大小按比率缩放,不能拉伸。没关系,没有的东西就自 阅读全文
posted @ 2013-09-15 16:58 花森 阅读(571) 评论(0) 推荐(0) 编辑
摘要: Js 对象拷贝对象的引用在js里面实在的太常见了。如果不注意这个问题,则往往会犯一些小白一样的错误。比如:var pa = { name: 'huasheng', age: '20', address: { province: 'zzz', city: 'aaa' }};function test(param){ var addr = param.address; addr.city = "bbb";}test(obj);console.log(obj.address.city); // bbb// 这里函数t 阅读全文
posted @ 2013-09-15 14:34 花森 阅读(675) 评论(0) 推荐(0) 编辑
  2013年9月4日
摘要: startDrag stopDragFlex的sprite有自带的拖动方法,startDrag, stopDrag:1.startDrag方法: startDrag(lockCenter:Boolean= false, bounds:Rectangle= null):void参数 lockCenter:Boolean(default = false)— 指定将可拖动的 sprite 锁定到指针位置中心 (true),还是锁定到用户第一次单击该 sprite 的位置 (false)。 bounds:Rectangle(default = null)— 相对于 Sprite 父级的坐标的值,用.. 阅读全文
posted @ 2013-09-04 23:05 花森 阅读(415) 评论(0) 推荐(0) 编辑
  2013年8月9日
摘要: 自定义按钮状态切换样式Flex 中按钮的状态主要分为四种,up、down、over、disabled。在Flex 3.x的版本中,可以给 Button 组件绑定四种不同的icon:upIcon、downIcon、overIcon、disabledIcon。.button{ upIcon: Embed(source='imgurl'), downIcon: Embed(source='imgurl'), overIcon: Embed(source='imgurl'), disabledIcon: Embed(source='imgurl& 阅读全文
posted @ 2013-08-09 16:50 花森 阅读(2031) 评论(0) 推荐(0) 编辑
  2013年8月7日
摘要: 基于LZMA算法的文件压缩与上传LZMA Encoder是AS3下使用LZMA算法压缩数据的类库。1. 压缩使用方法:// 初始化 LZMAEncoder 实例var lzma_enc:LZMAEncoder = new LZMAEncoder();// 调用压缩接口 (同步式/阻塞式)lzma_enc.encode(input_data:ByteArray, output_data:ByteArray);// -----------------// 异步调用方法// -----------------lzma_enc.addEventListener(Event.COMPLETE, onAs 阅读全文
posted @ 2013-08-07 10:31 花森 阅读(468) 评论(1) 推荐(0) 编辑
摘要: Flex 学习笔记------ 组件和视图 阅读全文
posted @ 2013-08-07 10:31 花森 阅读(189) 评论(0) 推荐(0) 编辑
摘要: FLACC & Crossbridge前段时间在研究如何在Flex项目中处理图片的一些信息,比如获取图片的颜色通道,DPI信息等,搜索了半天还是一无所获。图像处理是一个比较复杂的过程,不过想来前端处理图像也是一个必然的趋势。看看这个腾讯web在线图像处理平台,web图像处理的时代已然来临。如果以后可以直接在线PS,这是一件多么令人激动与振奋人心的事情!言归正传,既然没有现成的flex处理图像的类库,也没有能力自己动手写一个,那还是想想其他办法吧。我们知道基于c/c++处理图像的类库有很多,比如OpenGL, ImageMagic, CxImage等等,如果Flex可以提供直接调用这些类 阅读全文
posted @ 2013-08-07 10:22 花森 阅读(1431) 评论(0) 推荐(0) 编辑
  2013年8月6日
摘要: 全局事件在学习Flex的过程中,NavigatorContent 可以将不同的页面分离,这样很好的降低了代码的耦合度。但不同子页面间的数据传递或事件响应则显得稍微复杂。例如: 这里就将 myPage1 和 myPage2 两个子页面分离了,这样两个页面的功能可以单独编写。subpages是自定义的一个命名空间,需要在 application头部加上:如果这时 myPage2 需要获取 myPage1 的数据或者 myPage1 中的某个状态变换需要改变 myPage2 中的某个状态,即 myPage1 需要与 myPage2 之间进... 阅读全文
posted @ 2013-08-06 16:58 花森 阅读(448) 评论(0) 推荐(0) 编辑
  2013年8月5日
摘要: 对象的深层拷贝Flex 中对象的拷贝使用的是 ByteArray 类的 writeObject 方法。1. 简单对象直接上代码:private function cloneObj(target:Object): *{ var copier:ByteArray = new ByteArray(); copier.writeObject(target); copier.position = 0; return copier.readObject();}var testTarget:Object = { name: 'zyc', ... 阅读全文
posted @ 2013-08-05 14:27 花森 阅读(351) 评论(0) 推荐(0) 编辑
  2013年7月25日
摘要: AS 中的ExternalInterface类 可以用于和JS的交互1. AS 调用 JSAS 调用 JS 主要使用 ExternalInterface.call() 方法:var result:String = ExternalInterface.call("jsFunc",params);// jsFunc 是 js里面对应该函数的引用,params是该函数的形参 2. JS 调用 AS要想在 JS 中调用 AS,需要现在 AS 中调用ExternalInterface.addCallback() 方法: private function asFunc(s:String 阅读全文
posted @ 2013-07-25 21:13 花森 阅读(315) 评论(0) 推荐(0) 编辑
  2013年7月19日
摘要: Local Shared Objectactionscript中,SharedObject类可以把数据存在客户端。shared object 有两种类型:local 和 remote。其中Local Shared Object (LSO)类似于浏览器的cookie缓存功能,可以用来记录用户的登录状态或是其他信息。相对于cookie来说,LSO可以存储更多的数据量且不会超期。1. 读写 LSOvar example:SharedObject = SharedObejct.getLocal("example");这里getLocal()方法,若存在名为example的LSO,则 阅读全文
posted @ 2013-07-19 22:56 花森 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 最近开始学习Flex开发,遇到一个需求:上传图片之前需要在本地先预览图片。但是有两个问题: 1.flex4里面还不支持对*.tif 和 *.tiff格式的预览,一方面可能是因为tif图的体积比较大,非常耗内存,另一方也有可能是因为tif图片的格式比较复杂。 2.Jpeg格式的图片中颜色通道主要分为三种:rgb,cmyk,grey。而cmyk的图片在浏览器中显示时颜色会失真。问题1没有想到好的解决的办法,虽然也在github上找到一个开源的读取tif图片的类库,但是体积过大,预览的时间很慢。关键的是tif格式的图片中颜色通道为cmyk的还是不能正确的显示。下面是部分代码,及测试效果: ... 阅读全文
posted @ 2013-07-19 15:43 花森 阅读(1065) 评论(1) 推荐(0) 编辑
  2013年7月6日
摘要: 原文连接:http://www.nczonline.net/blog/2013/06/25/eval-isnt-evil-just-misunderstood/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+nczonline+%28NCZOnline+-+The+Official+Web+Site+of+Nicholas+C.+Zakas%29eval() 不是魔鬼,只是被误解了在整个 javascript 的语言体系中,我不敢说还有什么能比对 eval() 的误解更深的了。这个简单的函数将一个字符串当作 阅读全文
posted @ 2013-07-06 17:35 花森 阅读(830) 评论(0) 推荐(0) 编辑
  2013年7月5日
摘要: 原文链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management?redirectlocale=en-US&redirectslug=JavaScript%2FMemory_Managementjavascript 内存管理介绍低级语言(c语言),拥有底层的内存管理原语:malloc() 和 free()。而在 javascript 中,变量的内存是在创建过程中自动分配的,当变量不再被引用时会自动释放其内存。后面的这一处理过程被称为“垃圾回收”。这里的“自动”导致了一系列的困惑,并且给 java 阅读全文
posted @ 2013-07-05 00:52 花森 阅读(308) 评论(0) 推荐(0) 编辑
  2013年6月19日
摘要: 最近调研了一下 Javascript 模版的使用情况。下面就简单的总结一下 Jqeury Template 插件和 Handlebars.js 二者的用法。Jqeury Template 插件1. Jquery 中生成 template 的方法有两种,一种是字符串 string 的形式,另一种是 这个个人倾向于使用第二种形式。首先字符串形式的出错率较高,同时也省去了创建 template 的中间步骤。第二种使用$("#template").tmpl( users.people, users).appendTo( $dom );这里 $item 即指代了 users.或者说, 阅读全文
posted @ 2013-06-19 22:23 花森 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 翻译JQuery.tmpl ( template, [data ,options] )* template : HTML 或 text 组成的 template;* data :将要渲染的数据,可以是 Javascript 中任意的一个数据类型,包括 object 或 array;* options :一个可选的用户自定义 key-value 键值对,扩展了 ‘tmplItem’ 的数据结构,并在 template 的渲染过程也可以使用。返回:JqueryJquery Templates 插件的下载地址 是:https://github.com/BorisMoore/jquery-tmplJQ 阅读全文
posted @ 2013-06-19 15:33 花森 阅读(1253) 评论(0) 推荐(0) 编辑