Flex是由界面语言MXML、脚本语言ActionScript组成的,主要针对开发人员,也就是代码写的较多的一类人。MXML用来划出界面,功用类似HTML。AS和JS同出规范ECMAScript,不过AS更加地面向对象,浏览器部署依赖Flash插件,桌面部署依赖AIR。JS是浏览器原生支持的,因为考虑安全性,JS无法访问客户端本地数据,这时候Flash只是作为一种替代。至于是否大量应用,还要看开发需求及开发者个人喜好。本人初学,如果有错误之错,敬请指正。
开发Flex应用一般使用Adobe的Flex Builder软件,或者基于Eclipse的Flex Builder插件。官方提供下载。
事件绑定
AS和JS事件绑定类似,不过AS不用考虑浏览器兼容了,直接对象调用addEventListener方法即可。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" creationComplete="initApp(event);">
<mx:Script>
<![CDATA[ » » »阅读更多
JQuery最佳实践
关于使用jQuery时的最佳实践。使用最新版本的jQuery库,优化选择器查询,尽可能使用javascript原生的方法,缓存查询后的jQuery对象,使用实践委托,减少修改DOM次数等。
JQuery设计思想
基础的jQuery使用方式,jQuery的一些设计思想。如果有javascript基础可迅速掌握,或许不了解javascript童鞋还是要读读《jQuery基础教程》。
阅读更多
我现在拥有的思考维度局限于经验,写出的文字只能是这个阶段读书或思考的派生物,谈不上深度和广度。只是在我这个阶段对自由的理解。源于阅读《历史深处的忧虑》,作者林达。
自由究竟该是什么样子的,而在生活中我们又希望这两者该如何体现出来呢。我们的历史是一个缺少自由的历史,充满着镇压和统治,似乎这历史延伸的文化不断地影响着我们现代的生活,以为这个时代比那个时代前进了,可似乎未必。现如今的矛盾是我们对自由的诉求大于统治者能够给予的尺度。所以,我感觉,我们的自由是统治者所给予我们的自由,不是法律赋予我们的自由。生活中自由该是什么样子,这个无从想象,毕竟我们没有活在那样的环境下。
美国的自由可以通过《历史深处的忧虑》了解一些,毕竟我们没有经历过美国那个环境,对自由的认识只能停留在作者描述阶段。我很认同的一个观点,美国当初建国的顾虑,国家机器的运转不能剥夺人民的权利。任何人不能凌驾于宪法至上,总统也不可以, » » »阅读更多
比较反感这个功能,如果某个网站有价值,用不着提供这种功能。不知为何,领导们都挺喜欢这个功能,似乎放这个功能上去,就能增加流量似的。既然有这方面的需求,那么就得弄点代码,迎合一下领导的胃口。
利用JS操作浏览器而非页面,似乎只有IE和Firefox提供了这种接口,大概也是历史上就提供了这种功能了。我所知道的,其它的浏览器没有提供这种接口。况且这也不是JS应该干的事。
function addFavorite(url, title) {
url = url || location.href;
title = title || document.title;
if (document.all && window.external) { // for IE
window.external.addFavorite(url, title);
} else if (window.sidebar) { // for Firefox
window.sidebar.addPanel(title, url, '');
} else { // 其它浏览器
alert('快捷键 Ctrl+d 添加收藏');
}
}
如果参数为空,会使用当前页面的标题和链接地址。其它的 » » »阅读更多
传统的编程语言模型中似乎很少有提及非阻塞这个特性的,至少对于我来说,对这个概念很是不解。习惯了阻塞式的编程,在来看nodejs的非阻塞特性,感觉很是新奇,也感觉这种特性更加合理、有效率。
就我理解的来说,阻塞就是在运行一段程序的时候,后续的程序段都是被阻塞的、无法运行的。这样资源便得不到充分利用,效率上来说就有点折扣。而对于非阻塞的程序来说,运行时间长的程序并不会阻塞其它程序段得运行。
访问文件作为例子,传统的步骤一般是打开文件,然后读取或写入,然后关闭文件。
fp = File.open('foo.txt', 'r')
fp.each_line do |line|
puts line
end
fp.close()
puts 'end here'
打开文件,读取其中的内容,输出内容。在文件内容没有处理完,是无法执行其后的程序的。再看一下nodejs是如何处理这样的情况的。
var fs = require('fs');
fs.readFile('foo.txt', 'utf-8', function(err, data) {
if (err) throw err;
console.log » » »阅读更多
开发环境在ubuntu10.04下。
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
$ gem -v
1.3.7
$ node -v
v0.4.9
$ npm -v
1.0.15
$ git
....
确保以上软件安装完成。可参考如下文章。
Ubuntu 10.04安装ruby1.9.2和rail3.0.1
Ubuntu下安装nodeJS
npm
Set Up Git
准备工作尚未完成,还要到heroku官方注册账户,Sign Up。
下面要安装heroku软件包,推荐使用gem来安装。
$ gem install heroku
$ heroku version
heroku-gem/2.3.6
如果执行heroku命令的时候,终端报错,找不到该命令,这是因为heroku不在环境变量里,还要执行下面的步骤。
$ gem environment
......
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9.1
......
$ export PATH=/usr/local/lib/ruby/gems/1.9.1:$PATH
准备工作基本完成。下面开始创建nodejs应用。打开ubuntu的终端控制台,执行
$ mkdir node_app
$ cd node_app
$ gedit web.js
然后将下面的内 » » »阅读更多
憋了N天,终于整出来个jQuery的幻灯片插件。jQuery的插件资源非常丰富(25个必须学会的jQuery幻灯片插件教程),没有必要重复发明轮子,任务需要或技能训练,必要的时候还是要动手去做一下,有利于提高JS能力。
先来看一下如何使用该插件,知道如何使用jQuery访问DOM,就可以轻松使用该插件。当然要先从HTML结构开始出发。
HTML代码
<div id="ad_gallery">
<div class="ad_sheet_wrap">
<ul class="ad_sheet_con">
<li><a href="#"><img src="image/image_1.jpg"></a></li>
<li><a href="#"><img src="image/image_2.jpg"></a></li>
<li><a href="#"><img src="image/image_3.jpg"></a></li>
<li><a href="#"><img src="image/image_4.jpg"></a></li » » »阅读更多
学了一段时间的Ruby,长久未使用,日渐模糊,重新来过,留作笔记。
数组和散列表 (Arrays and Hashs)
Ruby的数组(arrays)和散列表(hashs)是被索引的收集(indexed collections)。其它编程语言散列表叫做哈希或者键值数组。
散列表支持任何对象作为它的键。
创建数组(Array),方括号包裹逗号分隔的字符串,数组索引从0开始。
fruit = ['apple', 'orange', 'banana', 'melon']
快捷方式
fruit = %w(apple orange banana melon) // 注意空格
fruit.class # Array
创建散列表(Hash),花括号包裹,键和值之间用=>分隔。
my = {
"name" => "david",
"sex" => "male",
"age" => 23
}
my.class # Hash
访问数组或散列表,只需提供相应的索引即可。访问不存在的索引会返回nil,类似于其它语言中的null。
fruit[0] # apple
my['name'] # david
fruit[4] # nil
my['qq'] # nil
阅读更多
神马?!不知道什么是nodeJS,那你跟我一样OUT了。简单说来,nodeJS是运行于服务器端的语言,基于V8引擎,就是说以后前端和后端都可以用JS来写,很期待!关于nodeJS的详细信息,请直接访问官网。
下面来看一下如何安装nodeJS。linux下安装可以采用简单的三部曲,window下可以使用cygwin安装。我的测试环境用的Ubuntu。
首先从官网下载最新的套件,进入下载页。
$ wget http://nodejs.org/dist/node-v0.4.9.tar.gz
$ tar -zxvf node-v0.4.9.tar.gz
$ cd node-v0.4.9
$ ./configure
$ make
$ make install
不幸的是,安装过程中出现如下错误。
Checking for openssl : not found
网上有解决办法,似乎缺少libssl-dev开发库,用常用的软件安装命令可以搞定它。
$ sudo apt-get install libssl-dev
然后在控制台下输入
$ node -v
v0.4.9
即可看到我们安装的nodeJS的版本号。
最后上一个nodeJS官方的代码。
var http = require » » »阅读更多
用原生的JS写动画效果的确是个很令人纠结的事情,倒不如直接用jQuery来写,亦或找一些jQuery插件。能力达不到的时候,为了工作进度,只能采取心有不甘的手段。
如果真的获得能力的提高,我认为还是必须去学习那些优秀的程序员写的优秀的代码。图片切换并不是很难,只不过要获得一些动画效果有些费力,由于本人数学不好,加之不努力,所以做起动画来很吃力。
动画切换要结合JS和CSS达到想要的效果。图片切换一般涉及的CSS的定位,以及JS定时器的知识。定位方式一般定时变换幻灯片的left或者top属性,实现图片移动。还有一种是设置幻灯片的父容器的scrollTop或者scrollLeft属性。这里用的是定位方式。
首先HTML结构遵循一定的规律,至于为什么,下面会提到。
<div id="J_ad_gallery" class="ad_gallery">
<div class="ad_img_wrap">
<ul>
<li><img src="image/banner-1.png" width="514" height="191" /></li&g » » »阅读更多