看看想想记记

[置顶]flash as3常见错误及解决办法

1.SecurityError: Error #2000: 没有活动的安全上下文。
可能是用到相关的资源没有找到

2.[Info] Could not connect to the player, will try to connect for the next 56000 ms

这个很悲剧。我还以为是flash debug的问题,按照:老外的说法:,但好像也不行,结果是因为一个加载xml的问题,FLASH游戏进不去了,但FDT又没有报错!汗

另外有可能的问题如下:

http://hi.baidu.com/%D0%A1%C6%F3%B6%EC108/blog/item/de8a89013f77d362cb80c46d.html

2.5:
转SecurityError: Error #2148: SWF 文件 (SWF 文件不能访问本地资源) 的办法

http://uh.9ria.com/space.php?uid=38376&do=blog&id=8235

3.都用null来判断了,居然还无法判断
有时一个变量会出现这情况,尤其是AMF返回的数组数据的问题:其实这个时候要看看as3的定义:
其实Null、NaN和undefined都是变量的默认初始值。变量类型不同,系统给与的初始值就不同:
int,uint – 0
Boolean – false
Number – NaN
String,Array,Object – null
未指定变量类型 – undefined

来源这里

4.replace join
参考这里

var htmlString:String = string.split("\n").join("");

再来

var htmlString:String = string.replace(/\n/g, "");

5.空对象
这个是比较常出现的情况,比如在用户刷新过快的时候常常会出现:
a)前面刷新的对象已经清除了,但后面请求还没结束,所以出现这种
b)aMF请求过快,多次请求,导致前面的flash对回调函数还没处理完,后面的amf请求又来了,会导致前面没调用完,后面就来了...

6.按钮点击无效
var txtfield:TextField=new TextField();
txtfield.text=”MOVE1″;

var btnsprite:Sprite=new Sprite();
btnsprite.name=”MOVE2″;;
btnsprite.buttonMode=true;

btnsprite.graphics.beginFill(0x00cc00);
btnsprite.graphics.drawRect(0,0,50,30);
btnsprite.graphics.endFill();

btnsprite.addChild(txtfield);

//btnsprite.mouseChildren = false;
addChild(btnsprite);

btnsprite.addEventListener(MouseEvent.CLICK,ClkRotateBtn);
如果不加上mouseChildren会点不到??因为textfield的会跑到上面去了,
所以mouseChildren的意思就是:子对象的鼠标是否起效果??

7.从fdt(eclipse) 引入项目:
可以参考这里,有图有真相:

1)在eclipse里新建一个与要导入的工程同名工程;
2) file–>import–>Existing Project into Workspace

8.SDK安装
在fdt的安装过程中会不断出现要求有SDK安装的提示什么3.6 4.4 4.5神马的,有个简单的办法 
把SDK下载下来后,解压利用他的SEARCH功能,就可以直接把SDK给加进去,不知道会有什么问题没有。。目前

android应用程序去广告备忘,

一年前搞过android的APP反编译,但一段时间不用就忘记了,差点都放弃了,现在记下来,以供备忘.

现在常见的有google ads / admob / youmi (有米)

有时一些APP很过份,加的广告让程序无法直接查看?!头顶一个广告,栏腰又一个广告,真是让人无语,找不到原作者的情况下自己动手去了.

最简单的办法就是:
修改/etc/hosts 文件,使用root explorer来修改host文件
如我的:
127.0.0.1 localhost
127.0.0.1 static.youmi.net
127.0.0.1 gw.youmi.net

或者直接在路由器把这些域名给屏蔽掉!

下面是比较复杂的方式了,但比较彻底

原理:
用apktool反编译出apk源文件来,用工具(记事本或者ultraedit)修改去掉广告[当然也可以修改应用程序本身哦!],再用apktool打包程序,最后用签名工作签名安装测试.

步骤:[参考来自 又一个反编译利器Apktool ]
安装

1.先装JAVA环境,JDK/JRE都行,官网下载 装过的就跳过吧

2.下载apktool.jar及相关文件,这里下apktool-1.0.0.tar.bz2 和apktool-install-windows-2.1_r01-1.zip (这些如果没有直接去google搜索最新下载!!!)

