通过实例学习AS3.0——案例三
程序员文章站
2023-11-03 20:47:52
相关文章:通过实例学习flash AS3.0——案例二
首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不... 08-10-06...
相关文章:通过实例学习flash as3.0——案例二
首先声明:本人大菜鸟一个,刚接触as3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。
水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。
下面进入正题:
案例3:熟悉tween以及tweenevent的运用
说明:点击标签载入特定的图片说明(其实是一个mc,只是坐标不同),同时还有渐隐渐现效果,没做loading,可能载入会有点慢。
演示:
http://www.live-my-life-with-yuyi.com/as3_cases/dynamic_with_events/
代码:
初始化,给一些变量赋值
import fl.transitions.tween;
import fl.transitions.easing.*;
import fl.transitions.tweenevent;
var homex:number = -301;
var homey:number = 110;
var newsx:number = -17;
var newsy:number = -777;
var aboutx:number = -1354;
var abouty:number = -445;
var xtween:tween;
var ytween:tween;
var intween:tween;
var outtween:tween;
先是导入一些需要用到的类,然后定义几个坐标,这几个坐标都是一个大mc的不同位置。
然后是初始化tween类,并对tween类监听。
xtween = new tween(main_mc,"x",strong.easeinout,main_mc.x,homex,2,true);
ytween = new tween(main_mc,"y",strong.easeinout,main_mc.y,homey,2,true);
intween = new tween(main_mc.home_mc,"alpha",none.easenone,0,1,.5,true);
outtween = new tween(main_mc.home_mc,"alpha",none.easenone,1,0,.5,true);
xtween.addeventlistener(tweenevent.motion_finish,fadein);
xtween.addeventlistener(tweenevent.motion_start,fadeout);
home_btn.addeventlistener(mouseevent.click, navigate);
news_btn.addeventlistener(mouseevent.click, navigate);
about_btn.addeventlistener(mouseevent.click, navigate);
实例化xtween,ytween后并不会马上就运行,如果在之后的代码发现了stop动作的话。这些参数跟as2并没有多大差别。
xtween和ytween是实现mc的缓动效果,intween和outtween是实现渐隐渐现效果的。
这里只监听xtween而没有监听ytween,因为这两个是同时进行的所以监听一个就行了。
最后是对3个按钮的click监听。
接下来就是最关键的上面提到的几个函数
function navigate(event:mouseevent):void
{
if(event.target == home_btn)
{
settween(homex,homey,main_mc.home_mc);
}
else if(event.target == news_btn)
{
settween(newsx,newsy,main_mc.news_mc);
}
else
{
settween(aboutx,abouty,main_mc.about_mc);
}
}
function settween(tweenx:number,tweeny:number,tweenmc:movieclip):void
{
xtween.begin = main_mc.x;
ytween.begin = main_mc.y;
xtween.finish = tweenx;
ytween.finish = tweeny;
tweenmc.alpha = 0;
intween.obj = tweenmc;
xtween.start();
ytween.start();
}
function fadein(event:tweenevent):void
{
intween.start();
outtween.obj = intween.obj;
}
function fadeout(event:tweenevent):void
{
outtween.start();
}
先来看看navigate函数,这是被3个按钮共同调用的函数,通过判断不同的target.name设置不同的settween。
再来看看settween,参数tweenx和tweeny是目标坐标,tweenmc是目标mc,通过设置begin,finish,obj参数来改变xtween和ytween的初始坐标,目标坐标,作用对象,最后调用start函数开始运动。
fadein函数的作用是使intween开始,并且将intween作用的对象赋予outtween,这样outtween被调用的时候就能作用在正确的mc上了。
源文件下载
首先声明:本人大菜鸟一个,刚接触as3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。
水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。
下面进入正题:
案例3:熟悉tween以及tweenevent的运用
说明:点击标签载入特定的图片说明(其实是一个mc,只是坐标不同),同时还有渐隐渐现效果,没做loading,可能载入会有点慢。
演示:
http://www.live-my-life-with-yuyi.com/as3_cases/dynamic_with_events/
代码:
初始化,给一些变量赋值
import fl.transitions.tween;
import fl.transitions.easing.*;
import fl.transitions.tweenevent;
var homex:number = -301;
var homey:number = 110;
var newsx:number = -17;
var newsy:number = -777;
var aboutx:number = -1354;
var abouty:number = -445;
var xtween:tween;
var ytween:tween;
var intween:tween;
var outtween:tween;
先是导入一些需要用到的类,然后定义几个坐标,这几个坐标都是一个大mc的不同位置。
然后是初始化tween类,并对tween类监听。
xtween = new tween(main_mc,"x",strong.easeinout,main_mc.x,homex,2,true);
ytween = new tween(main_mc,"y",strong.easeinout,main_mc.y,homey,2,true);
intween = new tween(main_mc.home_mc,"alpha",none.easenone,0,1,.5,true);
outtween = new tween(main_mc.home_mc,"alpha",none.easenone,1,0,.5,true);
xtween.addeventlistener(tweenevent.motion_finish,fadein);
xtween.addeventlistener(tweenevent.motion_start,fadeout);
home_btn.addeventlistener(mouseevent.click, navigate);
news_btn.addeventlistener(mouseevent.click, navigate);
about_btn.addeventlistener(mouseevent.click, navigate);
实例化xtween,ytween后并不会马上就运行,如果在之后的代码发现了stop动作的话。这些参数跟as2并没有多大差别。
xtween和ytween是实现mc的缓动效果,intween和outtween是实现渐隐渐现效果的。
这里只监听xtween而没有监听ytween,因为这两个是同时进行的所以监听一个就行了。
最后是对3个按钮的click监听。
接下来就是最关键的上面提到的几个函数
function navigate(event:mouseevent):void
{
if(event.target == home_btn)
{
settween(homex,homey,main_mc.home_mc);
}
else if(event.target == news_btn)
{
settween(newsx,newsy,main_mc.news_mc);
}
else
{
settween(aboutx,abouty,main_mc.about_mc);
}
}
function settween(tweenx:number,tweeny:number,tweenmc:movieclip):void
{
xtween.begin = main_mc.x;
ytween.begin = main_mc.y;
xtween.finish = tweenx;
ytween.finish = tweeny;
tweenmc.alpha = 0;
intween.obj = tweenmc;
xtween.start();
ytween.start();
}
function fadein(event:tweenevent):void
{
intween.start();
outtween.obj = intween.obj;
}
function fadeout(event:tweenevent):void
{
outtween.start();
}
先来看看navigate函数,这是被3个按钮共同调用的函数,通过判断不同的target.name设置不同的settween。
再来看看settween,参数tweenx和tweeny是目标坐标,tweenmc是目标mc,通过设置begin,finish,obj参数来改变xtween和ytween的初始坐标,目标坐标,作用对象,最后调用start函数开始运动。
fadein函数的作用是使intween开始,并且将intween作用的对象赋予outtween,这样outtween被调用的时候就能作用在正确的mc上了。
源文件下载