Flash 操作脚本ExternalInterface.call()问题

Flash 操作脚本ExternalInterface.call()问题,flash,actionscript,Flash,Actionscript,我使用以下代码调用javascript函数,该函数将返回所需的值 package { import flash.display.Sprite; import flash.media.Camera; import flash.media.Video; import flash.display.BitmapData; import flash.display.Bitmap; import flash.events.MouseEvent; im

我使用以下代码调用javascript函数,该函数将返回所需的值

package 
{
    import flash.display.Sprite;
    import flash.media.Camera;
    import flash.media.Video;
    import flash.display.BitmapData;
    import flash.display.Bitmap;
    import flash.events.MouseEvent;
    import flash.net.FileReference;
    import flash.utils.ByteArray;
    import com.adobe.images.JPGEncoder;
    import flash.external.ExternalInterface;

    public class Main extends Sprite
    {
        private var camera:Camera = Camera.getCamera();
        private var video:Video = new Video();
        private var bmd:BitmapData = new BitmapData(320,240);
        private var bmp:Bitmap;
        private var fileReference:FileReference = new FileReference();
        private var byteArray:ByteArray;
        private var jpg:JPGEncoder = new JPGEncoder();
        var id:int;





        public function Main():void
        {

            saveButton.visible = false;
            discardButton.visible = false;

            saveButton.addEventListener(MouseEvent.MOUSE_UP, saveImage);
            discardButton.addEventListener(MouseEvent.MOUSE_UP, discard);
            capture.addEventListener(MouseEvent.MOUSE_UP, captureImage);

            if (camera != null)
            {
                video.smoothing = true;
                video.attachCamera(camera);
                video.x = 140;
                video.y = 40;
                addChild(video);
            }
            else
            {
                trace("No Camera Detected");
            }
        }

        private function captureImage(e:MouseEvent):void
        {
            bmd.draw(video);
            bmp = new Bitmap(bmd);
            bmp.x = 140;
            bmp.y = 40;
            addChild(bmp);

            capture.visible = false;
            saveButton.visible = true;
            discardButton.visible = true;
        }

        private function saveImage(e:MouseEvent):void
        {
            byteArray = jpg.encode(bmd);
            id=ExternalInterface.call("getID()");

            fileReference.save(byteArray, id+".jpg");

            removeChild(bmp);
            saveButton.visible = false;
            discardButton.visible = false;
            capture.visible = true;
        }

        private function discard(e:MouseEvent):void
        {
            removeChild(bmp);
            saveButton.visible = false;
            discardButton.visible = false;
            capture.visible = true;
        }
    }
}
但是调用函数时,它似乎总是返回一个0,,,,,试图理解这个问题,但我想我无法理解。我试图提醒javascript函数返回的值,这是正确的

function getID() {

    var idno = $('#ctl00_ContentPlaceHolder1_memberidcam').val();
    alert(idno);
    return idno;

}
请有人帮帮我。
谢谢

检查嵌入代码中的
AllowScriptAccess
参数。它影响是否允许swf通过
ExternalInterface
与JS交互:

此外,最佳做法是检查
ExternalInterface
是否可用:


检查嵌入代码中的
AllowScriptAccess
参数。它影响是否允许swf通过
ExternalInterface
与JS交互:

此外,最佳做法是检查
ExternalInterface
是否可用:


这可能与您从JavaScript返回的类型有关。val()方法可能只是返回一个字符串

因此,请尝试更改JavaScript以将值转换为整数:

function getID() {
    var idno = $('#ctl00_ContentPlaceHolder1_memberidcam').val();
    return parseInt(idno);
}

这可能与您从JavaScript返回的类型有关。val()方法可能只是返回一个字符串

因此,请尝试更改JavaScript以将值转换为整数:

function getID() {
    var idno = $('#ctl00_ContentPlaceHolder1_memberidcam').val();
    return parseInt(idno);
}

你可能还想看看这个问题你可能也想看看这个问题,我试过了,但还是弄不明白,在这件事上有很大的困难…谢谢你的关心,经过几个小时的努力,我终于找到了答案,问题是我用这种方式调用javascript方法id=ExternalInterface.call(“getID()”;我不知道为什么,但这就是问题所在,我将它改为following,它对我有效id=ExternalInterface.call(“getID”);,,,我试过了,但我还是没弄明白,,,在这方面我遇到了很大的困难…谢谢你的关注经过几个小时的努力,我终于让它工作了,,,这里的问题是我用id=ExternalInterface.call(“getID()”)的方式调用javascript方法;我不知道为什么,但这就是问题所在,我将它改为following,它对我有效id=ExternalInterface.call(“getID”);