3.解压apktool.jar到 C:\Windows 解压apktool-install-windows.zip到任意文件夹(例如E盘根目录)

4.Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看。会列出一些帮助的话就成功了。
Apktool 命令

apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABC

apktool b ABC 从文件夹ABC重建APK,输出到ABC\dist\out.apk

然后我们反编译一枚软件玩玩…

E:\>apktool b AMM
I: Checking whether sources has changed…
I: Smaling…
I: Checking whether resources has changed…
I: Building resources…
I: Building apk file…

用Auto-sign签名E:\AMM\dist\out.apk 安装

这样广告就不见了,如图②

screenshot

再看图③效果,嘿嘿~很帅吧…

这其实就是改了AndroidManifest.xml里的ADmob广告ID罢了。。

装修之后用到的除甲醛植物

1.千年木

千年木

千年木

千年木有充满魅力的外形,而且能适应室内昏暗干燥环境,因此受到人们的喜爱。只要对它稍加关心,它就能长时间生长,并带来优质的空气。在抑制有害物质方面其他植物很难与千年木相提并论。它的叶片与根部能吸收二甲苯、甲苯、三氯乙烯、苯和甲醛,并将其分解为无毒物质。

  光照条件:中性植物,适合种植在半阴处。

  所需养护:保持盆土湿润,经常施肥。

  可以去除:甲苯、二甲苯、苯、三氯乙烯、甲醛。

继续阅读 »

高清摄像tips

1.为什么大多数高清视频帧数都不超过30?

根据视觉残留原理,每秒24帧以上人眼就觉得连贯了。

但是在实际应用中往往常用两种帧频:25HZ,30HZ

这是为什么呢,道理很简单,中国的交流电频率为50HZ,欧美的电频率为60HZ,将帧频设计成和使用的交流电频率相关,可有效地避免交流电对图象的干扰。所以我国PAL的帧频是用25HZ,而美国NTSC制使用帧频为30HZ。

那为什么不再超过这个数值呢?第一,频率够了,不需要。第二,帧频增高,会带来数据量的加大。这从技术上、经济上是不合算的。
所以视频帧数都不超过30。

继续阅读 »

Loadrunner 运行注意事项

1.最好用IE6,目前用的Loadrunner 9.1 ~ 9.5 用IE6会比较好些,IE7~IE9不一定能弹的出来

2.出现录制的时候,IE6不弹出来,有很大的原因是:

在IE6中关掉他,参考这里:http://bbs.51testing.com/viewthread.php?tid=138528

3.license security violation.Operation is not allowed
的问题,记得看这里

4.

2011-03-28Tech

没有评论
580 views

eclipse for Javascript

转自:http://www.cnblogs.com/sayo/archive/2008/10/14/1310769.html

有三种Javascript编辑器可供选择:

1. JSDT

2. JSEclipse

3. Spket

分别介绍这三种插件的安装:

1. JSDT 是WPT自带的插件

只要装了WTP就不用单独安装JSDT了。也可以从这里了解JSDT的一些信息:http://wiki.eclipse.org/index.php/ATF/JSDT

2. JSEclipse

可以通过Eclipse自动更新功能从 http://download.macromedia.com/pub/labs/jseclipse/autoinstall 安装JSEclipse:

如上图所示,安装打勾的JEclipse插件即可。

JEclipse是Javascript的编辑器,要想使用ExtJs,还需要下载这个文件,把所有xml文件解压缩到你的Eclipse Workspace中目录:

EclipseWorkspace\.metadata\.plugins\com.interaktonline.jseclipse\user_library

下面。然后重新启动Eclipse就可以了。

Ext_JSEclipse.zip

3. Spket

通过Eclipse自动更新从 http://www.spket.com/update/ 安装插件:

安装完后进行ExtJs设置:

如上图是设置好的样子:

Window → Preferences → Spket → JavaScript Profiles → New ,在弹出对话框命名:ExtJs,点击OK。然后选择ExtJs点Add Library,把你下载的ext包中找到/source/ext.jsb加载进来。最后先选中ExtJs点击右边的default按钮,使其成为缺省项。这样就行了。

经过上述安装设置,现在打开一个JS文件可以有多种方式了:

个人感觉JSEclilpse比较好用。

