Loading...

Archive for March, 2006

一直想搞这个功能, 想了很多歪门邪道, 未果!
昨天突然在 blueidea 上看到关于 Flash 8 的新特性 (虽然早就装上了 Flash 8 但一直没有仔细研究, 真是惭愧 :p) 中介绍了 flash 8 提供了上载和下载的接口, 马上下去研究了一下, 果然不错. 虽然上传还是需要后台脚本的支持, 但也足够我美上一阵子的了 :D
下面是研究成果, 不敢独享, 拿出来示众 :D

UploadFile.fla

PLAIN TEXT >> ACTIONSCRIPT:
  1. // 加载包
  2. import flash.net.FileReference;
  3. // 定义主角 FileReference 对象
  4. var fileRef:FileReference = new FileReference();
  5. // 定义 监听对象
  6. var fileLsn:Object = new Object();
  7. // 定义 文件类型数组 FileReference 对象的 browse 方法的参数
  8. // description: 描述
  9. // extension  : 扩展名列表
  10. var fileTyp:Array = new Array({description:"Image files", extension:"*.jpg;*.gif"}, {description:"Document files", extension:"*.txt;*.doc"});
  11. btnBrowse.onRelease = function() {
  12.     // 打开 "选择文件" 对话框
  13.     fileRef.browse(fileTyp);
  14. };
  15. btnUpload.onRelease = function() {
  16.     // 开始上传
  17.     fileRef.upload("uploadFile.php");
  18. };
  19. btnClear.onRelease = function() {
  20.     strState.text = "";
  21. };
  22. // 选择文件事件
  23. fileLsn.onSelect = function(file:FileReference) {
  24.     strState.text += "onSelect '"+file.name+"'\n";
  25. };
  26. // 取消选择
  27. fileLsn.onCancel = function(file:FileReference) {
  28.     strState.text += "Cancel!\n";
  29. };
  30. // 打开文件开始上传
  31. fileLsn.onOpen = function(file:FileReference) {
  32.     strState.text += "Uploading... '"+file.name+"'\n";
  33. };
  34. // 上传成功
  35. fileLsn.onComplete = function(file:FileReference) {
  36.     strState.text += "File '"+file.name+"' upload successfull!\n";
  37. };
  38. // 上传过程
  39. fileLsn.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void  {
  40.     strState.text += "onProgress: "+file.name+" with bytesLoaded: "+bytesLoaded+" bytesTotal: "+bytesTotal+"\n";
  41. };
  42. // HTTP 错误
  43. fileLsn.onHTTPError = function(file:FileReference, httpError:Number) {
  44.     strState.text += "HTTP ERROR: "+httpError+"\n";
  45. };
  46. // IO 错误
  47. fileLsn.onIOError = function(file:FileReference):Void  {
  48.     strState.text += "IO Error: "+file.name+"\n";
  49. };
  50. // 安全错误
  51. fileLsn.onSecurityError = function(file:FileReference, errorString:String):Void  {
  52.     strState.text += "onSecurityError: "+file.name+" errorString: "+errorString;
  53. };
  54. // 绑定监听器
  55. fileRef.addListener(fileLsn);
  56. // 其他属性或事件请参考帮助中关于 FileReference 对象的章节

UploadFile.php

PLAIN TEXT >> PHP:
  1. <?php
  2. // Flash 传递的文件表单 name 属性为 Filedata
  3. $fileName = $_FILES["Filedata"]["name"];
  4. $file = $_FILES["Filedata"]["tmp_name"];
  5. $path = "upload_files/";
  6. if (move_uploaded_file($file, $path . $fileName)){
  7.     // echo 1;
  8. }else{
  9.     // echo 0;
  10. }
  11. /*
  12. * 只要上传代码就够了
  13. * Flash 似乎不判断该文件的返回值
  14. * 即使该文件报告错 Flash 也无法分析
  15. * 所以最好保证这个文件不会出错
  16. */
  17. ?>

源文件下载

Sorry, Flash 8!!
其实俺是爱你的!

俺最早拥有你,
却很少亲近你;

那不是因为我不爱你,
那是因为我没的时间;

现在我醒悟了,
即使只有一天的生命,
我也要...
也要研究你的新特性,
钻研AS新版本,
学习你的新特效,
了解你的新机制,
发挥出你的最精髓!!!

