AS3与数组发生问题,数组中超过9的任何内容都不会响应tweenlite动画

时间:2014-08-20 19:25:07

标签: arrays string actionscript-3 actionscript

所以我遇到了我的代码问题,我在number9之后点击的任何缩略图都会播放相应的视频但是,动画返回其x值并且alpha变暗缩略图停止工作。

我相信它与我的5个字符的charSet有关。但我不确定如何让它跟随更多角色。所以我基本上卡住了。我需要支持阵列中的15个视频,但我无法通过视频10,因为tweenlite不会对图像进行补间或调暗。

var currentNum:Number = 1;
var videoNum:Array = new Array();
videoNum[1] = "vid1.flv"
videoNum[2] = "vid2.flv"
videoNum[3] = "vid3.flv"
videoNum[4] = "vid4.flv"
videoNum[5] = "vid5.flv"
videoNum[6] = "vid6.flv"
videoNum[7] = "vid7.flv"
videoNum[8] = "vid8.flv"
videoNum[9] = "vid9.flv"
videoNum[10] = "vid10.flv"
videoNum[11] = "vid11.flv"
videoNum[12] = "vid12.flv"
videoNum[13] = "vid13.flv"
videoNum[14] = "vid14.flv"
videoNum[15] = "vid15.flv"



var player:videoPlayer = new videoPlayer();
player.videoURL = videoNum[currentNum];

addChild(player);

for (var i = 1; i<16; i++){
   content_mc["thumb"+i].addEventListener(MouseEvent.CLICK, thumbClick);
   content_mc["thumb"+i].buttonMode = true;
   content_mc["thumb"+i].playBtn.mouseEnabled = false;
   content_mc["thumb"+i].alpha = .5;
}
content_mc.thumb1.alpha = 1;
content_mc.thumb1.x = -111.75;
content_mc.thumb1.playBtn.alpha = 0;

function thumbClick(event:MouseEvent):void{
var currentVideo = "thumb" + currentNum
TweenLite.to(content_mc[currentVideo], 1, {x:-100, alpha:.5,  ease:Expo.easeOut})
TweenLite.to(content_mc[currentVideo].playBtn, 1, {alpha:.5,  ease:Expo.easeOut})

player.ns.seek(0);
player.ns.togglePause();
var clicked = event.target;

TweenLite.to(clicked, 1, {x:-111.75, alpha:1,  ease:Expo.easeOut})
TweenLite.to(clicked.playBtn, 1, {alpha:0,  ease:Expo.easeOut})

var clickedName = event.target.name;

currentNum = clickedName.charAt(5);

switch (clickedName){

    case "thumb1":
    TweenLite.to(content_mc.currentIcon, 1, {y:-689.9,  ease:Expo.easeOut})
    break;
    case "thumb2":
    TweenLite.to(content_mc.currentIcon, 1, {y:-589.9,  ease:Expo.easeOut})
    break;
    case "thumb3":
    TweenLite.to(content_mc.currentIcon, 1, {y:-499.3,  ease:Expo.easeOut})
    break;
    case "thumb4":
    TweenLite.to(content_mc.currentIcon, 1, {y:-405.8,  ease:Expo.easeOut})
    break;
    case "thumb5":
    TweenLite.to(content_mc.currentIcon, 1, {y:-311,  ease:Expo.easeOut})
    break;
    case "thumb6":
    TweenLite.to(content_mc.currentIcon, 1, {y:-220.4,  ease:Expo.easeOut})
    break;
    case "thumb7":
    TweenLite.to(content_mc.currentIcon, 1, {y:-125.6,  ease:Expo.easeOut})
    break;
    case "thumb8":
    TweenLite.to(content_mc.currentIcon, 1, {y:-30.8,  ease:Expo.easeOut})
    break;
    case "thumb9":
    TweenLite.to(content_mc.currentIcon, 1, {y:59.8,  ease:Expo.easeOut})
    break;
    case "thumb10":
    TweenLite.to(content_mc.currentIcon, 1, {y:151,  ease:Expo.easeOut})
    break;
    case "thumb11":
    TweenLite.to(content_mc.currentIcon, 1, {y:248.15,  ease:Expo.easeOut})
    break;
    case "thumb12":
    TweenLite.to(content_mc.currentIcon, 1, {y:338.75,  ease:Expo.easeOut})
    break;
    case "thumb13":
    TweenLite.to(content_mc.currentIcon, 1, {y:437.75,  ease:Expo.easeOut})
    break;
    case "thumb14":
    TweenLite.to(content_mc.currentIcon, 1, {y:532.55,  ease:Expo.easeOut})
    break;
    case "thumb15":
    TweenLite.to(content_mc.currentIcon, 1, {y:623.15,  ease:Expo.easeOut})

}

player.videoURL = videoNum[currentNum];
player.started = false;
player.TOGGLEPAUSE();
player.Reset();
}

2 个答案:

答案 0 :(得分:1)

这是你的问题:
currentNum = clickedName.charAt(5);

您只需抓取一个字符即可获取所点击项目的索引。因此,如果您点击第10项,currentNum将设置为1,而不是10。

快速解决方法是使用substr而不是charAt。它会让你抓住从给定索引开始直到字符串末尾的所有字符:
currentNum = clickedName.substr(5);

...虽然
您可能最好将所有这些项存储在数组中并通过索引引用它们(而不是每次想要引用它们时都尝试构造和解构项目名称。)

答案 1 :(得分:0)

您应该使用susbtring方法,该方法返回由startIndex指定的字符和最多endIndex的所有字符组成的字符串。如果省略参数endIndex,则使用String.length。

currentNum = clickedName.substring(5);

您还可以使用substr方法,该方法返回一个子字符串,该子字符串包含以指定startIndex开头且长度由len指定的字符。如果未指定len,则子字符串包括从startIndex到字符串结尾的所有字符。

currentNum = clickedName.substr(5);

如果您想了解有关String properties and methods的更多信息。