首先是query之前公认的mysql_query(”set names ‘utf8′”);
接着修改gateway.php的127行:
$gateway->setCharsetHandler(”mbstring”, “UTF-8″, “UTF-8″);
好了,一劳永逸。
1. 使用RIA框架去构建Web1.0应用(新技术换汤不换药)
2. 破坏标准的浏览器体验
3. 使用过多的容器导致应用变慢
4. 使用XML而不是其他更优化的协议导致应用变慢
5. 试图雇佣Flex开发者
6. 特效的过度使用
7. 没有搭建企业生态系统
8. 没有使用整个框架
9. 使用复杂的渲染器降低了DateGrid的速度
10. 没有准备离线应用
详细:http://www.infoq.com/cn/news/2008/04/top-10-flex-mistakes
原文:http://www.infoq.com/news/2008/04/top-10-flex-mistakes
昨天看了个健康讲座,顺便将内容提炼了下:
多吃:豆类,粗粮,海藻,西红柿(熟),大蒜(生),胡萝卜
多喝:酸奶,绿茶,豆浆,骨头汤,玉米羹
少吃:菠菜,咸菜,泡菜(包括腊八蒜),臭豆腐,松花蛋,油条
少喝:咖啡,碳酸饮料,超过3天的白开水
欢迎补充。有什么科学依据,一搜便知。
祝大家身体健康!
用Flex自带的组件RichTextEditor进行文本编辑,再用File和FileStream进行简单的文本读写操作。
效果演示
源代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" fontSize="12">
- <mx:Panel width="80%" height="80%">
- <mx:HBox>
- <mx:Label text="文本路径" />
- <mx:TextInput width="300" id="file_name" />
- <mx:Button label="浏览" click="browser()" />
- </mx:HBox>
- <mx:RichTextEditor id="file_content" title="文本编辑" width="100%">
- </mx:RichTextEditor>
- <mx:Button label="修改" click="modifyFile()" />
- </mx:Panel>
- <mx:Script>
- <![CDATA[
- import flash.filesystem.*;
- private function modifyFile():void
- {
- var file:File;
- try{
- file = new File(file_name.text);
- } catch (e:Error){
- var n:String = "c:\\test.txt";
- file = new File(n);
- file_name.text = n;
- }
- var stream:FileStream = new FileStream();
- stream.open(file, FileMode.UPDATE);
- stream.writeUTFBytes(file_content.htmlText);
- stream.close();
- }
- private function browser():void
- {
- var txtFilter:FileFilter = new FileFilter("文本本件", "*.txt");
- var file:File = new File();
- file.browseForOpen("打开", [txtFilter]);
- file.addEventListener(Event.SELECT, fileHandler);
- }
- private function fileHandler(e:Event):void
- {
- var file:File = e.target as File;
- file_name.text = file.nativePath;
- var stream:FileStream = new FileStream();
- stream.open(file, FileMode.READ);
- file_content.htmlText = stream.readUTFBytes(stream.bytesAvailable);
- stream.close();
- }
- ]]>
- </mx:Script>
- </mx:WindowedApplication>
目前国内市场上所谓的Flex 3的书中的例子统统都是在Flex 2或Flex 3 alpha beta 下做的,很多东西在Flex 3中根本没有。
比如JavaScriptObject在Flex 3中根本就没有,而在电子工业出版社出版的《完全手册Flex 3.0 RIA开发详解:基于ActionScript3.0实现》中211页(第15章Flex 3.0界面设计实战)赫然写着
import flash.html.JavaScriptObject;
有兴趣的不妨在Flex 3中新建一个Flex project -> Desktop application(runs in Adobe AIR)试试,当你敲到import flash.html.的时候会不会有接下来的JavaScriptObject? 即使你强行输入后系统会不会报错?
一方面,大家都承认,软件升级太快;但另一方面,出版商担心利益问题而将Flex 2生改为Flex 3,如果作者也同意的话那就太可悲了!
唉,学点东西不容易啊~~~
凑凑热闹升级了,顺便把原先的theme也干掉了,一时找不到合适的theme,不知谁有好的theme推荐下。
以前的垃圾comments很多,原想升级后会少点。看来也未必,就在我升级的这会儿又多了10好几条。唉,烦人的垃圾comments!
一时心血来潮,做了两个版本。核心是一样的,只不过是有两个版本而已。
程序截图:

网络版进入
桌面版下载download
这里针对网络版和桌面版分别做了点笔记。
网络版“保存”功能用到了ExternalInterface,用flex调用javascript函数,顺便把数据传到网页中,实现所谓的“保存”。呵呵,有点牵强了。代码如下:
flex:
- import flash.external.ExternalInterface;
- ExternalInterface.call("output", data_txt);
javascript:
- function output(txt)
- {
- var w = window.open();
- var d = w.document;
- d.open();
- d.write("<pre>" + txt + "</pre>");
- d.close();
- }
桌面版“保存”功能代码如下:
- var file:File = File.desktopDirectory;
- file.addEventListener(Event.SELECT, onBrowseForSave);
- file.browseForSave("请输入文件名:");
- private function onBrowseForSave(e:Event):void
- {
- var f:File = File(e.target);
- var fs:FileStream = new FileStream();
- fs.open(f, FileMode.WRITE);
- fs.writeUTFBytes(data_txt);
- fs.close();
- }
ps: 桌面版需要预装Adobe AIR
最精简的Flash Remoting实例“Helloworld”,另存为FlashCS3Remoting.as设为Document class即可测试。
- package
- {
- import flash.display.MovieClip;
- import flash.net.Responder;
- import flash.net.NetConnection;
-
- public class FlashCS3Remoting extends MovieClip
- {
- private var nc:NetConnection;
- private var rs:Responder;
-
- function FlashCS3Remoting()
- {
- var params:String = ' | Flash CS3 Remoting!';
- rs = new Responder(onResult, onFault);
- nc = new NetConnection;
- nc.connect("http://ubuntu/amfphp/gateway.php");
- nc.call("Helloworld.hello", rs, params);
- }
- private function onResult(result:*):void
- {
- trace(result);
- }
- private function onFault(fault:Object):void
- {
- for (var i in fault) {
- trace(i + ", " + fault[i]);
- }
- }
- }
- }
- <?php
- class Helloworld
- {
- function hello($param)
- {
- return "Hello World from amfphp" . $param;
- }
- }
- ?>
enjoy! 记得修改gateway.
偶尔发现的Adobe Flash Player 9.0 r115的bug,用fscommand(”fullscreen”, “true”)全屏后再点击按钮触发fscommand(”exec”, “xxx.exe”)后,该flash就不是全屏的了。
推荐一本书:《ActionScript 3.0 Game Programming University》

下载地址:
ed2k://|file|ReallyUsefulEbooks.net_0789737027_Que.ActionScript.3.0.Game.Programming.University.Aug.2007.eBook-BBL.pdf|7802061|6E37CC31CD6FAE12AB41A9813D7A7311|/
关于本书:
http://flashgameu.com/about_book.html
感兴趣的朋友看看吧,希望可以借助书中的实例好好学下as3