2008/11/19

Photo Booth AIR 更新


导出成功时加入了 Growl 的提示。由于命名空间会跟 mx.core 包里 Application 起冲突,Growl 的应用程序窗口只能显式地定义为:a = new com.adobe.growl.Application();

Labels: , , ,

2008/11/11

photo booth air


http://www.stopdesign.cn/air/booth/
把 photo booth port 到 AIR 上,相比 mac 自带的 photo booth 当然简陋很多…点击生成的照片在桌面,生成成功暂时没有提示。

Labels: ,

2008/08/03

About “Fleximagically Searchable”

I'm interested in Ryan 's flex SEO contest, and here is my simple flex application, the keywords phrase is dynamically generated when you click the tab.

Labels:

2008/05/25

flash版的共饭


点击图像打开,
google map API flash 版出来了,不过暂时只能在 flex 中使用,做了一个简单的演示,读取饭否中最新发布的20条消息,等待改善。

Labels: , ,

2008/01/18

使用textmate开发flash/flex

1. 通过 svn 更新 flex/actionscript3 的 bundles;
mkdir -p /Library/Application\ Support/TextMate/Bundles
cd /Library/Application\ Support/TextMate/Bundles
export LC_CTYPE=en_US.UTF-8
svn co http://macromates.com/svn/Bundles/trunk/Review/Bundles/Flex.tmbundle
svn co http://macromates.com/svn/Bundles/trunk/Review/Bundles/ActionScript\ 3.tmbundle
osascript -e 'tell app "TextMate" to reload bundles'

2. 下载 flex sdk
3. 设置环境变量:# $TM_FLEX_PATH 定位到 flex sdk 的地址;
4. 开始测试,别忘了在左下角的语言选择为 as3。

Labels: ,

2008/01/03

fxspy


像用 firebug 调试 HTML/Ajax 一样调试 flex,很不错的想法。

Labels: ,

2007/10/25

学生将有免费的flex builder可用

“People with Adobe Flex skills are already in big demand in the industry, and this smart move will help to substantially increase the number of Flex-enabled college graduates. We are pleased to be among the first universities to offer this kind of coursework to our students.”

Adobe 将为广大的学生、研究员等身处教育体系的人提供免费的 flex builder

Labels: ,

2007/10/21

flex3中的deep linking

deep linking 是一种以 URL 为基础的导航,比如,当我们打开 www.adobe.com 就到了 adobe 的首页,点击 support 按钮就会到达 www.adobe.com/support/ 他们的支持页面,这时候再点 contact 按钮就会到他们的联系页面: www.adobe.com/contact ,每次点击之后,我们都可以通过浏览器的后退按扭回到先前的页面,或者把当前页面加入书签。
可是一般 flex/flash (包括 AJAX)都不支持这一特性,当年 Nielsen 说 flash 99% bad,这就是其中一点。现在在 flex3 中,可以通过一些技巧解决这一问题,就是在 URL 中添加某个特征的锚点,让后退按钮变得可用。其实更早的时候,大牛 robert penner 就在 flash 中借助 javasript 实现过。偶尔见一些全 flash 的站点在使用,只是国内较少看到,或许真的是中国的网民较少使用后退按钮。
Flex 3:Feature Introductions: Deep Linking

Labels: , , ,

2007/10/09

flex,flex


(pagelist)
来自 flex interface guide 的东西,喜欢他们在导航方面所做的尝试。
另外试了一下在 flash 中自定义 flex 组件,flex 的 viewstack ,以及 flex debug component ,组合在一起就成这样了。

Labels: , ,

2007/09/06

如何改变 flex 默认的背景色

flex 默认的暗蓝色看多了就觉得难看,可以在编译参数里加入类似的声明:
-default-frame-rate 50
-default-background-color #FFFFFF
-default-size 800 600

如果是纯 actionscript 的话,可以在头部加入:
[SWF(width="800", height="600", frameRate="20", backgroundColor="#FFFFFF")]

Labels: ,

flex+php 实现的上传


actionscript 部分:
   public var file:FileReference;
private var
upNum:Number;
public function
selectFile():void
{


file = new FileReference();
file.addEventListener(Event.SELECT, fileSelected);
file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, uploadDataComplete);
file.addEventListener(Event.COMPLETE, uploadComplete);
file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
file.addEventListener(IOErrorEvent.IO_ERROR, handleError);
file.browse(getTypes());
}

private function
getTypes():Array {
var
allTypes:Array = new Array(getImageTypeFilter(), getTextTypeFilter());
return
allTypes;
}

private function
getImageTypeFilter():FileFilter {
return new
FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
}

private function
getTextTypeFilter():FileFilter {
return new
FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
}

public function
progressHandler(event:ProgressEvent):void{
trace
("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
upNum=Math.floor((event.bytesLoaded/event.bytesTotal)*100);
probar.label= "uploading" + " " + upNum+ "%";
probar.setProgress(upNum,100);
}

public function
handleError(event:IOErrorEvent):void
{

status_txt.text = 'ERROR: ' + event.text + '\n';
}

public function
fileSelected(event:Event):void
{

file = FileReference(event.target);
file_txt.text = file.name;
status_txt.text = 'upload file: '+ file.name + '\n';
var
request:URLRequest = new URLRequest();
request.url = "theupload.php";
file.upload(request);
}

public function
uploadDataComplete(event:DataEvent):void
{

var
result:XML = new XML(event.data);
status_txt.text += 'Upload Data Complete\n'
status_txt.text += 'RESULT: ' + result.toString() + '\n'
status_txt.text += 'STATUS: ' + result.status + '\n';

status_txt.text += 'MESSAGE: '+ result.message;
}

public function
uploadComplete(event:Event):void
{

status_txt.text += 'Upload complete\n';
}

Labels: ,