2011-08-21 78 views
0

我有一个Javascript从资源文件夹加载图像,然后播放图像序列。但是它无限循环播放。我希望序列播放一次,然后停止序列的最后一帧。这是图像序列加载器/转发器脚本。图像序列播放一次停止

private var quarterCircleValues = []; 
var texture : Texture; 
renderer.material.mainTexture = texture; 
var changeInterval = 0.33; 

function Awake() { 
quarterCircleValues = image_Loader.LoadSequence("adowner", 0150); 
} 

function Update() { 
if(quarterCircleValues.length == 0) //nothing if no textures 
return; 

//we want this texture index now 
var index :int = Time.time/changeInterval; 

//take a module so that animation repeats 
index = index % quarterCircleValues.length; 
//assign it 
renderer.material.mainTexture = quarterCircleValues[index]; 
} 

我试图消除“重复模块”,但导致打一次 每个会话的顺序,然后留下一个空白显示。我该如何编程才能播放一次然后停止播放?

回答

0

嗯,我会去

if (index < quarterCircleValues.length) { 
    renderer.material.mainTexture = quarterCircleValues[index]; 
} 

,而不是

//take a module so that animation repeats 
index = index % quarterCircleValues.length; 
//assign it 
renderer.material.mainTexture = quarterCircleValues[index]; 

,甚至试图阻止,必须调用Update功能的时间间隔,如果指数过大(即会更好)。但我不知道你在用什么,所以我无法测试它。

+0

感谢您的考虑。我正在使用Unity 3D。我尝试用您的代码替换原始更新并删除动画模块。它不承认索引! –

+0

嗯,这不是我的意思,改写了它。 – Johan

+0

对不起,它似乎没有工作。我试着用你的方法替换模索操作的索引,结果又变成了空白的纹理。似乎应该对modulo本身进行一些修改,以使其发挥一次。与%符号不同的符号将其乘以1 ...我不知道!这就是我问的原因。 –