仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 894|回复: 8
打印 上一主题 下一主题

[学习教程] 给大家带来Flash AS3教程:Level2D类-Flash actionscript

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 22:49:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Flash动画说到底就是“遮罩+补间动画+逐帧动画”与元件(主要是影片剪辑)的混合物,通过这些元素的不同组合,从而可以创建千变万化的效果。
后面进修了FlashAS3教程:ApplySocket类,
http://www.webjx.com/files/media/Level2D.swf

该类是关于同立体物体的深度复杂的主动办理类,只是做到了复杂的假造社区等,人物,修建物等深度分列,太庞大的估量就弄不定了,可是能够承继这个类持续界说

index.com.main.Leval2D类:
代码:publicclassLevel2DimplementsIEventDispatcher
实际:IEventDispatcher接口
对统一容器中的物体以Y坐标为基准举行主动深度办理

机关函数:
publicfunctionLevel2D(range_:DisplayObjectContainer)
参数暗示要对哪一个容器中的工具举行主动深度办理

手动分列深度办法:
publicfunctionreset():Array
前往分列后的工具数组,假如层级无改动,则前往以后工具数组
层级改动将调剂事务Level2DEvent.LEVEL_RESET

猎取工具列表办法:
publicfunctiongetDisplay(arg:Object=null):Array
猎取以后办理容器中,以arg体例过滤后的一切工具
若arg为空,则前往以后容器中一切工具列表
若arg为字符串,则前往以后容器中一切工具的arg属性列表
若arg为Object,则前往以后容器中,切合arg一切属性的工具列表

遍历办法:
publicfunctionforEach(fun:Function,arg:Object=null):void
以某种体例遍历一切工具,而且有arg体例举行过滤遍历
第一个参数,在遍历的时分,每遍历到一个工具,城市挪用fun函数,将显现工具和分列地位传进来,比方:
functioncallback(_display:DisplayObject,index:int){}
第二个参数,同等于getDisplay中arg参数

公有承继办法:
protectedfunctioninOrder(tmpAr:Array):void
以某种特定的数组举行深度改动
该办法必需承继该类,它的子集即可以看成公有属性来挪用该办法,内部不成见!

设置立即属性:(只写)
publicfunctionsetisTime(_isTime:Boolean):void
当参数为true,则暗示层级在能够改动的时分,会主动举行改动
当参数为false,则暗示必要手动挪用reset办法,才干改动深度分列

range属性:(只读)
publicfunctiongetrange():DisplayObjectContainer
当实例化办理容器后,就没法修正该属性了,只要经由过程挪用range来读取属性了

举例:
下面谁人flash的源代码,三个小方块都是能够拖拽的,CODE:
importindex.com.main.Level2D;
importindex.com.events.Level2DEvent;

varl2:Level2D=newLevel2D(this);
l2.addEventListener(Level2DEvent.LEVEL_RESET,levelResetFun);
l2.isTime=true;

functionlevelResetFun(e:Level2DEvent){
trace(l2.getDisplay("x"));//猎取以后一切工具的x属性
trace(l2.getDisplay({y:0,x:0}));//猎取以后一切工具,xy属性都即是0的工具
/**
*输入:
*137,0,229
*[objectMovieClip]
*/
}

mc1.addEventListener(MouseEvent.MOUSE_DOWN,funa);
mc2.addEventListener(MouseEvent.MOUSE_DOWN,funa);
mc3.addEventListener(MouseEvent.MOUSE_DOWN,funa);

mc1.addEventListener(MouseEvent.MOUSE_UP,funb);
mc2.addEventListener(MouseEvent.MOUSE_UP,funb);
mc3.addEventListener(MouseEvent.MOUSE_UP,funb);

