1

現在、AS3 と Greensock の TimelineMax を使用して、Flash CS5 でカスタマイズ アプリを作成しています。

ナビゲーションは、TimeLineMax を使用してタイムラインのラベルにジャンプし、適切な MC でアルファを使用するSnorkl.TV Bulletproof ポートフォリオに基づいています。すべての MC [Garment_mc,Size_mc,Design_mc,Ink_mc,Options_mc,Checkout_mc] はすべてステージ上の同じスペースの別々のレイヤーにあり、ボタンをクリックすると x:-100 からトゥイーンします。

これは、SWF が最上位レイヤーに公開され、その MC が他の MC をカバーし、下位の MC に移動すると、それらが alpha:0 MC の下に表示されるため、最上位 MC のボタン/機能は引き続きクリック可能であることを意味します。前の選択に影響を与えます (衣服を選択し、次のセクションを選択し、その MC で何かをクリックすると、最上位の MC に登録されます)。

NavClick 関数に次のようなものを含める必要があります... setChildIndex(targetSection + "_mc", 0) しかし、1067: Implicit coercion エラーが発生しています。

誰でも理由について提案できますか? それともここからどうすればいいですか?最終提出日に向かって急いでいるので、どんな助けも素晴らしいです、ありがとう!!

ナイゲーションコード。

// all the section clips are fully visible on the stage
//we don't want to see them when the swf starts
//set up an array of section clips so that we can start them all with alpha=0;
var Panel_clips = [Garment_mc,Size_mc,Design_mc,Ink_mc,Options_mc,Checkout_mc];

for (var j:Number = 0; j < Panel_clips.length; j++)
{
    Panel_clips[j].alpha = 0;
}

////

var tl:TimelineMax = new TimelineMax({});
tl.timeScale = 1;


tl.addLabel("Garment_in", tl.duration);
tl.append(TweenMax.to(Garment_mc, 0, {alpha:1, immediateRender:false}));
tl.append(TweenMax.from(Garment_mc, .5, {x:-100, y:0, ease:Quart.easeOut}));

tl.addLabel("Garment_complete", tl.duration);
tl.append(TweenMax.to(Garment_mc, .5, {alpha:0}));



tl.addLabel("Size_in", tl.duration);
tl.append(TweenMax.to(Size_mc, 0, {alpha:1, immediateRender:false}));
tl.append(TweenMax.from(Size_mc, .5, {x:-100, y:0, ease:Quart.easeOut}));

tl.addLabel("Size_complete", tl.duration);
tl.append(TweenMax.to(Size_mc, .5, {alpha:0}));



tl.addLabel("Design_in", tl.duration);
tl.append(TweenMax.to(Design_mc, 0, {alpha:1, immediateRender:false}));
tl.append(TweenMax.from(Design_mc, .5, {x:-100, y:0, ease:Quart.easeOut}));

tl.addLabel("Design_complete", tl.duration);
tl.append(TweenMax.to(Design_mc, .5, {alpha:0}));



tl.addLabel("Ink_in", tl.duration);
tl.append(TweenMax.to(Ink_mc, 0, {alpha:1, immediateRender:false}));
tl.append(TweenMax.from(Ink_mc, .5, {x:-100, y:0, ease:Quart.easeOut}));

tl.addLabel("Ink_complete", tl.duration);
tl.append(TweenMax.to(Ink_mc, .5, {alpha:0}));


tl.addLabel("Options_in", tl.duration);
tl.append(TweenMax.to(Options_mc, 0, {alpha:1, immediateRender:false}));
tl.append(TweenMax.from(Options_mc, .5, {x:-100, y:0, ease:Quart.easeOut}));

tl.addLabel("Options_complete", tl.duration);
tl.append(TweenMax.to(Options_mc, .5, {alpha:0}));


tl.addLabel("Checkout_in", tl.duration);
tl.append(TweenMax.to(Checkout_mc, 0, {alpha:1, immediateRender:false}));
tl.append(TweenMax.from(Checkout_mc, .5, {x:-100, y:0, ease:Quart.easeOut}));

tl.addLabel("Checkout_complete", tl.duration);
tl.append(TweenMax.to(Checkout_mc, .5, {alpha:0}));


//SET UP THE NAV

NavMc.addEventListener(MouseEvent.MOUSE_OVER, navOver);
NavMc.addEventListener(MouseEvent.MOUSE_OUT, navOut);
NavMc.addEventListener(MouseEvent.CLICK, navClick);
NavMc.buttonMode = true;

NavMc.GarmentBtn.ID = "Garment";
NavMc.SizeBtn.ID = "Size";
NavMc.DesignBtn.ID = "Design";
NavMc.InkBtn.ID = "Ink";
NavMc.OptionBtn.ID = "Options";
NavMc.CheckBtn.ID = "Checkout";

function navOver(e:MouseEvent):void
{
    //TweenMax.to(e.target, .5, {tint:0x00CCFF});
    e.target.nextFrame();
    //e.target.GotoAndStop(e.target.NextFrame);
    //trace("Rolled");
}

function navOut(e:MouseEvent):void
{
    //TweenMax.to(e.target, .5, {tint:null});
    //trace(e.target.ID);
    e.target.gotoAndPlay(1);
}



function navClick(e:MouseEvent):void
{
    trace(e.target.ID);
    targetSection = e.target.ID;
    if (targetSection != currentSection)
    {
        e.target.gotoAndPlay(2);
        --> ?? //setChildIndex(targetSection + "_mc", 0)    <--------??????
        tl.tweenFromTo(targetSection + "_in", targetSection + "_complete");
        currentSection = targetSection;


    }else{
        trace("you are already at " + currentSection);
        }

}


//play through to home1_complete automatically on first run
tl.tweenTo("Garment_complete");


//
4

1 に答える 1

0

navClick関数で次の行を変更します。

targetSection = e.target.ID;

このような:

targetSection = e.target;

最初の引数としてのsetChildIndex関数は、彼の名前/IDではなく、子ムービー自体を必要とするためです。

編集済み: あなたの場合、これも試してみるべきかもしれません:
setChildIndex( getChildByName(e.target.ID + "_mc"),0);

于 2013-05-03T12:32:33.770 に答える