0

嗨,这可能看起来很愚蠢,但我是一名试图制作增强现实应用程序的学生,我发现了这个用于 AR 东西的工具包,我已经将它带入了 flash builder,但我之前从未真正使用过任何外部工具包,而且我'我不太确定我在做什么。

目前它一直说它正在尝试访问未定义的属性@ar_cam、ar_vid、ar_marker 和 ar_params。

我不确定我是否做错了什么,或者它是否与我使用外部工具包的方式有关。

任何人都可以给我的任何建议将不胜感激。

到目前为止,这是我的代码:

package
{
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.media.Camera;
    import flash.media.Video;
    import flash.utils.ByteArray;

    import org.libspark.flartoolkit.core.FLARCode;
    import org.libspark.flartoolkit.core.param.FLARParam;

    [SWF(width="320", height="480", frameRate="30", backgroundColor="#FFFFFF")]

    public class Main extends Sprite
    {
        [Embed(source="marker.pat", mimeType="application/octet-stream")]
        private var marker:Class;

        [Embed(source="camera_para.dat", mimeType="application/octet-stream")]
        private var cam_params:Class;

        public function Main()
        {
            createFLAR();
            createCam();
        }
        public function createFLAR()
        {
            ar_params = new FLARParam();
            ar_marker = new FLARCode(16, 16);
            ar_params.loadARParam(new cam_params() as ByteArray);
            ar_marker.loadARPatt(new marker());
        }
        public function createCam()
        {
            ar_vid = new Video(320, 480);
            ar_cam = Camera.getCamera();
            ar_cam.setMode(320, 480, 30);
            ar_vid.attachCamera(ar_cam);
            addChild(ar_vid);
        }
    }
}
4

1 回答 1

3

您没有为这些函数中的任何一个中的对象创建变量,因此请替换

ar_params = new FLARParam();
ar_marker = new FLARCode(16, 16);

var ar_params:FLARParam = new FLARParam();
var ar_marker:FLARCode = new FLARCode(16, 16);

ar_vid = new Video(320, 480);
ar_cam = Camera.getCamera();

var ar_vid:Video = new Video(320, 480);
var ar_cam:Camera = Camera.getCamera(); //I don't know if Camera is right after the : so you could use * if that doesn't work

在 actionscript 3 中,语法如下:

var [nameOfObject]:[typeOfObject] = new [ObjectClass](params);

祝你好运

于 2013-03-20T18:00:42.783 回答