BLITZ: Fehler beim setChildIndex und TweenLite zu verwenden versuchen, einen Knopf Rollover-Effekt zu erstellen

StackOverflow https://stackoverflow.com/questions/1406363

Frage


(Quelle: flickr.com )

Hallo wieder alle :) Also heute Ich versuche, einen einfachen Schein-Effekt auf der Schaltfläche Mauszeiger bewegen, um im Grunde zu erstellen. Ich kann über Dinge komplizierter sein, aber die Art, wie ich zu diesem gehe ist durch mit 2 Videoclips (Standardzustand und über Zustand).

Zuerst füge ich den Standard-Zustand auf die Bühne, neben ich den Rollover-Status auf die Bühne hinzufügen, aber in einer Tiefe von 0 und Alpha auf 0 gesetzt als auch. Jetzt will ich den Überschlags-Zustand Tiefen mit dem Standardzustand sowie animiert bis zur vollen alpha mit der TweetLite Klasse tauschen, damit ich einen schönen glatten Übergang zu bekommen.

Ich bekomme jetzt einen Fehler, aber heren meinen Code:

import gs.TweenLite;
import fl.motion.easing.*;
import flash.display.MovieClip;


var shopButton:MovieClip;
var shopButtonRoll:MovieClip;
var maxIndex:Number = this.numChildren - 1;

// Button - places the default state onto the stage
shopButton = new ShopButton();
shopButton.name = "shopButton";
shopButton.x = 262;
shopButton.y = 207;
shopButton.stop();
thumbsMov.addChild(shopButton);

// Button Glow - places rollOver state under the default and with 0 alpha
shopButtonRoll = new ShopButtonRoll();
shopButtonRoll.name = "shopButtonRoll";
shopButtonRoll.x = 262;
shopButtonRoll.y = 207;
shopButtonRoll.alpha = 0;
thumbsMov.addChildAt(shopButtonRoll, 0);

// Listeners

shopButton.addEventListener(MouseEvent.MOUSE_UP, shopClick);
shopButton.addEventListener(MouseEvent.ROLL_OVER, sendToTop);
shopButton.addEventListener(MouseEvent.ROLL_OUT, shopOff);
shopButtonRoll.addEventListener(MouseEvent.ROLL_OVER, shopOver);

// Button Actions 
// shopOver should bring rollOver to top and animate to 100%

function shopOver(event:MouseEvent):void
{
     TweenLite.to(shopButtonRoll, 1, {alpha:1});
}
function shopOff(event:MouseEvent):void
{
     // Code to animate back to 0 then change depth of rollOver to 0
}
function shopClick(event:MouseEvent):void
}
     trace("You clicked Shop");
}

// sendToTop Function
// Sent to top - depth change
function sendToTop(e:Event):void
{
     //this.setChildIndex(ShopButton(e.target), maxIndex);
     this.setChildIndex(e.currentTarget as MovieClip, maxIndex);
}

Der Fehler Ich bin auf rollover bekommen: (

Argument: Error # 2025: Die mitgelieferte Display muss ein Kind des Anrufers sein.     bei flash.display :: Display / setChildIndex ()     bei test_fla :: MainTimeline / sendToTop ()

Ich verstehe nicht, was der Fehler von der mitgelieferten Display bedeutet, muss ein Kind des Anrufers sein?

War es hilfreich?

Lösung

Nach dem, was Ihr zu versuchen, erreicht Sie müssen nicht Tiefen verwalten. Im Wesentlichen können Sie einfach Ihre Rollover-Effekt in der shopButton hinzufügen und dann einmal über den shopButton gerollt, die Glut animieren. Ich udpated Ihren Code mit dem folgenden:

import gs.TweenLite;
import fl.motion.easing.*;
import flash.display.MovieClip;


var shopButton:MovieClip;
var shopButtonRoll:MovieClip;

// Button - places the default state onto the stage
shopButton = new ShopButton();
shopButton.name = "shopButton";
shopButton.x = 262;
shopButton.y = 207;
shopButton.stop();
thumbsMov.addChild(shopButton);

// Button Glow - places rollOver state under the default and with 0 alpha
shopButtonRoll = new ShopButtonRoll();
shopButtonRoll.name = "shopButtonRoll";
shopButtonRoll.alpha = 0;
shopButton.addChild(shopButtonRoll);


// Listeners
shopButton.buttonMode = true;
shopButton.addEventListener(MouseEvent.MOUSE_UP, shopClick);
shopButton.addEventListener(MouseEvent.ROLL_OVER, shopOver);
shopButton.addEventListener(MouseEvent.ROLL_OUT, shopOff);

// Button Actions 
// shopOver should bring rollOver to top and animate to 100%

function shopOver(event:MouseEvent):void
{
     TweenLite.to(shopButtonRoll, 1, {alpha:1});
}
function shopOff(event:MouseEvent):void
{
    TweenLite.to(shopButtonRoll, 1, {alpha:0});
     // Code to animate back to 0 then change depth of rollOver to 0
}
function shopClick(event:MouseEvent):void
}
     trace("You clicked Shop");
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top