首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这段代码是用Actionscript-2写的,有没有人能帮我把它翻译成AS-3?

这段代码是用Actionscript-2写的,有没有人能帮我把它翻译成AS-3?
EN

Stack Overflow用户
提问于 2010-04-15 02:49:43
回答 4查看 320关注 0票数 1
代码语言:javascript
复制
this.createEmptyMovieClip('mask_mc',0); 
bg_mc.setMask(mask_mc);
var contor:Number=0;

// function drawCircle draws a circle on mask_mc MovieClip of radius r and having center to mouse coordinates
function drawCircle(mask_mc:MovieClip):Void{
    var r:Number = 20;
    var xcenter:Number = _xmouse;
    var ycenter:Number = _ymouse;
    var A:Number = Math.tan(22.5 * Math.PI/180);
    var endx:Number;
    var endy:Number;
    var cx:Number;
    var cy:Number;

    mask_mc.beginFill(0x000000, 100);
    mask_mc.moveTo(xcenter+r, ycenter);
    for (var angle:Number = Math.PI/4; angle<=2*Math.PI; angle += Math.PI/4) {
       xend = r*Math.cos(angle);
       yend = r*Math.sin(angle);

       xbegin =xend + r* A *Math.cos((angle-Math.PI/2));
       ybegin =yend + r* A *Math.sin((angle-Math.PI/2));
       mask_mc.curveTo(xbegin+xcenter, ybegin+ycenter, xend+xcenter, yend+ycenter);
    }
    mask_mc.endFill();
}

// contor variable is used to hold if the mouse is pressed (contor is 1) or not (contor is 0)
this.onMouseDown=function(){
    drawCircle(mask_mc);
    contor=1;
}

// if the mouse is hold and moved then we draw a circle on the mask_mc
this.onMouseMove=this.onEnterFrame=function(){
    if (contor==1){
        drawCircle(mask_mc);
    }
}
this.onMouseUp=function(){
    contor=0;
}
EN

回答 4

Stack Overflow用户

发布于 2010-04-15 04:59:34

代码语言:javascript
复制
var mask_mc:MovieClip = new MovieClip();
bg_mc.setMask(mask_mc);
var contor:Number=0;

// function drawCircle draws a circle on mask_mc MovieClip of radius r and having center to mouse coordinates
function drawCircle(mask_mc:MovieClip):void{
    var r:Number = 20;
    var xcenter:Number = mouseX;
    var ycenter:Number = mouseY;
    var A:Number = Math.tan(22.5 * Math.PI/180);
    var endx:Number;
    var endy:Number;
    var cx:Number;
    var cy:Number;

    mask_mc.graphics.beginFill(0x000000, 100);
    mask_mc.graphics.moveTo(xcenter+r, ycenter);
    for (var angle:Number = Math.PI/4; angle<=2*Math.PI; angle += Math.PI/4) {
       xend = r*Math.cos(angle);
       yend = r*Math.sin(angle);

       xbegin =xend + r* A *Math.cos((angle-Math.PI/2));
       ybegin =yend + r* A *Math.sin((angle-Math.PI/2));
       mask_mc.graphics.curveTo(xbegin+xcenter, ybegin+ycenter, xend+xcenter, yend+ycenter);
    }
    mask_mc.graphics.endFill();
}

// contor variable is used to hold if the mouse is pressed (contor is 1) or not (contor is 0)
addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
addEventListener(MouseEvent.MOUSE_MOVE, mouseMoved);
addEventListener(MouseEvent.MOUSE_UP, mouseUp);
function mouseDown(e:MouseEvent):void{
    drawCircle(mask_mc);
    contor=1;
}
function mouseMoved(e:MouseEvent):void{
    if (contor==1){
        drawCircle(mask_mc);
    }
}
function mouseUp(e:MouseEvent):void{
 contor=0;
}

看到翻译起来有多简单了吗?你应该先试着自己翻译,然后再发表你的尝试。

这只是您的代码片段的直接翻译。您将不得不删除事件侦听器,否则将会有内存泄漏。

票数 3
EN

Stack Overflow用户

发布于 2010-04-15 02:58:40

这些链接可能对您有用:

AS2 to AS3 Migration Cheatsheet

ActionScript Migration Cookbook

票数 2
EN

Stack Overflow用户

发布于 2010-04-15 02:57:07

好吧,有时候开始的最好的方法就是试着把它编译成-3,看看它在哪里爆炸了。一些代码可以正常工作,然后你可以在google中输入错误(或者如果你遇到问题,可以向SO提交特定的问题)。如果你不是很了解和理解其中的区别,那么这将比仅仅试图“翻译”它要容易得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2640139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档