关于unity3d播放flash动画,使用插件uniswf

主要就是代码了。

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

时间: 2024-10-17 03:37:20

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

Unity3D中播放序列帧动画

[狗刨学习网] class FrameAnimation { private float fps = 10.0f; private Rect drawPos; private float time = 0; private int currentIndex = 0; public void DrawFrameAnimation(Texture[] frameTex) { int length = frameTex.Length; GUI.DrawTexture(drawPos, frameTex

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

直接上代码: //动画名称 private const string ANIM_NAME = "Take 001"; //模型对象 private GameObject obj = null; //动画长度 private float animLegth=0f; //动画组件 private Animation m_Animation=null; 栗子代码: //得到模型动画 //obj = GameObject.Find("man"); //得到动画的播放长度:旧

转: object 和embed 标签播放flash

一.介绍: 我们要在网页中正常显示flash内容,那么页面中必须要有指定flash路径的标 签.也就是OBJECT和 EMBED标签.OBJECT标签是用于windows平台的IE浏览器的,而EMBED是用于windows和 Macintosh平台下的Netscape Navigator浏览器以及Macintosh平台下的IE浏览器.windows平台的IE 利用Activex控件来播放flash而其它的浏览器则 使用Netscape插件技术来播放flash. 下面是简单的网页中插入flash的

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

我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标签,是在刚学习html的时候,那时书中插入flash只有最简单的<embed src="" width="" height=""></embed>一句,而且在很长一段时间里,只要网页中插入flash我也都是这样写的,当时认为,

Raspbian PIXEL不能播放flash视频的解决办法

Raspbian PIXEL虽然已经自带chromium浏览器,而且也安装了Pepper Flash Player插件,但默认还是不能播放flash视频的,需要执行下面两个命令之后才能真正解决这个问题. sudo apt-get update sudo apt-get dist-upgrade PS:执行上面的命令之前,最好把软件源改一下,要不然估计要很长时间才能执行完.

C#操作Flash动画

对于在C#开发的过程中没有接触过Flash相关开发的人员来说,没有系统的资料进行学习,那么这篇文档针对于初学者来说是很好的学习DEMO. 本文章中的DEMO实现了C#的COM控件库中本来就带有对flash进行播放的控件,只是需要对flash的相关操作进行了解即可,先看看实现的效果. 阅读目录 实现效果 配置Flash的运行环境 实现逻辑 C#操作Flash的关键参数解析 Demo源码包(VS2013进行实现) 总结 回到顶部 实现效果 回到顶部 配置Flash的运行环境 1.在VS中创建好一个w

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

2条评论 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator 控制动画播放的同时,设置 Animator 的 applyRootMotion 字段为 True 就 OK 了. 那么怎么来利用这个特性达成我们想要的一些效果呢?这个 applyRootMotion 到底指的是啥呢? ApplyRootMotion,从字面上理解来看,是『应用根节点的运动』,听起来

Unity3D之Legacy动画系统学习笔记

Unity3D的Mecanim动画系统是非常强大的,而且作为Unity推荐的动画系统,其未来会完全代替老的一套动画系统,即Legacy动画系统.目前的情况是Mecanim与Legacy两套动画系统同时共存,但是并不是说Legacy动画系统就没有任何价值了,作为Unity4.0以前使用的动画系统,我认为还是很有必要去了解和学习的,所以就有了这篇笔记. Legacy动画系统 http://docs.unity3d.com/Manual/Animations.html 我们可以使用Unity自带的资源

Unity3d 播放高质量视频解决方案

Unity3d 播放高质量视频解决方案~ 最近在折腾一个视频游戏.真的是一个视频游戏,游戏主背景是个大视频.可能切换三四个视频,而且需要无缝切换. 平台是安卓,蕊片是rockclip.找了各式各样的插件. movietexture,只能播放OGG和OVG,而且质量比较低.如果要转成高质量的视频,文件尺寸比较大. 放弃,继续找. easymovietexture, 某些机子上黑滴-兼容性不好,继续找. avipro 额,是这个名字么,最后发现只能在IOS上使用.继续找. Vuforia video