functionfuna(e:MouseEvent):void{
e.target.startDrag();
}
functionfunb(e:MouseEvent):void{
e.target.stopDrag();
}Level2D源代码:CODE:
packageindex.com.truss{

importflash.events.EventDispatcher;
importflash.events.IEventDispatcher;
importflash.events.Event;
importflash.display.DisplayObjectContainer;
importflash.display.DisplayObject;

importindex.com.events.Level2DEvent;

publicclassLevel2DimplementsIEventDispatcher{

privatevardispatcher:EventDispatcher;
privatevar_range:DisplayObjectContainer;

publicfunctionLevel2D(range_:DisplayObjectContainer){
dispatcher=newEventDispatcher(this);
_range=range_;
}

//重排
publicfunctionreset():Array{
vartmpAr:Array=getDisplay();
vargetYAr:Array=getDisplay("y");
varaddYAr:Array=getYAr.concat().sort(16);

if(getYAr.toString()!=addYAr.toString()){
inOrder(tmpAr.sortOn("y",16));

//公布层级改动事务
dispatcher.dispatchEvent(newLevel2DEvent(Level2DEvent.LEVEL_RESET));
}

getYAr=addYAr=null;
returntmpAr;
}

//前往以后局限一切工具
publicfunctiongetDisplay(arg:Object=null):Array{
vari:int;
vartmpAr:Array=newArray;
varnum:int=_range.numChildren;
if(arg==null){
for(i=0;i<num;i++)tmpAr.push(_range.getChildAt(i));
}elseif(argisString){
for(i=0;i<num;i++)tmpAr.push(_range.getChildAt(i)[arg]);
}else{
for(i=0;i<num;i++){
vardis:DisplayObject=_range.getChildAt(i);
varisEnter:Boolean=true;
for(varindex:Stringinarg){
if(dis[index]!=arg[index]){
isEnter=false;
break;
}
}
if(isEnter)tmpAr.push(dis);
dis=null;
}
}
returntmpAr;
}

//以特定体例遍历该局限的显现工具
publicfunctionforEach(fun:Function,arg:Object=null):void{
vartmpAr:Array=getDisplay(arg);
for(vari:int=0;i<tmpAr.length;i++){
varstr:String=fun(tmpAr,i);
if(str=="true")return;
}
tmpAr=null;
}

//给定一个排序数组,举行排序
protectedfunctioninOrder(tmpAr:Array):void{
for(vari:int=0;i<tmpAr.length;i++)_range.addChild(tmpArasDisplayObject);
}

//设置及时重排
publicfunctionsetisTime(_isTime:Boolean):void{
if(_isTime)_range.addEventListener(Event.ENTER_FRAME,resetFun);
else_range.removeEventListener(Event.ENTER_FRAME,resetFun);
}

//及时重排
privatefunctionresetFun(e:Event):void{
reset();
}

//前往操纵地区
publicfunctiongetrange():DisplayObjectContainer{
return_range;
}

//侦听
publicfunctionaddEventListener(type:String,listener:Function,useCapture:Boolean=false,priority:int=0,useWeakReference:Boolean=false):void{
dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference);
}

//调剂
publicfunctiondispatchEvent(event:Event):Boolean{
returndispatcher.dispatchEvent(event);
}

//是不是含有侦听
publicfunctionhasEventListener(type:String):Boolean{
returndispatcher.hasEventListener(type);
}

//移除侦听
publicfunctionremoveEventListener(type:String,listener:Function,useCapture:Boolean=false):void{
dispatcher.removeEventListener(type,listener,useCapture);
}

//反省侦听
publicfunctionwillTrigger(type:String):Boolean{
returndispatcher.willTrigger(type);
}
}
}Level2DEvent类源代码:CODE:
packageindex.com.events{

importflash.events.Event;

publicclassLevel2DEventextendsEvent{

publicstaticconstLEVEL_RESET:String="levelReset";

publicfunctionLevel2DEvent(type:String){
super(type);
}
}
}
将多个Flash作品转化为屏保程序。◇所生成的屏保程序能进行全屏预览、窗口预览、设置密码等操作。
谁可相欹 该用户已被删除
沙发
发表于 2015-1-17 18:54:42 | 只看该作者
作为奖赏,你可以使用关键祯动画支持和tweening-两个最主要的节省时间的方式。本质上,关键祯是动画中显著事件发生的位置。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-22 15:12:07 | 只看该作者
富媒体可应用于各种网络服务中,如网站设计、电子邮件、BANNER、BUTTON、弹出式广告、插播式广告等。  
小魔女 该用户已被删除
地板
发表于 2015-1-31 08:10:29 | 只看该作者
它包含了下列常见的形式之一或者几种的组合:流媒体、声音、Flash、以及Java、Javascript、DHTML等程序设计语言。  
admin 该用户已被删除
5#
发表于 2015-2-6 18:56:26 | 只看该作者
在网络营销中所提供的利益。如果我们仔细看看国内外的专业网站,很少看到应用FLASH格式的广告,如网络上的知名网站。相信它们并不缺乏FLASH图片的制作力量。
6#
发表于 2015-2-18 08:25:49 | 只看该作者
flash的优缺点可以如何运用呢?
飘灵儿 该用户已被删除
7#
发表于 2015-3-6 03:24:33 | 只看该作者
在网络营销中所提供的利益。如果我们仔细看看国内外的专业网站,很少看到应用FLASH格式的广告,如网络上的知名网站。相信它们并不缺乏FLASH图片的制作力量。
再现理想 该用户已被删除
8#
发表于 2015-3-12 20:42:07 | 只看该作者
flash 有这么多的优势,那么它的优缺点和设计方面的关系是什么?
莫相离 该用户已被删除
9#
发表于 2015-3-20 03:51:05 | 只看该作者
Flash也支持alpha通道,这会使设计者高兴。没有太多的技术性,alpha通道是附加在图像上的信息 - 允许图像以不同的方式渲染。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 03:05

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表