动态滑动面板

时间:2011-05-23 06:56:43

标签: flash actionscript-3 actionscript flash-cs5

所以,我已经有一段时间了,因为我再次完成了动作脚本3,主要是忙于iOS编程..

无论如何,我想要创建的是一个滑动面板。

到目前为止他们工作但我遇到了一些麻烦,我尝试的一切都没有做我想做的事。

面板工作,我在for循环中生成其中5个,当使用greensock点击时,它们会滑动打开和关闭。

但是,它们都有一个标签,需要随之滑动而不是停留在同一位置。 另外,我有一个if / else来检查面板是否打开,但我想单独检查这个而不是整体。

完整的代码是:

import com.greensock.TweenLite;
import flash.geom.ColorTransform;
import flash.text.engine.TabStop;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFormat;

// Define shizz
var _tabs:mainTab;
var stageW = 950;
var stageH = 550;
var isOpen:Boolean = false;

function init() {
trace("initialize");
var colorArr:Array = [0x00b2c1, 0xdf007a, 0xf39b24, 0xeb690b, 0xa1c438, 0xd5d931];
var titleArr:Array = ["papier", "kunststof", "glas", "hout", "metaal", "batterijen"];

for (var i:Number = 0; i < 6; i++) {
    _tabs = new mainTab();
    _tabs.x = 91+_tabs.width*i;
    _tabs.y = -160;
    _tabs.slide_mc.title_mc.text = titleArr[i];
    _tabs.slide_mc.title_mc.mouseEnabled = false;
    var newColor:ColorTransform = _tabs.slide_mc.box_mc.transform.colorTransform;
    newColor.color = colorArr[i];
    _tabs.slide_mc.box_mc.transform.colorTransform = newColor;
    _tabs.slide_mc.box_mc.addEventListener(MouseEvent.CLICK, doSomething);
    this.addChild(_tabs);
} 
}

function doSomething(e:Event):void {
var clickMC = e.target;

if (isOpen) {
    trace("is Open");
    var dropTab:TweenLite = new TweenLite(clickMC, 0.5, {y: -8});
    dropTab.play();
    isOpen = !isOpen;
} else {
    trace("is Closed, Text is:");
    var dropTab2:TweenLite = new TweenLite(clickMC, 0.5, {y: 177});
    dropTab2.play();
    isOpen = !isOpen;
}

}

init();

这是file

那我需要什么帮助呢? - 如何使滑动面板中的标题与面板本身进行动画制作。 - 检查当前点击面板是否打开的方法(单独检查)。

提前感谢!

1 个答案:

答案 0 :(得分:0)

看起来像_tabs.slide_mc.title_mc.text = titleArr[i];导致文本被滑动拖动。您需要将title_mc插入其他剪辑