php中引用与对象备忘

<?php
$instance = new StdClass;//自定义一个类
$assigned   =  $instance; //在php5中,这种写法作用和下面一样,而不用传&,但还是有区别滴。。。
$reference  =& $instance; //作用是和上面相同,但本质还是不同的,$reference是个引用,他会跟着$instance共存亡
 
$instance->var = '$assigned will have this value';
var_dump($instance); //
var_dump($reference); //
var_dump($assigned); //以上三者都一样!不管赋值还是其他改变
 
$instance = null; // $instance and $reference become null
 
var_dump($instance); //他也不在了
var_dump($reference); //他已经不在了
var_dump($assigned); //他还在
?>

在PHP5手册中:
类与对象一章里:
当把一个对象已经创建的实例赋给一个新变量时,新变量会访问同一个实例,就和用该对象赋值一样。此行为和给函数传递入实例时一样。
但是把该对象的引用,赋值给一个变量,确实是用的引用

————————————–
中文手册:
对象和引用
在php5 的对象编程经常提到的一个关键点是“默认情况下对象是通过引用传递的”。但其实这不是完全正确的。下面通过一些例子来说明。

php的引用是别名,就是两个不同的变量名字指向相同的内容。
在php5,一个对象变量已经不再保存整个对象的值。只是保存一个标识符来访问真正的对象内容。

当对象作为参数传递,作为结果返回,
或者赋值给另外一个变量,另外一个变量跟原来的不是引用的关系,只是他们都保存着同一个标识符的拷贝,这个标识符指向同一个对象的真正内容。

自 PHP 5 起,new 自动返回引用,因此在此使用 =& 已经过时了并且会产生 E_STRICT 级别的消息。
这句话很别扭

—————————————

<?php
$a = 1;
$b =& $a;
unset($a); //如果把 $a=null ,下面的结果就不一样了
var_dump($a);  //a 已经不在了
var_dump($b); //b还在
?>

函数的引用返回:

function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}
 
$a=test();//这条语句会输出$b的值为1
$a=5;
$a=test();//这条语句会输出$b的值为2
 
$a=&test();//这条语句会输出$b的值为3
$a=5;
$a=test();//这条语句会输出$b的值为6

$this self

$this
在一个对象的方法中,$this 永远是调用它的对象的引用。

self:
有点静态调用的意思:

class clsParent {
    static public function say( $str ) {
        self::do_print($str);//如果这里用$this->do_print($str); 会报没有这个实例的
    }
 
    static public function do_print( $str ) {
        echo "parent says $str";
    }
}
 
class clsChild extends clsParent{
    static public function do_print( $str ) {
        echo "child says $str";
    }
}
 
clsChild::say('Hello');
?>

其他:
//下面再来个小插曲
php中对于地址的指向(类似指针)功能不是由用户自己来实现的,是由Zend核心实现的,php中引用采用的是“写时拷贝”的原理,就是除非发生写操作,指向同一个地址的变量或者对象是不会被拷贝的。

通俗的讲
1:如果有下面的代码

$a=”ABC”;
$b=$a;

其实此时$a与$b都是指向同一内存地址而并不是$a与$b占用不同的内存

2:如果在上面的代码基础上再加上如下代码

$a=”EFG”;

由于$a与$b所指向的内存的数据要重新写一次了,此时Zend核心会自动判断自动为$b生产一个$a的数据拷贝,重新申请一块内存进行存储

静态调用:

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this is defined (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this is not defined.\n";
        }
    }
}
 
class B
{
    function bar()
    {
        A::foo();
    }
}
 
$a = new A();
$a->foo();
A::foo();//直接静态调用,而不用方法是不是静态方法 ,这样用有时是大有好处的
$b = new B();
$b->bar();
B::bar();
?>

类静态调用的好处:http://heshun.org/?p=178

对web性能测试-/ab/webbench/Loadrunner

apache 自带的ab

http://www.chedong.com/blog/archives/001154.html

loadrunner

使用方法:
看看很好的教程:
公司外分享版本-结合逍遥问问讲解如何利用LoadRunner进行性能测试104

来自于:这里

secureCRT root自动登陆录制办法

secureCRT -> script -> start recording script
开始录入脚本
su -
输入密码

