Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript重新租用画布等价物 我一直在尝试教自己一些游戏物理,推荐一本叫基金会ActionScript 3的书。我认为数学原理也适用于其他技术,尤其是html5画布。出于好奇,我开始将ActionScript转换为JavaScript,并在这个过程中进行了一些心理比较。到目前为止,其原理和语法与我的眼睛非常相似,但后来我发现了这个概念,称为“重租”。我在ActionScript中有以下代码: parent1 = new Sprite(); addChild(parent1); parent1.graphics.lineStyle(1, 0); parent1.graphics.drawRect(-50, -50, 100, 100); parent1.x = 60; parent1.y = 60; parent2 = new Sprite(); addChild(parent2); parent2.graphics.lineStyle(1, 0); parent2.graphics.drawRect(-50, -50, 100, 100); parent2.x = 170; parent2.y = 60; ball = new Sprite(); parent1.addChild(ball); ball.graphics.beginFill(0xff0000); ball.graphics.drawCircle(0, 0, 50); ball.graphics.endFill(); ball.addEventListener(MouseEvent.CLICK, onBallClick); private function onBallClick(event:MouseEvent):void { if (parent1.contains(ball)) { parent2.addChild(ball); }else if (parent2.contains(ball)) { parent1.addChild(ball); } }_Javascript_Actionscript 3_Html_Canvas - Fatal编程技术网

Actionscript重新租用画布等价物 我一直在尝试教自己一些游戏物理,推荐一本叫基金会ActionScript 3的书。我认为数学原理也适用于其他技术,尤其是html5画布。出于好奇,我开始将ActionScript转换为JavaScript,并在这个过程中进行了一些心理比较。到目前为止,其原理和语法与我的眼睛非常相似,但后来我发现了这个概念,称为“重租”。我在ActionScript中有以下代码: parent1 = new Sprite(); addChild(parent1); parent1.graphics.lineStyle(1, 0); parent1.graphics.drawRect(-50, -50, 100, 100); parent1.x = 60; parent1.y = 60; parent2 = new Sprite(); addChild(parent2); parent2.graphics.lineStyle(1, 0); parent2.graphics.drawRect(-50, -50, 100, 100); parent2.x = 170; parent2.y = 60; ball = new Sprite(); parent1.addChild(ball); ball.graphics.beginFill(0xff0000); ball.graphics.drawCircle(0, 0, 50); ball.graphics.endFill(); ball.addEventListener(MouseEvent.CLICK, onBallClick); private function onBallClick(event:MouseEvent):void { if (parent1.contains(ball)) { parent2.addChild(ball); }else if (parent2.contains(ball)) { parent1.addChild(ball); } }

Actionscript重新租用画布等价物 我一直在尝试教自己一些游戏物理,推荐一本叫基金会ActionScript 3的书。我认为数学原理也适用于其他技术,尤其是html5画布。出于好奇,我开始将ActionScript转换为JavaScript,并在这个过程中进行了一些心理比较。到目前为止,其原理和语法与我的眼睛非常相似,但后来我发现了这个概念,称为“重租”。我在ActionScript中有以下代码: parent1 = new Sprite(); addChild(parent1); parent1.graphics.lineStyle(1, 0); parent1.graphics.drawRect(-50, -50, 100, 100); parent1.x = 60; parent1.y = 60; parent2 = new Sprite(); addChild(parent2); parent2.graphics.lineStyle(1, 0); parent2.graphics.drawRect(-50, -50, 100, 100); parent2.x = 170; parent2.y = 60; ball = new Sprite(); parent1.addChild(ball); ball.graphics.beginFill(0xff0000); ball.graphics.drawCircle(0, 0, 50); ball.graphics.endFill(); ball.addEventListener(MouseEvent.CLICK, onBallClick); private function onBallClick(event:MouseEvent):void { if (parent1.contains(ball)) { parent2.addChild(ball); }else if (parent2.contains(ball)) { parent1.addChild(ball); } },javascript,actionscript-3,html,canvas,Javascript,Actionscript 3,Html,Canvas,因此,每次单击球时,它都会转移到另一个矩形,成为该矩形的“子对象”。现在我想知道JavaScript是否有一个类似的概念,可以让我以最少的努力获得与ActionScript重新生成类似的效果。好吧,这并不是那么简单。。。将画布视为位图数据而不是电影剪辑。。。如果你画的东西,你想移动它,你首先必须删除它,并再次绘制在下一个位置。。。画布中没有容器或任何奇特的显示列表内容。 但是,您可以构建自己的类似于显示列表的结构,也可以使用类似于的库。 另一种选择是使用DOM,在某些情况下可能比使用canvas

因此,每次单击球时,它都会转移到另一个矩形,成为该矩形的“子对象”。现在我想知道JavaScript是否有一个类似的概念,可以让我以最少的努力获得与ActionScript重新生成类似的效果。

好吧,这并不是那么简单。。。将画布视为位图数据而不是电影剪辑。。。如果你画的东西,你想移动它,你首先必须删除它,并再次绘制在下一个位置。。。画布中没有容器或任何奇特的显示列表内容。
但是,您可以构建自己的类似于显示列表的结构,也可以使用类似于的库。 另一种选择是使用DOM,在某些情况下可能比使用canvas元素更好(尽管对于游戏开发来说,这可能不是一种好方法)。在这种情况下,您可以使用DOM元素作为容器,因此重新分页变得非常简单:

var parent1 = document.getElementById('parent1');
var parent2 = document.getElementById('parent2');
var myDiv = document.getElementById('myDiv');
myDiv.onclick = function() {
    if(myDiv.parentNode === parent1) {
        parent2.appendChild(myDiv);
    }else if(myDiv.parentNode === parent2){
        parent1.appendChild(myDiv);
    }
}

()

你可以用另一种方式看。每个父项都是一个“原点”位置,这意味着它是您定位其他项(子项)的相关区域

你不需要任何花哨的东西来伪装这种行为

function parent(x, y) {
    this.x = x;
    this.y = y;
    this.addChild = function(child) {
        child.parent = this;
    }
}

function child(x, y) {
    this.x = x;
    this.y = y;
    this.parent = 0;
    this.getXPos = function() {
        if(parent != 0)
            return this.x + parent.x;
        else
            return this.x;
    }

    this.getYPos = function() {
        if(parent != 0)
            return this.y + parent.y;
        else
            return this.y;
    }
}


daddy = new parent(60, 60);
mommy = new parent(60, 170);
sonny = new child(0, 0);
//add mouse click condition//
if(sonny.parent != daddy) daddy.addChild(sonny);
else mommy.addChild(sonny);
这应该让您开始(我有一段时间没有接触JS了,也没有检查语法)。 我建议坚持制作游戏(用一种语言),除非目的是学习

祝你好运