• 【设为首页】
  • 【收藏闪客居】
  • 网站地图
  • RSS订阅
当前位置 :主页 > FLASH AS 编程 >
  • flash编程常用技巧

  • 来源: 作者: 2007-05-11 【 】 TAG:
1.如何全屏播放
fscommand("fullscreen", true);

2.如何屏蔽鼠标右键,注意第一种方法在flash调试的时候无效
(1)
fscommand("showmenu", false);

(2)
Stage.showMenu = false;

(3)
运用ContextMenu类的hideBuiltInItems方法.它可以设定屏蔽右键的同时,还允许设置,显示右键菜单的其中几个内置菜单.如下
var mymenu:ContextMenu = new ContextMenu();
mymenu.hideBuiltInItems();
mymenu.builtInItems.print = true;
this.menu = mymenu;

3.自定义右键菜单
//定义鼠标右键对象
var myContextMenu:ContextMenu = new ContextMenu();
//隐藏右键内置选项
myContextMenu.hideBuiltInItems();
//创建一个自定义选项
clingingboy = new ContextMenuItem("关于Clingingboy", boy);
//添加自定义选项
myContextMenu.customItems.push(clingingboy);
//定义自定义选项函数事件
function boy() {
getURL("http://www.clingingboy.com", "_blank");
}
//指定ContextMenu与主场景关联
_root.menu = myContextMenu;

4.声明变量和对象类型的技巧

(1)使用var关键字,然后指定类型,这是比较严格的

//声明变量类型
var i:Number = 0;
//声明对象类型
var mydate:Date;


(2)使用脚本编译器可以识别的名称

如把MC的实例名称取名为test_mc,动态文本实例名称取名为test_txt,这样的取名的好处在编译器里会出现代码提示

5.动态文本变量使用技巧

有时候需要把一个动态文本放在MC里面,比如放在test_mc里面,动态文本变量取名为test_txt,那么给在主场景上给变量赋值就是test_mc.test_txt=".....",这样比较麻烦,而且有时候需要把变量名跟别的变量同步,可以把这样设置变量,_root.test_txt,给变量赋值就不需要加MC了,可以直接赋值.而且允许多个动态文本使用同一个变量名称.主要是弄清楚级别的关系

6.层次的关系

_root 表示根,主场景的意思,比如主场景有个test_mc,给MC编写代码的时候可以写成_root.test_mc._x=100效果跟test_mc._x=100是一样的

_parent 对父级对象的引用,比如主场景有个test1_mc和test2_mc,进入test2_mc,在第一帧写_parent.test1_mc._x=100效果跟在主场景上写test1_mc._x=100是一样的.

this 引用对象或影片剪辑实例

7.编写按钮事件的方法(影片剪辑同理)

(1)在按钮的帧上写(不推荐)
on (release) {
  trace("test");
}

(2)写在主场景的第一帧上.都写在第一帧的话,以后找代码也方便.
test_btn.onRelease = function() {
  trace("test");
};

8.循环调用事件处理函数(根据帧频),通俗点的意思就是不停的做某件事情.
test_mc.onEnterFrame = function() {
  this._x += 5;
};
/*
onEnterFrame=function()
{
  test_mc._x+=5
}
*/

