加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

flash as3.0常用代码(转载)

(2012-10-13 23:14:13)
标签:

as3

flash

it

分类: AS3
flash, 代码
flash AS3的全屏代码:this.stage.displayState=StageDisplayState.FULL_SCREEN;
退出代码:
tc_btn.addEventListener(MouseEvent.CLICK, tuichu);

//给overbtn这个按钮添加鼠标点击执行tuichu函数的侦听

function tuichu(event:MouseEvent):void {

       fscommand("quit");

       //鼠标点击执行tuichu时swf退出

}
时间轴上停止代码:this.stop()
按钮代码:
红色代码为自定义函数,同一按钮中相同,不同按钮必须不同以区别开来。
播放和停止
bf_btn.addEventListener(MouseEvent.CLICK,work1);
function work1(event:MouseEvent){
   this.play()
}
tz_btn.addEventListener(MouseEvent.CLICK,work2);
function work2(event:MouseEvent){
   this.stop()
}


跳转代码
shou_btn.addEventListener(MouseEvent.CLICK,work1);
function work1(event:MouseEvent){
gotoAndStop("首页");
}


tz_btn.addEventListener(MouseEvent.CLICK,work2);
function work2(event:MouseEvent){
gotoAndPlay(1);
}


逐帧代码:
xy_btn.addEventListener(MouseEvent.CLICK,work1);
function work1(event:MouseEvent){
   this.nextFrame()
}
Sy_btn.addEventListener(MouseEvent.CLICK,work2);
function work2(event:MouseEvent){
   this.prevFrame()
}
按钮控制影片剪辑
tz_btn.addEventListener(MouseEvent.CLICK,work1);
function work1(event:MouseEvent){
this.ai_mc.gotoAndPlay(3)

按钮暂停代码;
(1)控制主场景暂停的方法是,在舞台上建立个播放暂停按钮,起名pause_btn。在时间线上添加代码:
pause_btn.addEventListener(MouseEvent.CLICK,playpauseMC);

//上面是AS3中强大的侦听事件,基本模型为事件源.addEventListener(事件,触发);本句意思是:在pause_btn上添加一个鼠标点击执行playpauseMC函数的侦听事件。

function playpauseMC(event:MouseEvent):void {

       //当点击pause_btn时,执行下面的动作,下面是让this.id这个值和上一次的不同简单的说就是在True和False之间来回切换

       this.id=!this.id ;

       //这是用到 ?:运算符 如果this.id为真,则执行":"号前面的语句,即movieclip.stop();  如假则执行后面的语句,即movieclip.stop();

       this.id ?this.stop() :  this.play();}

(2)控制主场景暂停的方法是,在舞台上建立个名为pause_btn播放暂停按钮,控制影片剪辑yp_mc。在时间线上添加代码:

pause_btn.addEventListener(MouseEvent.CLICK, playmc);

//给pause_btn添加鼠标点击执行playmc函数的侦听

function playmc(event:MouseEvent):void {

this.yp_mc.play();

//movieclip播放

pause_btn.removeEventListener(MouseEvent.CLICK, playmc);

//给pause_btn注销鼠标点击执行playmc函数的侦听

pause_btn.addEventListener(MouseEvent.CLICK, stopmc);

//给pause_btn添加鼠标点击执行stopmc函数的侦听

}

function stopmc(event:MouseEvent):void {

this.yp_mc.stop();

//movieclip暂停

pause_btn.removeEventListener(MouseEvent.CLICK, stopmc);

//给pausebtn注销鼠标点击执行stopmc函数的侦听

pause_btn.addEventListener(MouseEvent.CLICK, playmc);

//给pause_btn添加鼠标点击执行playmc函数的侦听 }

 

显示、隐藏按钮代码:
this.yp_mc.visible=false;
//以上代码让yp_mc首先在场景中隐藏
this.xs_btn.addEventListener(MouseEvent.CLICK, xianshitrue);

function xianshitrue(event:MouseEvent):void {

this.yp_mc.visible=true;
}
//以上为xs_btn显示按钮代码
this.yc_btn.addEventListener(MouseEvent.CLICK, ycfalse);

function ycfalse(event:MouseEvent):void {

this.yp_mc.visible=false;

}
//以上为yc_btn隐藏按钮代码


yp_mc影片拖放代码:
  yp_mc.addEventListener(MouseEvent.MOUSE_DOWN, tuo);

function tuo(event:MouseEvent):void {

this.yp_mc.startDrag();

}

yp_mc.addEventListener(MouseEvent.MOUSE_UP, ting);

function ting(event:MouseEvent):void {

this.yp_mc.stopDrag();

}

 


划线代码:先放一个hx_btn的按钮,输入如下代码:
var lines :Sprite =  new Sprite ();

addChild(lines);

stage.addEventListener(MouseEvent.MOUSE_DOWN,lineBegin);

stage.addEventListener(MouseEvent.MOUSE_UP,lineEnd);

function lineBegin(event:MouseEvent):void {

       lines.graphics.lineStyle(10,0x0099ff,1);

       // lineStyle(10线径,0x0099ff蓝色,1) 16711935粉色

       lines.graphics.moveTo(mouseX,mouseY);

       stage.addEventListener(MouseEvent.MOUSE_MOVE, lineDraw);

}

function lineDraw(event:MouseEvent):void {

       lines.graphics.lineTo(mouseX,mouseY);

}

function lineEnd(event:MouseEvent):void {

       stage.removeEventListener(MouseEvent.MOUSE_MOVE, lineDraw);

}

btn.addEventListener(MouseEvent.CLICK,lineClearn);

function lineClearn(event:MouseEvent):void {

       lines.graphics.clear();

}

lines.filters = [new DropShadowFilter()]; 


加载外部swf的代码:

var loaderoader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.load(new URLRequest("1.swf"));
function completeHandler(event:Event) {
       var _contentisplayObject = event.target.content;
       this.addChild(loader);
}

var myURL:URLRequest=new URLRequest("1.swf");
var myLoaderoader=new Loader();
myLoader.load(myURL);
addChild(myLoader);

 

做课件有关的flash cs3 AS3脚本知识一一介绍给大家,主要见下面的目录:
1、全屏代码和退出代码:
2、AS3根目录表示:
3、按钮事件:
4、停止、播放、跳转帧:
5、影片剪辑的播放与暂停:
6、影片剪辑的隐藏和播放:
7、拖放影片剪辑:
8、顺序问题:
9、在Flash中用鼠标画出任意曲线
10、键盘控制:
…………

1、全屏代码。flash AS2的全屏代码:fscommand("fullscreen", "true");
而flash AS3的全屏代码:this.stage.displayState=StageDisplayState.FULL_SCREEN;
退出代码:
overbtn.addEventListener(MouseEvent.CLICK, tuichu);
//给overbtn这个按钮添加鼠标点击执行tuichu函数的侦听
function tuichu(event:MouseEvent):void {
fscommand("quit");
//鼠标点击执行tuichu时swf退出
}
2、AS3根目录表示:
 as2的根目录是:_root
  例如:_root.moviexlip.play();
  as3的根目录是:MainTimeline(stage.getChildAt(0))
       例如:MainTimeline(stage.getChildAt(0)).moviexlip.play();
注意:as3的脚本已加在帧上了,不可以加在元件上了。
>>flash cs3的应用(二)  as3 鼠标事件

按钮事件:
shijianbtn.addEventListener(MouseEvent.CLICK, shijianming);
 

 


//在shijianbtn这个按钮或影片剪辑上加一个侦听鼠标点击的shijianming函数
function shijianming(event:MouseEvent):void {
//当鼠标点击时shijianming函数执行zhixingmingling这个动作(命令)
          zhixingmingling
}
shijianbtn是一个铵钮名称,shijianming这个函数的事件名自己随便起,zhixingmingling执行的命令如:movieclip.play();
鼠标事件(MouseEvent)最重要的人机交互途径。分为MOUSE_OVER, MOUSE_MOVE, MOUSE_DOWN, MOUSE_UP, MOUSE_OUT, MOUSE_WHEEL和MOUSE_LEAVE。
MOUSE_OVER - 鼠标移动到目标对象之上时触发, 可以用于模拟按钮的mouse over效果;
MOUSE_MOVE - 鼠标在目标对象之上移动时触发,主要用于判断。比如判断在拖拽实例时,实例是否在允许的范围之内,如果超出,立刻停止拖拽或者重新设定实例的坐标;
MOUSE_DOWN - 鼠标在目标对象之上按下时触发。注意,只有按下鼠标左键时才会触发,右键和滚轮都不会触发。在目标对象之外按下鼠标左键,再移动到目标对象之上时,也不会触发;
MOUSE_UP - 鼠标在目标对象之上松开时触发。注意,只有松开鼠标左键时才会触发,右键和滚轮都不会触发。在目标对象之上按下鼠标左键,再移动到目标对象之外松开时,不会触发。但在目标对象之外按下鼠标左键,再移动到目标对象之上松开时,就会触发。
MOUSE_OUT- 鼠标移动到目标对象之外时触发。
MOUSE_WHEEL - 鼠标在目标对象之上转动滚轮时触发。
MOUSE_LEAVE - 当光标离开舞台时触发
鼠标显示模式:影片剪辑实例名称 movieclip.buttonMode=true;(显示手形)
影片剪辑实现双击:movieclip.doubleClickEnabled=true;

>>flash cs3的应用 (三)     停止、播放、跳转帧


停止、播放、跳转帧:
与AS2一样,AS3也Stop(); play(); nextFrame();  prevFrame(); gotoAndStop();gotoAndplay();这些帧动作。跳转帧可以写帧数,也可以写帧标签。虽然AS3好像不支持从元件上添加动作,但也可以从元件的帧上添加控制根目录舞台的脚本。比如从MC1控制的帧中添加 MainTimeline(stage.getChildAt(0)).MC2.play(); ,就可以控制根目录下的MC2的播放。这和AS2的 _root.MC2.play();  一样的。
 


 

>>flash cs3的应用(四) 影片剪辑的播放与暂停


      我们在做课件的过程中,针对导入的视频如果能控制它的播放与暂停那有多好啊。在AS2中可以做一个播放暂停影片剪辑,在其中做两个帧,一个帧中放一个播放按钮,另一个帧中放一个暂停按钮,当点击头一帧的播放按钮,便对根目录舞台上的视频进行播放,同时这个播放暂停影片剪辑跳转到第二帧上,再点击就是暂停按钮了,就可以控制根目录舞台上的视频暂停了。AS3中也可以这样做,但我从网上搜到的几种方法就很好,如下:
把视频起个名叫movieclip,再在舞台上建立个播放暂停按钮,起名pause_btn。在时间线上添加代码:
pause_btn.addEventListener(MouseEvent.CLICK,playpauseMC)
//上面是AS3中强大的侦听事件,基本模型为事件源.addEventListener(事件,触发);本句意思是:在pause_btn上添加一个鼠标点击执行playpauseMC函数的侦听事件。
function playpauseMC(event:MouseEvent):void{
          //当点击pause_btn时,执行下面的动作,下面是让this.id这个值和上一次的不同简单的说就是在True和False之间来回切换
          this.id=!this.id
          //这是用到 ?:运算符 如果this.id为真,则执行":"号前面的语句,即movieclip.stop();  如假则执行后面的语句,即movieclip.stop();
          this.id ?movieclip.stop() :  jiewen.play();
          }
这样,点击一下pause_btn,就开始播放(暂停),再点击一下pause_btn,就开始暂停(播放),是不是很有趣!
还有一种,在舞台上新建个pause_btn按钮,输入以下代码:
pause_btn.addEventListener(MouseEvent.CLICK, playmc);
//给pause_btn添加鼠标点击执行playmc函数的侦听
function playmc(event:MouseEvent):void {
movieclip.play();
//movieclip播放
pause_btn.removeEventListener(MouseEvent.CLICK, playmc);
//给pause_btn注销鼠标点击执行playmc函数的侦听
pause_btn.addEventListener(MouseEvent.CLICK, stopmc);
//给pause_btn添加鼠标点击执行stopmc函数的侦听
}
function stopmc(event:MouseEvent):void {
movieclip.stop();
//movieclip暂停
pause_btn.removeEventListener(MouseEvent.CLICK, stopmc);
//给pausebtn注销鼠标点击执行stopmc函数的侦听
pause_btn.addEventListener(MouseEvent.CLICK, playmc);
//给pause_btn添加鼠标点击执行playmc函数的侦听
}
这种方法也能实现播放与暂停。
var kong:Boolean = true;
//判断当前状态 [播放/暂停]
pause_btn.addEventListener(MouseEvent.CLICK,bofangzanting);
//声音控制按钮事件
function bofangzanting(event:MouseEvent) {
if (kong == false) {
    kong = true;
  mc.play();
} else {
    kong = false;
  mc.stop();
}
}
pause_btn.buttonMode=true;
//pause_btn显示模式为真,即显示为手型
pause_btn.addEventListener(MouseEvent.CLICK,bofangzanting);
//给pause_btn添加鼠标点击侦听函数bofangzanting
function bofangzanting(event:MouseEvent):void {
if (pause_btn.currentFrame==2) {
  //如果pause_btn的当前帧是2
  pause_btn.gotoAndStop(1);
  //pause_btn跳转到第一帧
mc.play();
} else {
  pause_btn.gotoAndStop(2);
  //pause_btn跳转到第二帧
  mc.stop();
}
}
    在AS3里MovieClip(影片剪辑)和AS2里没有多大的差别,
有实例属性6个:
currentFrame: 记录当前播放的是第几帧
currentLabel: 记录当前播放帧的标签
totalFrames: 记录当前影片共有多少帧
currentScene: 持有当前scene场景对象引用
scenes:        一个数组,记录影片含有的全部场景对象数组
currentLabels:记录着当前场景下所有FrameLabel标签对象的数组。
enabled:      默认为true.控制影片对象是否可以具有按钮行为。
有8个实例方法:
play()                         :让播放头开始或继续播放
stop():停止播放
gotoAndPlay(帧数或标签,场景):从(转到)某帧开始播放。
gotoAndStop(帧数或标签,场景):转到某帧并停止
nextFrame():跳到下一帧,并停止
prevFrame():跳到上一帧,并停止
nextScene():跳到下一场景
prevScene():跳到上一场影
掌握这些对于后几节学习播放进度控制条的制作有好处。

 

>>flash cs3的应用(五) 影片剪辑的隐藏和显示


AS3中的影片剪辑的隐藏和显示和AS2中的差不多,在AS2中常用
_root.movieclip.visible=false;
把movieclip隐藏,而在AS3中则是用
movieclip.visible=false;
把movieclip隐藏,然后点击xianshibutton这个按钮
xianshibutton.addEventListener(MouseEvent.CLICK, xianshitrue);
function xianshitrue(event:MouseEvent):void {
movieclip.visible=true;
}
把它显示。
 

>>flash cs3的应用(六)影片剪辑的拖放


在AS3中影片剪辑的拖放与AS2也差不多,如下:
movieclip.addEventListener(MouseEvent.MOUSE_DOWN, tuo);
function tuo(event:MouseEvent):void {
movieclip.startDrag();
}
movieclip.addEventListener(MouseEvent.MOUSE_UP, ting);
function ting(event:MouseEvent):void {
movieclip.stopDrag();
}
不过,startDrag()的括号里是可以用位置参数进行约数的。如下例:
var shang=hk_mc.y;
//声明 上=滑块的Y坐标
var zuo=hd_mc.x;
//声明 左=滑道的X坐标
var xia=0;
//声明 下=0
var you=hd_mc.width-hk_mc.width;
//声明 右=滑道的宽-滑块的宽
var fk:Rectangle=new Rectangle(zuo,shang,you,xia);
//声明 方块的位置是一个新的位置:左上右下
hk_mc.startDrag(false,fk);
//光标不锁定中心,滑块开始在FK范围内拖动
 

>>flash cs3的应用(七) 顺序问题


比如有一个事件Nextframe,点击overbtn按钮要先停止jiewen播放,再跳转到下一帧,这时的脚本:
function Nextframe(event:MouseEvent):void {
          jiewen.stop();
          nextFrame();
}
overbtn.addEventListener(MouseEvent.CLICK, Nextframe);
而这样却不行,  
          nextFrame();
  jiewen.stop();
这时它认为先跳转到下一帧,而却控制不了jiewen的停止了,它会一直播放。
 

>>flash cs3的应用(八)画线的代码


可用代码
var lines :Sprite =  new Sprite ();
addChild(lines);
stage.addEventListener(MouseEvent.MOUSE_DOWN,lineBegin);
stage.addEventListener(MouseEvent.MOUSE_UP,lineEnd);
function lineBegin(event:MouseEvent):void{
       lines.graphics.lineStyle(10,0x0099ff,1);
// lineStyle(10线径,0x0099ff蓝色,1) 16711935粉色
lines.graphics.moveTo(mouseX,mouseY);
stage.addEventListener(MouseEvent.MOUSE_MOVE, lineDraw);
}
function lineDraw(event:MouseEvent):void{
lines.graphics.lineTo(mouseX,mouseY);
}
function lineEnd(event:MouseEvent):void{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, lineDraw);
}
btn.addEventListener(MouseEvent.CLICK,lineClearn);
function lineClearn(event:MouseEvent):void{
lines.graphics.clear();
}

  以上是画线的代码,颜色和线径大小自己可调节,下面是阴影效果。

lines.filters = [new DropShadowFilter()]
//阴影效果
  本代码是把线画在最上层的,不是只画在最低层舞台上的。
 

>>flash cs3的应用(九)  键盘控制


单一键键盘控制的通用代码
stage.addEventListener(KeyboardEvent.KEY_DOWN,playpauseMC);
function playpauseMC(event:KeyboardEvent):void {
       switch (event.keyCode) {
              case Keyboard.SPACE :
                     //上面除了SPACE,像UP、DOWN、L EFT、RIGHT、SHIFT也行。              
Movieclip.xxx;
// Movieclip.xxx是影片剪辑的执行命令,如 Movieclip.stop(); 
                     break;
              default :
                     break;
       }
}
比如,用键盘控制播放与暂停
  空格键控制影片剪辑播放与暂停
stage.addEventListener(KeyboardEvent.KEY_DOWN,playpauseMC);
function playpauseMC(event:KeyboardEvent):void {
       switch (event.keyCode) {
              case Keyboard.SPACE :
                     //下面是让this.id这个值和上一次的不同 简单的说 就是在True和False之间来回切换
                     this.id=!this.id;
                     //这是用到 ?: 运算符 如果this.id为真,则执行":"号前面的语句,即mc.stop();   如假则执行后面的语句,即mc.stop();
                     this.id ?jiewen.stop():  jiewen.play();
                     break;
              default :
                     break;
       }
}
还可以用组合键来控制动作,代码如下:
stage.addEventListener(KeyboardEvent.KEY_DOWN,playpauseMC);
//给舞台stage添加键盘按下执行playpauseMC函数的侦听
function playpauseMC(event:KeyboardEvent):void {
if (event.ctrlKey && event.keyCode == Keyboard.SHIFT) {
  //当执行playpauseMC函数时按下的是组合键CTRL和SHIFT,启动以下命令
  this.id=!this.id;
  //上面是让this.id这个值和上一次的不同 简单的说 就是在True和False之间来回切换
  this.id ?jiewen.stop():  jiewen.play();
  //这是用到 ?: 运算符 如果this.id为真,则执行":"号前面的语句,即mc.stop();   如假则执行后面的语句,即mc.stop();
}
}
除了SHIFT之外,DELETE、END HOME、INSERT、PAGE_UP、PAGE_DOWN、LEFT、 RIGHT也可以用。

 

>>flash cs3的应用(十) 时间的显示


下面是时间显示的简单代码
var xx1:TextField=new TextField();
//定义一个新的文本xx1
var xx2:TextField=new TextField();
//定义一个新的文本xx2
addChild(xx1);
//添加一个子类xx1
addChild(xx2);
//添加一个子类xx2
xx1.x=50;
xx1.y=50;
xx2.x=50;
xx2.y=70;
xx1.autoSize=TextFieldAutoSize.LEFT;
xx2.autoSize=TextFieldAutoSize.LEFT;
stage.addEventListener(Event.ENTER_FRAME,foo1);
//在舞台上添加一个进入帧的foo1函数侦听事件
function foo1(event:Event) {
var xxate=new Date();
//声明xx等于一个新的时间
xx1.text=xx.fullYear +"年"+xx.month +"月"+xx.date+"日";
//xx1的文本显示年月日
}
stage.addEventListener(Event.ENTER_FRAME,foo2);
//在舞台上添加一个进入帧的foo2函数侦听事件
function foo2(event:Event) {
var yyate=new Date();
//声明yy等于一个新的时间
xx2.text=yy.hours +"时"+yy.minutes+"分"+yy.seconds+"秒";
//xx2的文本显示时分秒
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有