Adobe Flash 图像数据

Adobe Flash image data

我从未在 AS3 中工作过。我想将 Flash 电影的屏幕截图发送到 php 文件。我从互联网的某个地方复制了这个函数:

function sendSprite(sprite: Sprite, scriptLocation: String): void {
        var bmpData: BitmapData = new BitmapData(sprite.width, sprite.height, true, 0xFFFFFF);
        bmpData.draw(sprite);

        var encodedFile: Base64Encoder = new Base64Encoder();
        encodedFile.encodeBytes(PNGEncoder.encode(bmpData));

        var data: URLVariables = new URLVariables();
        data.fileData = encodedFile;

        var request: URLRequest = new URLRequest(scriptLocation);
        request.method = URLRequestMethod.POST;
        request.data = data;

        var loader: URLLoader = new URLLoader();
        loader.addEventListener(Event.COMPLETE, spriteSend);
        loader.addEventListener(Event.OPEN, traceEvent);
        loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, traceEvent);
        loader.addEventListener(IOErrorEvent.IO_ERROR, traceEvent);
        loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, traceEvent);
        loader.addEventListener(ProgressEvent.PROGRESS, traceEvent);

        try {
            loader.load(request);
        } catch (e: * ) {
            trace("an error occured of type", e);
        }

        function traceEvent(e: * ): void {
            trace(e);
        }

        function spriteSend(e: Event): void {
            trace(e, "\n sprite succesfully send \n");
        }

}

但是我不确定如何创建精灵对象来调用上述函数。请帮忙。

您可以使用 Sprite class:

创建一个 Sprite 对象
//---Create a Sprite
var mySprite:Sprite = new Sprite();

//---Add Sprite to Display List
addChild(mySprite);

在这个Sprite里面你可以放任何DisplayObject,例如:

//---Create the Video Object
var myVideo:Video = new Video();
mySprite.addChild(myVideo);

//---Create the NetConnection
var nc:NetConnection = new NetConnection();
nc.connect(null);

//---Create NetStream
var ns:NetStream = new NetStream(nc);

myVideo.attachNetStream(ns);

//---Play the video
ns.play("example.com/video.mp4");

接下来,您可以将 Sprite 对象发送到您的函数并执行您的操作。