9.使循环调用事件处理函更加的流畅((可不根据帧频)

(1)使用setInterval()函数

(2)使用updateAfterEvent 函数

10.使用注释语句

注释单行"//"
注释多行"/*....*/"

11.载入外部文件

loadMovie("xxx.jpg",test_mc)
loadMovieNum("xxx.jpg",10)


第一种载入到MC中,主要控制MC属性
第二种注意控制深度

12.控制载入文件的属性

如果MC为空MC的话,只能控制其_x,_y,_alpha等属性,而不能控制其_width等属性,所以需要设置_width等属性,可以在MC里面画一个矩形,就是说,必须不能为空MC,而且最好不得在场景上手动控制MC属性,不然会没有效果.

一般MC默认的注册点为左上角,如不需要注册点的设置的话,可以直接载入MC中
//载入到影片剪辑中
loadMovie("http://www.clingingboy.com/uploads/200601/17_233507_snap1.jpg", test_mc);
test_mc._x = 0;
test_mc._y = 0;
test_mc._alpha = 50;

有时候需要控制注册点,如控制test_mc很难控制,有一个技巧,就是在test_mc里创建一个MC,将外部文件载入到test_mc内部的MC里去.这样就和容易的控制注册点了.因为这个有时候比较重要,特别是定位.很多因为主册点的原因.有兴趣的可以下载过去测试


13.简单的动态创建MC和文本
_root.createEmptyMovieClip("test_mc", 1);
_root.createTextField("my_txt", 2, 100, 100, 100, 100);

14.交换深度
myMC1_mc.onRelease = function() {
  this.swapDepths(myMC2_mc);
};
myMC2_mc.onRelease = function() {
  this.swapDepths(myMC1_mc);
};

15.使用for语句完成重复事件,这个很好用,不管是不是在AS编程里

(1)
test_mc._visible = 0;
for (i=0; i<6; i++) {
  duplicateMovieClip("test_mc", "test_mc"+i, i);
  this["test_mc"+i]._x = 100*i+50;
}

(2)或者在场景上把按钮命名为my_btn1,my_btn2....
for (i=0; i<6; i++) {
  this["my_btn"+i].onRelease = function() {
    trace("你点击了第"+i+"个按钮");
  };
}

16.控制对象属性的方法(比较老的不算)

(1)最简单的是直接使用点语法
test_mc._x=0
(2)使用with语句
with (test_mc) {
  _x = 0;
}
}

(3)使用中括号
this["test_mc"]._x = 400;

(4)使用eval函数
test_mc._visible = 0;
for (i=0; i<6; i++) {
  duplicateMovieClip("test_mc", "test_mc"+i, i);
  test = eval("test_mc"+i);
  test._x = 100*i+50;
}

17.熟悉脚本编译器语法检查,自动套用格式,显示代码提示,有事没事就多点点这三个按钮


18.给flash加物理效果

(1)不需要你知道什么知识,直接套用Tween类,其他效果可以去看专门讲解它的文章
test_mc.onRollOver = function() {
  new mx.transitions.Tween(this, "_xscale", mx.transitions.easing.Elastic.easeOut, this._xscale, 180, 30);
  new mx.transitions.Tween(this, "_yscale", mx.transitions.easing.Elastic.easeOut, this._yscale, 180, 30);
};
test_mc.onRollOut = function() {
  new mx.transitions.Tween(this, "_xscale", mx.transitions.easing.Elastic.easeOut, this._xscale, 100, 30);
  new mx.transitions.Tween(this, "_yscale", mx.transitions.easing.Elastic.easeOut, this._yscale, 100, 30);
};


(2)物理知识的简单运用

一,匀速运动
test_mc.onEnterFrame = function() {
  test_mc._x += 5;
  if (test_mc._x>400) {
    test_mc._x = 0;
  }
};


二.加速运动
i = 0.5;
speed = 0;
test_mc.onEnterFrame = function() {
  speed += i;
  test_mc._x += speed;
  if (test_mc._x>400) {
    test_mc._x = 0;
  }
  if (speed>50) {
    speed = 0;
  }
};

三.简谐运动
test_mc._x = 100;
speed = 0;
test_mc.onEnterFrame = function() {
  speed += (200-test_mc._x)*.05;
  test_mc._x += speed;
};

四.摩差运动的缓冲
test_mc.onEnterFrame = function() {
  test_mc._x += (300-test_mc._x)*.08;
};


五.阻尼运动
xr = 100;
dir = 1;
ang = 0;
damp = 1;
test_mc._x = 0;
test_mc.onEnterFrame = function() {
  test_mc._x += Math.sin(ang)*xr*dir*damp;
  damp *= 0.95;
  ang += 0.5;
};




上一篇:没有了   下一篇:没有了
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
牛皮癣怎么治疗 牛皮癣的治疗方法 牛皮癣偏方 怎样治疗牛皮癣 牛皮癣能治愈吗

Copyright © 2006-2008 flashas.net All Rights Reserved.
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)