Android开发环境搭建

2011年11月25日 由 thankwsx 没有评论 »

本文基本为

官方页面 http://developer.android.com/sdk/installing.html 的翻译加简写

1.准备阶段

1.1 操作系统 xp以上 ubuntu8.04以上,其他不表 http://developer.android.com/sdk/requirements.html 这里有详细的

1.2支持的 ide

1.2.1 eclipse:eclipse3.5(Galileo)及以上 【eclipse jdt plugin】 ,JDK5或者6【jre不行】,Android Development Tools Plugin【推荐熟称ADT】

1.2.2 其他开发环境需求 : JDK5或者6,apache ant 1.8及以上, gcj不兼容

1.3 硬件要求不细说

2.下载SDK启动包

SDK启动包仅包含核心工具组件,用于下载其他SDK组件。就是用于下载其他组件的工具。

官方下载地址是:http://developer.android.com/sdk/index.html

3.安装eclipse的ADT插件

推荐的开发方式是使用eclipse的adt插件,由官方开发,功能强大。

【插曲一支:本人安装的是eclipse for js dev,130M左右,结果出来一句 failed to create jvm,奔溃

在eclipse.ini中加一句配置

-vm
C:\Program files\Java\jdk1.6.0_29\bin\javaw.exe #我实际安装jdk的路径 (-vm及下面这句要位于-vmargs前面)】
如果通过eclipse下载安装有问题,还可以手动安装 从这里下载 http://dl.google.com/android/ADT-15.0.1.zip

当然不用eclipse也是可以的。http://developer.android.com/guide/developing/index.html

浏览器地址栏开发人员用途

2011年9月11日 由 thankwsx 没有评论 »

chrome:

about:cache
about:credits
about:dns
about:flags
about:gpu
about:histograms
about:memory
about:net-internals
about:plugins
about:sync-internals
about:terms
about:version

 

firefox:

about:config

 

页面嵌入swf的object标签的salign属性

2011年9月3日 由 thankwsx 没有评论 »

HTML标签有自己的尺寸,width和height。

object加载的swf文件有自己的舞台尺寸,stageWidth和stageHeight。

而加载swf的object的HTML代码一般如下,为了突出重点,此处只强调salign属性。

<object align=”top” data=”swfshell.sw” style=”outline:none;width:800px;height:800px;”>

<param name=”salign” value=”tl”>

<param name=”scale” value=”noscale”>

<param name=”type” value=”application/x-shockwave-flash”>

</object>

 

salign:参考 http://kb2.adobe.com/cps/127/tn_12701.html#products 官方说明,可选的值有t,l,r,tl,tr。表示object标签加载的swf文件相对html节点的对齐方式。

不添加此参数,则flashplayer会将swf文件按center center的模式放置在页面上。如果添加的话,IE和firefox都是可以识别的。chrome不识别,那怎么办呢?

看来只能从flash文件里想办法了,在flash的as代码里增加一句stage.align=’TL’;是可以的。

chrome不适用salign的demo页面,请看。http://test.thankphp.net/20110902/swfshell.html

 

匿名函数前的分号什么情况下是必不可少的?

2011年8月31日 由 thankwsx 没有评论 »
var a = function() {
}
(function(){})();
这样的写法会导致出错。
但是如果匿名函数前面不是函数声明赋值,而是if(){}语句,则不会报错。
下面是可供测试的代码:
<script>
var a = function(){
alert(1);
}
(function(){})();
</script>
<script>
function a(){
alert(1);
}
(function(){})();
</script>
<script>
var a=2
(function(){})();
</script>
<script>
if(1) {
}
(function(){})();
</script>
究其原因还是JS代码中的()的二义性导致的。
这篇BLOG可供参考。
总结就是:
()具有二意性,
意一为表达式中的提高优先级别 比如 (a+b)*c
那该运算表达式优先计算a+b
意二 则为函数调用比如(function(){})()
上面的后面()即为匿名函数(function(){})的调用

opera的安全限制

2011年7月8日 由 thankwsx 没有评论 »

测试的时候,hosts一般会将某些域名绑定到内网地址。

