_alpha eines MCs abfragen

intercorni

Erfahrenes Mitglied
Hallo,

ich verwende zum Tweening oder Fading eines Textfeldes ein Scripting.
Das Scripting fadet bei mir ein Textfeld ein und aktiviert einen Timer, der wiederum nach Ablauf einer bestimmten Zeit das Textfeld wieder ausblendet.
Funktioniert soweit sehr gut:
PHP:
stop();
//die tween und die easing klasse importieren
import mx.transitions.Tween;
import mx.transitions.easing.*; 
//variable alpha tween
var my_txtAlphaTween:Tween;
//variablen x und y scale
var my_txtXScaleTween:Tween;
var my_txtYScaleTween:Tween;

//------------------------------------- 
//textfeld erzeugen
var my_fmt:TextFormat = new TextFormat();
my_fmt.font = "Polo22K";
my_fmt.size = 80;
my_fmt.color = 0xFFFFFF;
my_fmt.align = "center";
this.createTextField("my_txt", this.getNextHighestDepth(), 40, 300, 700, 160);
my_txt.autoSize = "center";
my_txt.multiline = true;
my_txt.align = "center";
my_txt.wordWrap = true;
my_txt.border = false;
my_txt.embedFonts = true;
my_txt.text = "";
my_txt.setTextFormat(my_fmt);
my_txt._alpha = 100;
//textdefinition01
my_txt._alpha = "0"
my_txt.text = "Inhalt des Textfeldes";
my_txt.align = "center";
my_txt.setTextFormat(my_fmt);
//------------------------------------- 
//tweening definition
function tweening01() { 
    my_txtXScaleTween.stop();
    my_txtYScaleTween.stop();
    my_txtXScaleTween = new Tween(my_txt, "_alpha", Strong.easeOut, my_txt._alpha, my_txt._alpha + 100, 3, true);
    my_txtYScaleTween = new Tween(my_txt, "_x", Strong.easeOut, my_txt._x, my_txt._x + 100, 3, true); 
    my_txtXScaleTween.onMotionFinished = function() {
        trace("my_txtXScaleTween fertig");
    }
    my_txtYScaleTween.onMotionFinished = function() {  
        daPause(30, timerwert01);//timer aufrufen
        trace("my_txtYScaleTween fertig"); 
    } 
}
//timer
var intervals = new Array();

function daPause(wait, arg) {
    wait == undefined ? wait=10 : null;
    var p_count = 0;
    var p_int = setInterval(function () {
        if (p_count>=wait) {
            for (var i in intervals) {
                if (p_int == intervals[i]) {
                    intervals.splice(parseInt(i, 10), 1);
                    break;
                }
            }
            arg();
            clearInterval(p_int);
        }
        p_count++;
    }, 100);
    intervals.push(p_int);
}

function clearAll() {
    for (var i in intervals) {
        var f = parseInt(intervals[i], 10);
        clearInterval(f);
    }
    intervals = new Array();
}
//timer definition
function timerwert01() {
        trace("timer");
    my_txtXScaleTween = new Tween(my_txt, "_alpha", Strong.easeOut, my_txt._alpha, my_txt._alpha - 100, 3, true);//Fadet Textfeld wieder aus
        my_txtYScaleTween = new Tween(my_txt, "_x", Strong.easeOut, my_txt._x, my_txt._x + 100, 3, true);
} 
//tweening aufruf
tweening01()
Nun möchte ich, dass erst nach dem vollständigen ausfaden eine Aktion, z.B. ein gotoAndStop, ausgelöst wird.
Hier müsste also eine Abfrage rein in der Art: wenn _alpha = 0 dann gotoAndStop usw, oder?
PHP:
function timerwert01() {
        trace("timer");
        my_txtXScaleTween = new Tween(my_txt, "_alpha", Strong.easeOut, my_txt._alpha, my_txt._alpha - 100, 3, true);
        my_txtYScaleTween = new Tween(my_txt, "_x", Strong.easeOut, my_txt._x, my_txt._x + 100, 3, true);
        textcontent_mc.nextFrame();
}
Wie genau müsste denn diese Abfrage aussehen?

Danke,

Cornel
 
Hi,

müsste das nicht an dieser Stelle der Fall sein?
Code:
my_txtXScaleTween.onMotionFinished = function() {
    // Hier ist der Tween beendet ...
    trace("my_txtXScaleTween fertig");
}
Ansonsten kannst Du den Alphawert eines Clips natürlich auch direkt in einem Intervall oder einer onEnterFrame-Methode abfragen.

Gruß
.
 
Tobias Menzel hat gesagt.:
Hi,

müsste das nicht an dieser Stelle der Fall sein?
Code:
my_txtXScaleTween.onMotionFinished = function() {
    // Hier ist der Tween beendet ...
    trace("my_txtXScaleTween fertig");
}
Ansonsten kannst Du den Alphawert eines Clips natürlich auch direkt in einem Intervall oder einer onEnterFrame-Methode abfragen.

Gruß
.
Hm, eher nicht, würde dann nicht jedes Tweening, also auch das Einfaden, damit bewertet werden?
Wie läßt sich denn der Alpha-Wert per EnterFrame-Methode abfragen?

Danke,

Cornel
 
Hm, eher nicht, würde dann nicht jedes Tweening, also auch das Einfaden, damit bewertet werden?
Eigentlich nicht, denn Du legst ja für jedes Tween-Objekt (hoffentlich) eine eigene onMotionFinished-Methode an ...

Ansonsten:
Code:
irgendein_mc.onEnterFrame = function() {
    if (ziel_mc._alpha) < 1) {
        // hier sollte er fertig sein
        machwas();
        delete this.onEnterFrame;
    }
}

Gruß
.
 
Zurück