Variablen Problem

green_phanta

Erfahrenes Mitglied
Hi Leute, ganz kurze Frage:

PHP:
var bla = _root.schwoaz._alpha;
trace(bla);
_root.ring.onPress = function() {
	if (_root.isFaded == true) {
		_root.schwoaz.sch1(10);
		_root.isFaded = false;
	} else {
		_root.schwoaz.sch(10);
		_root.isFaded = true;
	}
	this.schwoaz._alpha = bla;
	trace(bla);
};

Mein Code.
Er sollte einfach bewirken das "bla" bei einem Press den aktuellen Wert des Objektes animmt. Und das geht jedoch nicht....

Was ist am dem Code falsh?

Vielen Dank

greets green
 
Hi,

innnerhalb der onPress-Funktion wird der Variable "bla" auch nichts zugewiesen - nur einmal (ausserhalb) zu Beginn des Scripts. Statt dessen setzt Du den Alphawert von _root.ring auf den Inhalt der Variable "bla".

Gruß
.
 
Hi


Ok, ^^ich sehs gerade...
Aber auch wenn ich statt:
this.schwoaz._alpha = bla;

das hier schreibe:
bla = this.schwoaz._alpha;

Funktioniert das ganze nicht.



Ich habe in der anderen Szene ebenfalls das hier stehen:
this.schwoaz._alpha = bla;


Aber es funktioniert nicht, warum?
Wie könnte ich den AS gestallten das es funktioniert?

Vielen Dank
greets green
 
Hi,

Dir ist klar, dass this.schwoaz._alpha innerhalb der Funktion "_root.ring.onPress" auf _root.ring._alpha zeigt, und nicht - wie scheinbar gewünscht - auf _root.schwoaz._alpha?

Gruß
.
 
okok stimt auch wieder...


Also ich habe das jetzt ganz anders gemacht. Viel einfacher...

Also:
In Szene1 stehen diese zwei Dinge:
Im ersten Bild wird ganz einfach eine Variable erstellt:
PHP:
var bla = _root.schwoaz._alpha;

Am Button liegt dieser AS:
PHP:
on(press) {
	gotoAndPlay("Szene2", 1)
	bla = _root.schwoaz._alpha;
	}



In Szene 2, auf der großen schwarzen Fläche, steht folgendes:
PHP:
onClipEvent(enterFrame) {
_root.schwaaz._alpha=bla
trace(bla)
}


Aber in Szene 2 sagt(durch das trace) er mir nur "undefined"... warum?


Vielen Dank

greets green
 
Die Variable "bla" wird zunächst einmal auf der Hauptzeitleiste angelegt. Je nachdem, ob es sich bei Deinem ersten Button um eine Schaltfläche oder einen MovieClip handelt, wird der Wert dieser Variable beim Klick geändert (im Fall einer Schaltfläche) oder es wird eine neue Variable des gleichen Namens auf der Zeitleiste des Buttons angelegt (im Fall eines MovieClips).

Bei der Fläche in Szene 2 wird es sich höchstwahrscheinlich um einen MovieClip handeln, daher wird bei diesem Code:
Code:
onClipEvent(enterFrame) {
_root.schwaaz._alpha=bla
trace(bla)
}
zwar das Objekt "schwaaz" auf _root korrekt angesprochen, die Variable "bla" aber nicht gefunden, da Du Dich innerhalb des MovieClips befindest, die Variable aber auf _root. Korrekt wäre :
Code:
onClipEvent(enterFrame) {
    _root.schwaaz = _root.bla;
}
, wobei Du die onEnterFrame-Methode nach dem ersten Aufruf natürlich wieder entfernen solltest.

Gruß
.
 
geht nicht.... :(


So also, ich schreinb jetzt hier mal den gesamten Code auf, vl ist irgendwo ein aderer Fehler.


Szene 1, Bild 1:

PHP:
stop();



this.onEnterFrame = function() 
{
var bla = _root.schwoaz._alpha; //Variable wird hiermit erstellt	
trace(bla)                                  //zur Überprüfung
}


_root.ring.onPress = function() {   //die Funktion fadet mir, wenn ich auf den "fade"-Knopf drücke, die große schwarze Fläche, auf und ab
        if (_root.isFaded == true) {
		_root.schwoaz.sch1(10);
		_root.isFaded = false;
	} else {
		_root.schwoaz.sch(10);
		_root.isFaded = true;
	}
};


MovieClip.prototype.sch = function(tempo) {  //"fade-funktion"
	this.onEnterFrame = function() {
		this._alpha += (100-this._alpha)/tempo;
	};
};
MovieClip.prototype.sch1 = function(tempo) {  //"fade-funktion"
	this.onEnterFrame = function() {
		this._alpha -= (100+this._alpha)/tempo;
	};
};
}

Wenn ich den Film teste zeigt mir das trace auch immer brav "0" an. (Der Alpha-Wert der
schwarzen Fläche ist auf 0 gesetzt)
Wie du siehst habe ich die Variable diesmal ins enterFrame gesetzt das sie ständig aktualisier wird...
Auch trace zeig bei Klick auf den Fade Button an das es sich verändert.

Doch jetzt klicke ich auf den Button um in Szene 2 zu gelangen und dort habe ich das, jetzt im ersten Bild, stehen:
PHP:
stop();
this.onEnterFrame=function() {
	_root.schwaaz._alpha = bla
	}

bzw das hatte ich auch schon stehen

PHP:
stop();
this.onEnterFrame=function() {
	_root.schwaaz._alpha = _root.bla
	}

bzw hatte ich des Code den du oben vorgeschlagen hattest auch schon probiert.(am MC natürlich)


Aber es geht nicht. Und wenn ich trace hinschreibe schreibt er mir wieder: "undefined"


Was ist hier falsch ich verstehs nicht...


greets
 
Hi,

poste bitte mal die Datei (fla) als Anhang. Wenn man das Problem direkt vor Augen hat, lässt sich so ein Fehler viel leichter eingrenzen (ich vermute nach wie vor ein Pfadproblem).

Gruß
.
 
Hi,

in Szene 1 steht:
Code:
this.onEnterFrame = function()

{
	var bla = _root.schwoaz._alpha + 25;
}
Da Du Dich auch innerhalb einer onEnterFrame-Methode in einer Funktion befindest, wird die Variable "bla" hier als lokale Variable dieser onEnterFrame-Funktion erstellt und nciht auf der Zeitleiste _root. Probiers so:
Code:
var bla; // Variable initialisieren

this.onEnterFrame = function()

{
	bla = _root.schwoaz._alpha + 25; // ohne "var" zuweisen
}

In Szene 2 kannst Du dann so auf die Variable zugreifen:
Code:
stop();

this.onEnterFrame=function() {
	_root.schwaaz._alpha = _root.bla
	delete this.onEnterFrame;
}

Bedenke aber, dass Du Du in Szene 1 die Variable "bla" mit jeden Frameaufruf neu setzt, da Du die onEnterFrame-Methode nicht löschst.

Gruß
.
 
Zurück