secureCRT -> script -> stop recording script

这时要保存!

options ->session options -> connection ->logon scripts -> logon script 选择你刚才的脚本!

memcached 安装与应用

1.去官网下载:www.memcached.org

wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

tar zxvf memcached-1.4.5.tar.gz

cd memcached-1.4.5

./configure

make

make install

2.配置:

/usr/local/bin/memcached -d -u nobody -m 512 -p 11211 127.0.0.1

会报错:

error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

这时需要:

使用LD_DEBUG=help ./memcached -v来确定 加载的类库路径,方法如下:

LD_DEBUG=libs ./memcached -v 2>&1 > /dev/null | less

参考:http://blogold.chinaunix.net/u2/70049/showart_1665279.html

看看少哪个

我这里是:

ln -s /usr/local/lib/libevent-1.4.so.2 /lib64/libevent-1.4.so.2

/usr/local/bin/memcached -d -u nobody -m 512 -p 11211 127.0.0.1

再去看看有没有启动端口!

netstat -anl |grep 11211

查看 telnet 127.0.0.1 11211

stats 看命中情况

KO!

查看memcache数据PHP代码:

 
 
function printDetails($status){ 
 
echo "<table border='1'>"; 
 
        echo "<tr><td>Memcache Server version:</td><td> ".$status ["version"]."</td></tr>"; 
        echo "<tr><td>Process id of this server process </td><td>".$status ["pid"]."</td></tr>"; 
        echo "<tr><td>Number of seconds this server has been running </td><td>".$status ["uptime"]."</td></tr>"; 
        echo "<tr><td>Accumulated user time for this process </td><td>".$status ["rusage_user"]." seconds</td></tr>"; 
        echo "<tr><td>Accumulated system time for this process </td><td>".$status ["rusage_system"]." seconds</td></tr>"; 
        echo "<tr><td>Total number of items stored by this server ever since it started </td><td>".$status ["total_items"]."</td></tr>"; 
        echo "<tr><td>Number of open connections </td><td>".$status ["curr_connections"]."</td></tr>"; 
        echo "<tr><td>Total number of connections opened since the server started running </td><td>".$status ["total_connections"]."</td></tr>"; 
        echo "<tr><td>Number of connection structures allocated by the server </td><td>".$status ["connection_structures"]."</td></tr>"; 
        echo "<tr><td>Cumulative number of retrieval requests </td><td>".$status ["cmd_get"]."</td></tr>"; 
        echo "<tr><td> Cumulative number of storage requests </td><td>".$status ["cmd_set"]."</td></tr>"; 
 
        $percCacheHit=((real)$status ["get_hits"]/ (real)$status ["cmd_get"] *100); 
        $percCacheHit=round($percCacheHit,3); 
        $percCacheMiss=100-$percCacheHit; 
 
        echo "<tr><td>Number of keys that have been requested and found present </td><td>".$status ["get_hits"]." ($percCacheHit%)</td></tr>"; 
        echo "<tr><td>Number of items that have been requested and not found </td><td>".$status ["get_misses"]."($percCacheMiss%)</td></tr>"; 
 
        $MBRead= (real)$status["bytes_read"]/(1024*1024); 
 
        echo "<tr><td>Total number of bytes read by this server from network </td><td>".$MBRead." Mega Bytes</td></tr>"; 
        $MBWrite=(real) $status["bytes_written"]/(1024*1024) ; 
        echo "<tr><td>Total number of bytes sent by this server to network </td><td>".$MBWrite." Mega Bytes</td></tr>"; 
        $MBSize=(real) $status["limit_maxbytes"]/(1024*1024) ; 
        echo "<tr><td>Number of bytes this server is allowed to use for storage.</td><td>".$MBSize." Mega Bytes</td></tr>"; 
        echo "<tr><td>Number of valid items removed from cache to free memory for new items.</td><td>".$status ["evictions"]."</td></tr>";
 
echo "</table>"; 
 
    }
 
 
 $memcache_obj = new Memcache; 
  $memcache_obj->addServer('memcache_host', 11211); 
   printDetails($memcache_obj->getStats());

来源:http://php.net/manual/en/memcache.getstats.php

返回顶部

Switch to our mobile site