主要就是代码了。

1.using UnityEngine;

using System.Collections;

using pumpkin.swf;

using System.Collections.Generic;

using pumpkin.events;

using pumpkin.display;



public class MovieClipX : MovieClip

{





    public delegate void FrameCallback();

    public Dictionary<int, FrameCallback> FrameEvents = null;



        public MovieClipX(SwfURI uri) : base(uri)

        {

            

        }



        public MovieClipX(string linkage)

            : base(linkage)

        {

            

        }

   

    public bool  addFrameScript(string label, FrameCallback onFrameCallback)

    {

        if (string.IsNullOrEmpty(label))

            return false;





        

         int index = this.getFrameLabel(label);

       //  Debug.Log("index " + getCurrentFrame());

         if (index <= 0)

             return false;





         if (FrameEvents == null)

         {

             FrameEvents = new Dictionary<int, FrameCallback>();

         }





         if (!FrameEvents.ContainsKey(index))

         {

             FrameEvents.Add(index, onFrameCallback);

         }

         else

         {

             FrameEvents.Remove(index);

             if (onFrameCallback != null)

             {

                 FrameEvents.Add(index, onFrameCallback);

             }  

         }



         return true;

       

    }



    public bool addFrameScript(int frame, FrameCallback onFrameCallback)

    {

       

       

       

        if (FrameEvents == null)

        {

            FrameEvents = new Dictionary<int, FrameCallback>();

        }



        if (!FrameEvents.ContainsKey(frame))

        {

            FrameEvents.Add(frame, onFrameCallback);

        }

        else

        {

            FrameEvents.Remove(frame);

            if (onFrameCallback != null)

            {

                FrameEvents.Add(frame, onFrameCallback);

            }

        }





        return true;





    }





    public bool  setEndScript(FrameCallback onFrameCallback)

    {

        int index = this.getTotalFrames();

        if (index <= 0)

         return false;

        

        return addFrameScript(index,   onFrameCallback);





    }



    public override void updateFrame(CEvent e)

    {

       

        if (FrameEvents != null)

        {

            int index = this.getCurrentFrame();

            if (FrameEvents.ContainsKey(index))

            {

                FrameCallback b = FrameEvents[index];

                if (b != null)

                {

                    b();

                }

            }

        }

      

        base.updateFrame(e);

    }

}

2.using UnityEngine;

using System.Collections;

using System.Collections.Generic;

using pumpkin.display;

using pumpkin.text;

using pumpkin.events;

using pumpkin.logging;

using pumpkin.tweener;





public class FlashUI : MovieClipOverlayCameraBehaviour {

public GameObject back;

protected MovieClipX movie = null;

public delegate void  OnStop();

void Start () {


stage.stageWidth = (float)Screen.width/1136f;

stage.stageHeight = (float)Screen.height/640f;

}

public void OnPlayToEnd(string path,Vector2 pos,OnStop stop = null)

{

MovieClipX overlay = new MovieClipX(path);

stage.addChild(overlay);

//位置

overlay.x = pos.x*stage.stageWidth;

overlay.y = pos.y*stage.stageHeight;

overlay.scaleX = stage.stageWidth;

overlay.scaleY = stage.stageHeight;

overlay.addFrameScript("end",delegate(){

stage.removeChild(overlay);

if(stop != null)stop();

});

overlay.gotoAndPlay(0);

}

public void OnPlayToFrame(string path,Vector2 pos,int endFrame,OnStop stop = null)

{

MovieClipX overlay = new MovieClipX(path);


stage.addChild(overlay);

//位置

overlay.x = pos.x*stage.stageWidth;

overlay.y = pos.y*stage.stageHeight;

overlay.scaleX = stage.stageWidth;

overlay.scaleY = stage.stageHeight;

overlay.addFrameScript(endFrame,delegate(){

stage.removeChild(overlay);

if(stop != null)stop();

});

overlay.gotoAndPlay(0);

}

public MovieClipX OnPlayNoEnd(string path,Vector2 pos)

{

MovieClipX overlay = new MovieClipX(path);


stage.addChild(overlay);

//位置

overlay.x = pos.x*stage.stageWidth;

overlay.y = pos.y*stage.stageHeight;

overlay.scaleX = stage.stageWidth;

overlay.scaleY = stage.stageHeight;

overlay.gotoAndPlay(0);

return overlay;

}

public void ClearFlash()

{

stage.clearChild();


}

关于unity3d播放flash动画,使用插件uniswf的更多相关文章

