0

我正在尝试跟踪用户对我的 Flash 项目的操作并将其存储为 swf 文件或视频任何帮助请我编写此代码来捕获位图并在单击影片剪辑时显示它们

stage.addEventListener(Event.ENTER_FRAME,capture)
    var ar=new Array()
    function capture(e:Event)
    {
        trace("done")
    var bd:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight);
    bd.draw(stage);
    var screenshot:Bitmap = new Bitmap(bd);
    ar.push(screenshot)
    }
    vv.addEventListener(MouseEvent.CLICK,gg)
    var xx=0
    var intr
    var interval
    function gg(e:MouseEvent)
    {    
    interval = setInterval(reg_st, 24);


    }
    function reg_st()
    {
        stage.removeEventListener(Event.ENTER_FRAME,capture)

        stage.addChild(ar[xx])
        if(xx<ar.length-1)
        {
        xx++
        }
        else
        {
            xx=0
        }
    }

谢谢

4

1 回答 1

1

跟踪很简单,将侦听器添加到 stange 以跟踪键盘输入和鼠标输入,您将对以下内容感兴趣:

stage.addEventListener(KeyboardEvent.KEY_DOWN, onUserKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onUserKeyUP);
stage.addEventListener(MouseEvent.MOUSE_MOVE, onUserMouseMove);
stage.addEventListener(KeyboardEvent.MOUSE_DOWN, onUserMouseUp);
stage.addEventListener(KeyboardEvent.MOUSE_UP, onUserMouseDown);

当输入发生时,处理程序将简单地将事件放入带有时间戳的数组中。

更难的部分是播放。或者实际上 - 互动。您基本上需要模拟整个程序。它可能非常困难,也可能非常简单,具体取决于您的应用程序的结构和逻辑。我无法为您提供此类问题的代码,但我可以分享一个可能帮助您制定自己的解决方案的分步逻辑:

  1. 将侦听器添加到所有预期的用户交互而不是程序的根级别
  2. 制作一些收集器,它们将存储所有带有时间戳的事件,也可能是对象的指针。
  3. 获取数据(在用户退出程序或从上一个会话进入程序时发送此数据)
  4. 使用时间戳信息提供的时间偏移量从用户交互数组中调用方法(处理程序)。注意:您需要停止封装并将所有这些方法公开。
  5. 享受您的“视频”。
于 2013-08-14T07:32:35.227 回答