浏览模式: 标准 | 列表
12月
14

Flash 照相 PHPRPC 上传

先给大家看个小例子:http://www.phprpc.org/samples/takePhoto/

用 Flash 照相很容易,但是最好是先将它编码为 JPEG 格式在上传比较节省带宽。网上已经有了 JPEG 编码的 AS3 类,不过需要修改才能使用。修改后的代码我会附到该文最后。

嗯,其实这不是重点,下面才是重点,因为在 Flash9 中我不知道怎么用 AS3 弹出提示框,Flash9 中的 AS3 控件太少了。没办法我最后用的是 Flash 跟 javascript 交互的方式来实现照相上传的。而 javascript 在这里唯一做的事情就是触发照相上传事件和显示上传后的返回信息。如果你打算完全用 Flex 来做,也许根本不需要这么麻烦。

先来看 Flash 怎么做吧。首先拖两个 UILoader 控件到 Flash 的第一帧中,大小设置为你要照的照片的大小,这两个 UILoader 是后面用来放摄像头视频和照片用的。我设置的大小是 120×160。

» 阅读全文

Google 出来 Android 已经有一段时间了,昨天晚上下来玩了一下,还不错,不过找到一些 Android 上的 Java bug,其中最大的一个是 java.lang.reflect.Proxy 的 bug,它的 newProxyInstance 方法和 getProxyClass 方法,不论带入的 interfaces 是否是空,都会抛出 NullPointerException 错误,同样的调用方式在 PC 的 JDK 1.4、1.5 和 6.0 就完全正常。这个 bug 昨天提交到 Android 的讨论组了,不过他们什么时候能够修正这个 bug 就不知道了。当然,因为这个原因,PHPRPC 在开发 Android 应用程序时,暂时无法使用定义代理类接口,并通过代理类进行远程调用。但是仍然可以通过 PHPRPC_Client 对象的 invoke 方法来进行远程调用,下面是实例代码:

Java代码
  1. package com.google.android.hello;  
  2.    
  3. import org.phprpc.PHPRPC_Client;  
  4. import org.phprpc.util.Cast;  
  5.    
  6. import android.app.Activity;  
  7. import android.os.Bundle;  
  8. import android.widget.TextView;  
  9.    
  10. public class HelloPHPRPC extends Activity {  
  11.     @Override  
  12.     public void onCreate(Bundle icicle) {  
  13.         super.onCreate(icicle);  
  14.         PHPRPC_Client client = new PHPRPC_Client("http://www.phprpc.org/server.php");  
  15.         client.setEncryptMode(2);  
  16. /* 
  17.         TextView tv1 = new TextView(this); 
  18.         tv1.setText(client.invoke("add", new Object[] { 1, 2 }).toString()); 
  19.         setContentView(tv1); 
  20. */  
  21.         TextView tv2 = new TextView(this);  
  22.         tv2.setText(Cast.toString(client.invoke("hello"new Object[] {"PHPRPC"})));  
  23.         setContentView(tv2);  
  24.     }  
  25. }  

下面是一个例子运行截图:

上面注释掉的语句也是可以正常执行的,注释掉是因为后面的执行会覆盖前面执行的结果。invoke 方式进行远程调用,只有一点需要注意,就是返回结果如果是字符串,那么需要用 Cast.toString 转化为字符串,因为字符串默认反序列化为字节数组,如果是其它类型,需要用 Cast.cast 方法来转成相应的类型,否则可能跟你预期的类型可能不一致,因为默认会返回最接近返回值的相容类型。

有了上面的例子和讲解,我想大家用 PHPRPC 来开发 Android 应用程序就没有什么问题了!

» 阅读全文

12月
05

XXTEA for Delphi

XXTEA for Delphi 网上原来有人提供了实现,但是那个是加密是针对动态无符号32位整数数组的,不能用来加密解密字符串。

这里提供的 XXTEA for Delphi 算法是用来加密解密 AnsiString 类型数据的,密钥也是 AnsiString 类型的数据,使用更加方便,而且跟本站所提供的 PHP、JavaScript、ActionScript、C#、Java、Perl 的实现相兼容,在一种语言中加密的数据,可以在另一种语言中解密(这也是 PHPRPC 可以加密通讯的前提)。

» 阅读全文