as3 scanHardware() 函数使我的应用程序崩溃

Posted

技术标签:

【中文标题】as3 scanHardware() 函数使我的应用程序崩溃【英文标题】:as3 scanHardware() function making my app crash 【发布时间】:2016-01-20 00:32:19 【问题描述】:

我正在使用 ScanHardware 功能来获取更新的相机列表。如果将相机插入我的 Mac mini,相机长度正在更新。如果我拔掉相机,我的应用会突然关闭。

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                       
                       
                       creationComplete="test1()">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[

            import mx.controls.Alert;
            public var hardwareTimer:Timer;
            public function test1():void
                hardwareTimer = new Timer(5000);
                hardwareTimer.addEventListener(TimerEvent.TIMER,refreshHardware);
                hardwareTimer.start();
            
            public function refreshHardware(ev:TimerEvent):void

                flash.media.scanHardware();
                Alert.show(Camera.names.length.toString());
            
        ]]>
    </fx:Script>
</s:WindowedApplication>

如果我在拔掉任何Camera 后使用Camera.names,我的应用程序就会崩溃。

如何解决这个问题?

【问题讨论】:

您的代码在 Windows 10 中对我来说可以正常工作。在其他机器上尝试一下,如果它正常工作,那么您的机器可能有问题(AIR 版本,凸轮驱动程序,...)... 它在 Windows 上运行良好,我试过了。但它不适用于 Mac。 【参考方案1】:

Actionscript 错误不应导致应用崩溃。当应用程序崩溃时,通常是因为它在本机级别尝试了非法操作,例如写入保留/无效内存。 我会首先寻找相机或 USB 的问题。如果您可以使用其他品牌的网络摄像头重现问题,则可以排除摄像头硬件和驱动程序。如果您可以在另一台 Mac 上重现该问题,则可能不是 USB。

【讨论】:

以上是关于as3 scanHardware() 函数使我的应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

AS3中这种奇怪的语法是什么。为什么这会使我的浏览器无响应地挂起//崩溃

AS3 - 如何获取下一个数组索引以及如何更改我的函数

如何使我的 Rust 函数更通用和高效?

select 语句中的函数使我的查询运行非常缓慢

Java opencv inRange 阈值函数使我的图像变成三个不同的图像?

如何使我的函数在 ArrayList 上运行得与“包含”一样快?