package 
{
    import com.asual.swfaddress.SWFAddressEvent;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import com.asual.swfaddress.SWFAddress;
    /**
     * ...
     * @author Terry
     */
    public class SwfAddressTest extends Sprite
    {
        private var linkButton:Button;
        public function SwfAddressTest()
        {
            init();
        }
        private function init():void
        {
            linkButton = new Button("this is a test",buttonOnClick);
            this.addChild(linkButton);
            SWFAddress.addEventListener(SWFAddressEvent.INIT, SWFAddressInit);//
            SWFAddress.addEventListener(SWFAddressEvent.CHANGE, SWFAddressChange);//地址发生变化事情(包含内部和外部)
            SWFAddress.addEventListener(SWFAddressEvent.EXTERNAL_CHANGE, SWFAddressExternalChange);//地址在外部发生变化
            SWFAddress.addEventListener(SWFAddressEvent.INTERNAL_CHANGE, SWFAddressInternalChange);//地址在内部发生变化
        }
        private function buttonOnClick(e:MouseEvent):void
        {
            SWFAddress.setValue("new?id=0");//设置当前浏览器地址
            SWFAddress.setTitle("标题要变了哦");//设置当前页面标题
            SWFAddress.setStatus("aaaaa");//设置状态,不太明白
        }
        private function SWFAddressInit(e:SWFAddressEvent):void
        {
            trace("swf init");
        }
        private function SWFAddressChange(e:SWFAddressEvent):void
        {
            trace(e.path);
            for (var i in e.parameters)
            {
                trace(i, e.parameters[i]);//取出传递的参数
            }
        }
        private function SWFAddressExternalChange(e:SWFAddressEvent):void
        {
            trace("SWFAddressExternalChange");
            for (var i in e.parameters)
            {
                trace(i, e.parameters[i]);
            }
        }
        private function SWFAddressInternalChange(e:SWFAddressEvent):void
        {
            trace("SWFAddressInternalChange");
            for (var i in e.parameters)
            {
                trace(i, e.parameters[i]);
            }
        }
    }

}

posted @ 2010-01-27 17:05 TerryXu 阅读(424) 评论(0) 编辑

      昨天在给在个多帧动画用代码在外面加了一个滤镜,发现好像帧上的动画根本没有执行,开始也不知道是什么原因,后来请教同事,才知道这个基本上可以认为是Flash的一个bug了,所以多帧动画只有尽量不要这么用了.

image  image

posted @ 2009-12-17 11:09 TerryXu 阅读(55) 评论(0) 编辑

      TweenLite在flash动画中有里程碑性的作用,以前总感觉用Flash代码控制动画是多么痛苦的事情,在使用TweenLite后,一切都是那么的简单,就像Js中的jQuery一样,闲话少说,根据自己最近经常使用TweenLite,感觉对滤镜熟悉要差一点,写个说明总结,体验一下各滤镜的效果,以备以后忘了后查阅。

1.AutoAlphaPlugin(Alpha控制)

功能:在对Alpha控件的时间,实现显示对像的visible属性的控制,当对象alpha接近0时,visible设置为false,反之亦然。

代码示例:

TweenPlugin.activate([AutoAlphaPlugin]);
TweenLite.to(mc, 1, { autoAlpha:0 } );

在试用过程中发现,现在的版本中,不用些滤镜,使用autoAlpha也一样可以实现其同样的效果。

 

2.BevelFilterPlugin(实现浮雕效果)

示例图片1

功能:给显示对象加要浮雕效果。

参数:

- distance : Number [0]  浮雕的偏移距离
- angle : Number [0] 浮雕的偏移角度
- highlightColor : uint [0xFFFFFF] 高光部分颜色
- highlightAlpha : Number [0.5] 高光部分透明值
- shadowColor : uint [0x000000] 阴影部分颜色
- shadowAlpha :Number [0.5] 阴影部分透明值
- blurX : Number [2] X方向浮雕深度
- blurY : Number [2] Y方向浮雕深度
- strength : Number [0] 柔和度,值越大超硬
- quality : uint [2] 生成质量,一般默认值
- index : uint
- addFilter : Boolean [false]
- remove : Boolean [false]

posted @ 2009-12-15 21:49 TerryXu 阅读(340) 评论(0) 编辑

       在现在这家公司已经有一年多时间了,说不上来的感觉,时而感觉充实,时而感觉失落,仔细想来,都是由于自己的心在作怪,做为一个技术人员,却一直没能静下心来做技术,在做事情的过程中,想了很多问题,也解决了很多问题,可是现在回想起来,感觉什么都没有,后来发现不是因为自己想的不够多,不是因为自己做的不够细,原因只有一个,那就是想后、做后,自己都没有去总结一下,结果总是昏昏沉沉的思考每一个新的东西,这样下来,感觉自己一点积累都没有。

      再也不要这样做技术了,现在得强迫自己每天挤出一些时间来总结一下这几天所做所想,想通过这种方式来让自己有个基本的积累!好,就这么做了,从今天开始,看完书后进行一些总结归纳,哪怕是一句话也行。

