【问题标题】:AS3 Calling a child's index during a for eachAS3 在 for each 期间调用子索引
【发布时间】:2013-02-28 22:58:07
【问题描述】:

我有一个函数,它使用鼠标单击事件在鼠标坐标处创建符号的子元素。然后将该实例推送到一个数组中。

我现在正在尝试创建一个新功能,当鼠标在 10 像素以内时,允许您拖放一个孩子。当孩子被放下时,我希望它旋转以面对数组中的下一个孩子。我目前正在使用for each 循环与数组中的每个孩子进行通信。

我遇到的问题是获取要删除的孩子的索引值并将其设置为变量。

作为参考,ins_trailPoint 是创建子项的变量,tPoint 是包含子项的数组的名称。 child 是试图获取被删除子节点索引值的变量。

function movePoint(Event:MouseEvent):void {
    for each (var ins_trailPoint in tPoint) {
        var child:int = event.target.parent.getChildIndex(event.target);
        var px:Number = mouseX - ins_trailPoint.x;
        var py:Number = mouseY - ins_trailPoint.y;
        var dist = Math.sqrt(px*px + py*py);

        if (dist<10) {
            stage.removeEventListener(MouseEvent.CLICK, addPoint);
            stage.addEventListener(MouseEvent.MOUSE_UP, dropPoint);
            ins_trailPoint.startDrag();

            function dropPoint(event:MouseEvent):void {
                ins_trailPoint.stopDrag();
                var dx:Number = tPoint[child+1].x - ins_trailPoint.x;
                var dy:Number = tPoint[child+1].y - ins_trailPoint.y;
                var radians:Number = Math.atan2(dy,dx);
                ins_trailPoint.rotation = radians * 180/Math.PI;

【问题讨论】:

  • 我已经更改了代码的缩进,但现在看起来很奇怪,因为 dropPoint() 是在 movePoint() 中定义的。是您想要的,还是缺少代码部分(大括号从不闭合)?
  • tPoint.indexOf(ins_trailPoint)

标签: actionscript-3 for-loop parent-child


【解决方案1】:

movePoint()的参数叫Event,大写字母,但你试试event小写。

【讨论】:

    猜你喜欢
    • 2011-10-31
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 2011-05-19
    相关资源
    最近更新 更多