  1. (转)在Unity3D中控制动画播放

    用Unity3D也算是好久了,但是每次做项目总还是能学到新的东西.这次做一个TPS的项目就遇到了这样一个问题,如何同时在上下半身播放不同的动画?解决方法其实是很简单,但由于对于动画资源的了解不足导致问 ...

  2. unity3d的Animation 动画播放器的基本API

    直接上代码: //动画名称 private const string ANIM_NAME = "Take 001"; //模型对象 private GameObject obj = ...

  3. Flash动画

    Flash (交互式矢量图和Web动画标准) Flash是由macromedia公司推出的交互式矢量图和 Web 动画的标准,由Adobe公 司收购.做Flash动画的人被称之为闪客.网页设计者使用 ...

  4. HTML5骨骼动画Demo | 使用min2d、createjs、pixi播放spine动画

    Spine做骨骼动画是比较流行的,使用起来可能相对复杂,但功能毕竟强大,所以市场占有率较大. 在unity.cocos2d.starling中使用spine已经很成熟了,而HTML5这一块可能刚刚起步 ...

  5. 转: object 和embed 标签播放flash

    一.介绍: 我们要在网页中正常显示flash内容,那么页面中必须要有指定flash路径的标 签.也就是OBJECT和 EMBED标签.OBJECT标签是用于windows平台的IE浏览器的,而EMBE ...

  6. 网页中插入Flash动画(.swf)代码和常用参数设置

    我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标 ...

  7. Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系

    2条评论 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator ...

  8. Unity3D之Legacy动画系统学习笔记

    Unity3D的Mecanim动画系统是非常强大的,而且作为Unity推荐的动画系统,其未来会完全代替老的一套动画系统,即Legacy动画系统.目前的情况是Mecanim与Legacy两套动画系统同时 ...

  9. Unity3D之Mecanim动画系统学习笔记(十一):高级功能应用

    动作游戏 还记得读书的时候熬夜打<波斯王子>的时光,我们的王子通过跳跃穿过墙壁的小洞.在高层建筑上进行攀爬和跳跃,还有在操作失误掉下高楼和触发必死机关后使用时之沙的时光倒流功能回归死亡之前 ...

随机推荐

  1. UVa 120 (构造) Stacks of Flapjacks

    这题求解的过程和选择排序非常相似. 反转的过程中分为无序(在前面)和有序(在后面)两个部分,一开始视为全部为无序. 在无序部分中找到最大的元素,先把它翻到最前面,然后再反转到无序部分的最后面.这样该元 ...

  2. [ZOJ 2836] Number Puzzle

    Number Puzzle Time Limit: 2 Seconds      Memory Limit: 65536 KB Given a list of integers (A1, A2, .. ...

  3. 基于VPN搭建混合云架构需要考虑的网络因素

     Joy Qiao from MSFT Wed, Jan 21 2015 8:44 AM 很多用户在搭建混合云架构时,会使用到微软Azure虚拟网络中的 VPN功能,来实现Azure中的虚拟网络与用户 ...

  4. TortoiseGit连接github不用每次输入用户名和密码的方法

    每次git clone 和push 都要输入用户名和密码.虽然安全,但在本机上每次都输有些麻烦,如何记住用户名和密码呢? 当你配置好git后,在C:\Documents and Settings\Ad ...

  5. 常用ping服务列表

    以下是收集的ping服务器. ping是基于XML_RPC标准协议的更新通告服务,是用于blog在内容更新时通知博客搜索引擎及时进行抓取.更新的方式.博客搜索引擎在成功接受到ping以后,会立刻进行抓 ...

  6. [OFBiz]简介 二

    1. 执行ant run-install后,生成了55个ofbiz的jar.加上最初的E:\apache-ofbiz-10.04\framework\entity\lib\ofbiz-minerva. ...

  7. C语言断言

    1.概述 断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告),它可以快速发现并定位软件问题,同时对系统错误进行自动报警.断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位 ...

  8. openCV 直方图统计

    直方图显示 #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main(int argc ...

  9. 【暑假】[深入动态规划]UVAlive 4794 Sharing Chocolate

    UVAlive 4794 Sharing Chocolate 题目: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=12055 ...

  10. HDU2015校赛 The Country List

    今天手感真差..各种读错题意.水题... 就是说,给你几个串.如果长度一样并且相同位置字符相同(不分大小写)的个数大于两个就是不同串. #include<iostream> #includ ...