actionscript-3 - 这行 Actionscript 的作用是什么?

标签 actionscript-3

我正在查看as3delaunay library大部分代码对我来说都是清楚的。然而,这部分不是(注意我前面加了箭头的行):

    public function circles():Vector.<Circle>
    {
        var circles:Vector.<Circle> = new Vector.<Circle>();
        for each (var site:Site in _sites)
        {
            var radius:Number = 0;
            var nearestEdge:Edge = site.nearestEdge();

=======>>   !nearestEdge.isPartOfConvexHull() && (radius = nearestEdge.sitesDistance() * 0.5);
            circles.push(new Circle(site.x, site.y, radius));
        }
        return circles;
    }

作为引用,isPartOfConvexHull() 位于 Edge.as 中,如下所示:

    internal function isPartOfConvexHull():Boolean
    {
        return (_leftVertex == null || _rightVertex == null);
    }

!nearestEdge.isPartOfConvexHull() 的作用是什么?这是否意味着只有在调用 isPartOfConvexHull() 返回 false 时,radius = nextEdge.sitesDistance() * 0.5 才会执行?这会停止执行任何其他代码吗?

最佳答案

它相当于:

if (!nearestEdge.isPartOfConvexHull()) {
    radius = nearestEdge.sitesDistance() * 0.5;
}
<小时/>

在以下行中:

var b:Boolean = expression1 && expression2;
如果 expression1false,则不会计算

expression2,因为我们已经知道最终结果:b = false.

现在在下面一行:

expression1 && expression2;

除了我们没有将结果分配给变量之外,还会发生同样的事情。

这正是您询问的行中发生的情况,其中 !nearestEdge.isPartOfConvexHull() 是第一个表达式,(radius = nearestEdge.sitesDistance() * 0.5) 是第二个表达式。

关于actionscript-3 - 这行 Actionscript 的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779961/

相关文章:

actionscript-3 - 如何限制用户访问webview中的某些url?

apache-flex - Flex 布局概述 - 有什么方法可以获得组件的首选尺寸?

actionscript-3 - 如何修改此缓动函数以减少反弹?

ios - 试图为 i-pad 制作一个 flash 项目,但在 itunes 上它作为一个 i-phone 应用程序出现

actionscript-3 - 如何在flex4的textArea中找到当前光标位置?

actionscript-3 - Starling MovieClip 帧不适合 2048。一个 MC 有多个 TextureAtlas?

actionscript-3 - 如何在 Actionscript 3 中为我自己的类实现转换?

flash - 如何以编程方式确定哪个 URLLoader 失败?

actionscript-3 - 加载 NetStream 视频时出现问题

actionscript-3 - 错误1180,闪存