再次道歉, 我错了 :(
你永远是最棒的!!!
我永远是最扯的!!!

Flash Lite 1.1 目前支持功能相对较强的 FSCommand2,这在普通的 FLash 播放器中是不支持的。相对 FSCommand,有如下的不同:

FSCommand2 可以使用任意多的参数;
FSCommand2 在动画中被立即执行,而 FSCommand 则是在一帧结束后才执行;
FSCommand2 可以有返回值,以便判断是否成功。
FSCommand2 主要分成三类:普通指令、控制影片播放的指令、平台相关指令。

下面是详细内容:

普通指令

控制影片播放的指令

平台相关指令

刚刚去了首师大买鸡蛋饼, 摊鸡蛋饼的流水线真牛啊!!

不足1.5平米的狭小空间中, 前面被桌案占去一大半, 桌案后面站着三个男人: 一个擀, 一个烙, 一个打蛋收钱.

擀的靠左边站, 揪面, 擀成长条, 抹油, 加料, 卷成卷放到一边, 等攒够10个挨个按扁擀成饼; 烙的靠右站, 左手托一空碗, 右手一双筷子, 不停用筷子翻烙着锅里的饼, 偶尔淋些油到锅里; 打蛋的只用一只手, 抓个蛋往案子上一嗑, 往烙饼人的空碗中一捏, 蛋落在空碗中, 烙的用筷子沾点盐, 在蛋碗中搅上三五下, 用筷子破开将要烙好的饼皮, 把蛋倒在上面, 循环往复直到十个饼全放上了蛋, 再翻两个个, 没一会十个饼就出锅了.

一般这时候窗口外已经排好队, 打蛋的问一句: 要几个, 要不要辣的? 然后抹酱装饼. 零钱都是买饼的自己扔在装钱的纸盒中, 需找钱的小额钞票也是买饼人自己找零, 只有大票才由打蛋的拿过去, 验明真伪后找出整十块的, 余下的零钱仍旧由买饼人自己找.

等这锅卖得了, 擀饼人旁边的案子上早有十个擀好的在那里等了, 马上又一个周期的循环开始了. 如此这般不间断地循环运作.

我粗略地计算了一下: 每5分钟出一锅(十个)饼, 只计算早餐的话, 每天从 5:00 卖到 10:00 是5个钟头, 一个钟头能出 12 锅就是 120 个饼, 5个钟头是 600 个饼, 每个饼卖1块钱, 这一天光上午就能赚 600 块钱, 一个月30天就是一万八, 除去场租, 人工, 成本, 老板一个月再惨也能剩一万二三 :o

哎~~~ 可叹我苦学本领, 闯荡江湖二十载, 到头来不如个卖饼的... 你说说这是何道理??!!!!

所谓人工智能, 我的理解就是让机器具有人的智慧, 能像人脑一样地思考问题.

人是怎样思考的? 怎样把纷繁复杂互不相关的东西关联起来形成一个知识体系, 从而在思考问题时能快速地找到相关度最高的信息呢?

我想这需要一个非常庞大的数据储备作为支持, 再加上分析甚至猜解. 分析和猜解怎么解决呢? 应该就是对海量数据的搜索查询, 但这可能又需要一个词汇库了, 通过词汇库中相近, 相关, 相似的词汇搜索匹配度最高的数据.

另外还需要学习, 这是很重要的! 学习的过程应该是补充, 完善词汇库的过程. 这样能得到更多更准确的结果.

这些都是后话, 是刚刚才想到的, 洗澡时想到的只是怎样让机器学习和思考.

人又是怎样学习和思考的呢? 我想最根本的条件是掌握语言! 因为人无时无刻不是用大脑进行思考着的, 而思考又是需要语言作为支持的. 试想一下: 如果人类没有语言, 思考将怎样进行呢? 那可能会和其他动物一样, 只能进行一些本能的行为, 不会有文明的产生和现在高度发展的社会了.

看来让机器拥有人工智能的关键就是让它掌握语言, 拥有一个庞大的存储设备, 一个有效的数据结构, 超级处理器... 这些机器做得到吗? :roll: 期待吧...

之前花了俺 4000 现大洋入手了Sony HC33E. 去了趟海南回来, 手机和 33E 全病了, 怀疑是受不了海南潮湿闷热的气候 :(

手机翻盖打开屏幕全黑, 只有保持20-30度角才能用, 发短信像个特务似的 ------ 手机盖半开, 只能一个手指抠进去按, 抠两下换个角度看看屏幕, 继续抠... 打电话知道手机号的可以用盲打, 键盘又不好用, 只好打开按键声音 (巨土 :mad: ) 俺的打算是弄个几百块钱的就好了, 能打电话发短信有电话簿就行呗, 回去和宝贝老婆商量下. 嘻嘻~~

33E 是怪俺照顾不周, 在玉带滩拍海浪的时候走得太近, 央及其身, 指使关机带电时不停检测磁带和记忆棒状态, 险些郁闷致死... 不过, 咳咳... 在俺的斡旋, 欺诈, 造假, 蒙骗, 演戏, 软硬兼施, 死磨硬泡之下, 迫使 Sony 维修站开具了技术鉴定, 于是... 俺的 Sony HC33E 在购买了8天后商家给更换了新机, hmmm... ( 技术鉴定上赫然写着 : 插入记忆棒后指示灯不规则闪烁 :o )

必须得补充一句, 不是我人不厚道, 是小日本儿的东西搞的不够好, 一点点小水珠就把机器搞死了, 害我承受心理打击, 再说三保是这么规定的, 不讹白不讹, hoho~~

下午回家, 想俺老婆了, 当然更主要的是老婆也想俺 :) 周末买些老婆来京的东西, 准备一下结婚用品, 再整两件夏天的衣服, 天气热啦~~~ 回来还要赶快找房, 这可是目前的头等大事, 再去发点信息, 祈祷黑中介不要惹到我头上, 善哉善哉 ~~~

Next Page »