posted @ 2009-12-13 17:33 TerryXu 阅读(52) 评论(0) 编辑
      昨天晚上在写一个Android的计时器,开始认为很容易,用Java一般写法,结果发现计时器根本不能运行,但却不报任何错误,当时就呆在那了,不知道该怎么办了,后来在网上查了一下,Android考虑到线程安全问题,不允许在线程中执行UI线程(我的现在所知道,还有其他的限制发现中),在Android中,有一个很有意思的类:android.os.Handler,这个可以实现各处线程间的消息传递。
先看段代码,这个实例化了一个Handler,Handler可以通过Message在多个线程通讯,我这里做的是定时recLen加1,然后以一定的格式,显示到recTime上(UI线程上的操作)。
Code

下面定实例化一个TimerTask,这个是为Timer提供一个定时执行的内容。我在这个方法中加的是给Handler一个发送消息功能,因这在Timer的线程中,无法直接操作UI线程。
1 TimerTask task = new TimerTask(){  
2       public void run() {  
3       Message message = new Message();      
4       message.what = 1;      
5       handler.sendMessage(message);    
6    }  
7 };  

剩下的工作就简单多,添加一个Timer,可以让程序运行起来了
1 timer = new Timer(true);
2 timer.schedule(task,10001000); //延时1000ms后执行,1000ms执行一次
3 //timer.cancel(); //退出计时器

说到这里,也许有些还感觉云里雾里,好久没写东西,也不知道怎么把问题说的更明白,这个再贴上我开始的错误写法,对比错误写法,也许能让大家更快的明白过来
错误写法

注:本人也是Android初学者,说的不对的地方欢迎各位指正,很想在这里和大家多多交流,一个学习的过程遇到问题的时候感觉真的很无助。
posted @ 2009-09-04 09:42 TerryXu 阅读(8015) 评论(5) 编辑
摘要: 今天在写一个简单的Xml操作类,包括读取xml,修改xml一节点下的Attribute Value, 如一节点不存在,则创建节点.操作xml我习惯使用 XmlDocument ,创建一个新的节点,并添加Attribute的方法,代码如下:[代码]阅读全文
posted @ 2009-08-20 00:06 TerryXu 阅读(117) 评论(0) 编辑
摘要: 使用@ OutputCache指令 使用@ OutputCache指令,能够实现对页面输出缓存的一般性需要。@ OutputCache指令在ASP.NET页或者页中包含的用户控件的头部声明。这种方式非常方便,只需几个简单的属性设置,就能够实现页面的输出缓存 策略。@ OutputCache指令声明代码如下。 @ OutputCache指令代码 <%@ OutputCache CacheProfil...阅读全文
posted @ 2009-01-07 16:06 TerryXu 阅读(3365) 评论(2) 编辑
摘要: 最近在做一个小型项目,用到一个用户注册,由于安全考虑,要求客户端和服务器端同时验证,我在项目中用的是微软的验证控件,在使用的过程中发现真是很麻烦,在页面中拖了十几个验证控件不说,因为验证的时候验证失败时自定义显示一些错误信息,做起来相当麻烦,有些小的改动找个代码都不方便,最关键的是无法重复使用,所以想自己做一个验证的控件,本来想做自定义控件,后来发现由于验证方面定义的部分比较多,最后选择使用类库。...阅读全文
posted @ 2008-12-23 11:54 TerryXu 阅读(2166) 评论(20) 编辑
摘要: 在ASP.NET编程中,由于经常采用一个页面通过不同的参数来显示不同的内容,因此常常需要实现动态输出不同的htmlheader,比如title,keywords,descrtptions等。推荐的简单做法如下:protectedvoidPage_Load(objectsender,EventArgse){//PagetitlePage.Title="Thisisatitleandmetatestp...阅读全文
posted @ 2008-12-17 15:48 TerryXu 阅读(270) 评论(1) 编辑
摘要: 对于很多 Web 开发人员来说,只需要生成简单的请求并接收简单的响应即可;但是对于希望掌握 Ajax 的开发人员来说,必须要全面理解 HTTP 状态代码、就绪状态和 XMLHttpRequest 对象。在本文中,Brett McLaughlin 将向您介绍各种状态代码,并展示浏览器如何对其进行处理,本文还给出了在 Ajax 中使用的比较少见的 HTTP 请求。在本系列的 上篇文章 中,我们将详细介...阅读全文
posted @ 2008-11-29 16:19 TerryXu 阅读(56) 评论(0) 编辑