FLEX 简易信息警示窗

提示信息通常使用Alert组件就OK了.但是有时候想个性化一些,比方说在提示出现与移除时加些效果,或者让Alert定时消失等.使用Alert组件实现这些有些麻烦,要对其扩展.
找个容易上手的方法,自己写了个,呵呵
模仿Alert的形式,调用类静态方法,不用实例化,这里命名为AlertTip
使用Canvas作为基本容器,包含Text组件
考虑到若将Canvas及Text放置到AlertTip中生成过于复杂,所以将Canvas容器单独做为一个component来供AlertTip使用.
Canvas容器,这里命名为AlertCanvas
使用PopUpManager显示
示例:

Flash动画
在线播放

代码:
点击查看AlertCanvas.mxml文件
说明一点,把Canvas的visible属性设置为false是因为显示前AlertTip是不可见的.
主类,AlertTip
点击查看AlertTip.as文件
[code]
/**
* By AuZn
* Kingnare.com
*/
package com.kingnare {
import mx.core.IFlexDisplayObject;
import mx.managers.PopUpManager;
import flash.display.Sprite;
import mx.core.Application;
public class AlertTip{
public static var globalDelay:uint = 1000;
public function AlertTip(){
}
/**
* 提示显示方法
* message:提示信息
* delay:可显示的时间
* modal:背景变灰
* initValue:初始化数值
* parent:父级
*/
public static function show(message:String=””, delay:int=-1, modal:Boolean=false, initValue:Object=null, parent:Sprite=null):void{
if(delay

.AlertTip{
backgroundColor: #000000;
backgroundAlpha: 0.6;
borderStyle: “solid”;
borderColor: #DDDDDD;
cornerRadius: 4;
dropShadowColor: #000000;
dropShadowEnabled: true;
shadowDirection: “center”;
shadowDistance: 1;
color: #00FFFF;
textAlign: “center”;
fontSize: 12;
}

[/code]
其中的AlertTip为提示窗口的样式
功能很有限,只起到个提示作用.
要扩展成Alert那样有标题及按钮的估计就不能用Canvas组件了,用Panel组件扩展起来容易些
还要加上事件处理,呵呵
源代码打包: AlertTip.zip

平滑Image

客户要求在Flash里加入扫光、海浪、破碎等效果,以前只是听说AE能做,便恶补了AE才做出来。结论:这年头什么都要会些 -_-!
睡前写个小东东:
在使用Image组件时发现没有平滑效果的设置和方法(有可能是自己太笨,找不到),就自己写了个简单的,对于普通的小应用应该够用了。
效果:
SmoothImage.swf
加载用的图片:
Apple_04.png
新建文件:SmoothImageTest.mxml
[code]

[/code]
其中的SmoothImage就是下面要新建的类文件:
SmoothImage.as
[code]
package {
import mx.controls.Image;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;
public class SmoothImage extends Image {
private var sourceURL:String;
private var pictLdr:Loader;
public function SmoothImage():void{
super();
pictLdr = new Loader();
pictLdr.contentLoaderInfo.addEventListener(Event.INIT, loaderInit);
}
private function startLoadImg():void{
pictLdr.load(new URLRequest(sourceURL));
}
private function loaderInit(event:Event):void{
var myDataBitmap:BitmapData = new BitmapData(pictLdr.width,pictLdr.height,true, 0x00ffffff);
myDataBitmap.draw(pictLdr);
var myBitmap:Bitmap = new Bitmap(myDataBitmap,”auto”,true);
source = myBitmap;
}
public function set ImgURL(_url:String):void{
sourceURL = _url;
startLoadImg();
}
public function get ImgURL():String{
return sourceURL;
}
}
}
[/code]
原理非常简单,就是用Loader加载图片,然后绘制出一个Bitmap来做为Image组件的source.
Bitmap使用平滑打开,OK了
如有达人知道更好的方法,一定要告诉我,先谢谢啦
PS. 这几天的大事很多哈。
FLEX3 BETA1出世,FLASH PLAYER 升级,AIR(原APOLLO)BETA现身。
嗯,我们经理也开始对FLEX感兴趣了…

加入RXNA

收到Kenshin的邀请信加入RXNA,很高兴,呵呵。
之前就已经把RXNA加到了我的合烧中了,嘿嘿
嗯,学习FLEX又多了个好地方,赞一个先!
那么什么是RXNA呢?

RXNA,即Rich XML News Aggregator的简称,为了确保属于RIA范畴,所以取名RXNA。以后RXNA即为这个聚合的简称。

具体信息请见:
Kenshin:http://www.k-zone.cn/zblog/post/rxna.html
RIS:http://www.j2eemx.com/ris/index.cfm?tital_class=%E9%A6%96%E9%A0%81%E6%96%B0%E8%81%9E
欢迎您的参与.

FLEX-PopUpManager小试

学习到了PopUpManager。
便想利用这个来实现一个效果:在图片上左键单击后 在图标附近出现一相关的菜单供用户使用。
例如将专辑中的某首歌曲转移到其他专辑中,当单击转移图标后,会列出所有可选用的专辑。
刚开始做的时候选择了Menu来做为弹出对象。但是发现个问题,如果专辑数目过多会超出舞台。
于是把Menu换成了List
最后差一个问题,单击弹出的List以外部分要移除List
这个可以用FlexMouseEvent.MOUSE_DOWN_OUTSIDE来监听
Demo:

Flash动画
在线播放

Code:
PopUpTestApp.mxml
PopUpList.mxml
源文件下载:
PopUpTestApp.zip
参考资料:FLEX 帮助文档
P.S. 最近大事还真不少哈。关于FLEX3的消息很多,看了很兴奋哈。有新的组件可以用(虽说目前这些还有没用过的),据说还要把Flex framework整合到player中,可以大大减少FLEX程序的size,更有利于FLEX的应用和传播。
还出现了GIF播放类。难道当时开发小组没有做对动态GIF播放功能就是想到了以后可以用AS3代码实现?
APOLLO Beta将內建SQLite小型数据库