在opera下会出现如下问题:

解决的办法是:

 

opera这一安全限制是不是有点过于严谨了?

 

有关flash,有关iframe

2011年6月16日 由 thankwsx 没有评论 »

flash在ie下(不仅仅是ie6)有一个严重的bug(不过场景不太常见)
iframe中嵌套的swf文件,如果有navigateToURL操作,且URLRequest对象的method为post,则,该post数据发送会出错。具体表现在:Content-Type HTTP-REQUEST请求头会丢失。
另外记录一下iframe节点的操作代码:

 

Flash打开弹窗分析

2011年6月13日 由 thankwsx 没有评论 »

AS3中打开新窗口可以使用navigateToURL(URLRequest,window)打开一个窗口。

但这里面充满着奥秘!

jQuery和mootools在事件绑定函数中传参的区别

2011年5月29日 由 thankwsx 没有评论 »

jQuery中绑定事件时传参比较简单

$(xxx).bind(“click”,{‘x’:'xxx’,'y’:'yyy’},clickHandler);

 

function clickHandler(evt) {

alert(evt.data.x); //即可获取传递的参数
}

 

Mootools也有同样的功能,不过写起来稍微麻烦点:

$(xxx).addEvent(click”, clickHandler.bindWithEvent($(xxx),['xxx','yyy']);

function clickHandler(evt,x,y) {

alert(x); //即可获取传递的参数
}

 

 

 

 

元素在页面不显示的原因浅谈

2011年5月27日 由 thankwsx 没有评论 »

经常遇到意外,

应该出现的元素不出现在页面上。

大概原因不外乎CSS设置有问题:

比如display为none,或者visibility为hidden。

还有一种不常想到的原因:那就是width或height为0。

想像这样一个场景,隐藏一个元素,加一个动画效果,高度由100渐变为0,本来这样就够了,在动画结束后画蛇添足的加了一个display=none,

那么想再度显示这个元素,单单设置display是不够的,忘记将高度再改回来了。

 

so,本文提供一种查bug的角度,仅供参考。

 

ps:元素内的节点都采用绝对定位(position:absolute)那么该元素也是不占空间的。如下所示

<div style=”background:#000;”>

<div style=”position:absolute;left:10px;top:20px;background:#ff0000;width:100px;height:40px;”></div>

</div>

关于html实体——代码编码和页面编码的联系

2011年5月19日 由 thankwsx 没有评论 »

这个话题说普通也普通,是因为这个属于HTML方面的基础问题,可能你不知道这个名字,但是曾经见到过。
说特殊也特殊,很多写代码几年的人可能都不太清楚这方面的问题,也没深究过。

下面说下我今天碰到的一个小问题,html实体,&lt;  &gt;这2个很常见,分别对应 < >, &#29482;这个就是汉字“猪”所对应的html实体。

今天遇到的问题是:

alert(“关闭”.charCodeAt(0)); //理论上弹出的应该是“关”这个字的html实体编码 20851(0×5173),“闭”是38381(0x95ed)

但是这个和html页面编码又产生了联系,如果页面编码是utf8,meta编码是gbk。

代码如下:
document.write(“关闭”.charCodeAt(0));
document.write(“关闭”.charCodeAt(1));
document.write(“关闭”.charCodeAt(2));
则会出现 37711(0x934f), 25277(0x62bd) 26868 (0x68f4)

原因很简单,程序是在utf-8编码下编辑的,而meta设置为了gbk,导致浏览器对JS中中文的解析错乱。
alert(“关闭”.length)结果会是3。 虽然JS代码内部默认是utf8编码,但是如果编辑器字符集和页面字符集产生冲突之后,会产生一些意想不到的问题。

附注:
正文中3句document.write写出一个乱码的字符:“鍏抽棴”。
在php中,我们执行这样的语句: echo mb_convert_encoding(“鍏抽棴”,”gbk”,”utf-8″); 得到的会是真正的中文字符:“关闭”

对于字符集和字符编码的理解还需要再加深一些。

参考资料:http://www.iteye.com/topic/97803