Orphelina
Erfahrenes Mitglied
Hallöchen,
also ich lade Bilder dynamisch aus XML- Files in einem ActionScript in meinen Film. Ich richte die Grösse der Bilder nach einer festen Breite, die Höhe wird automatisch ermittelt und eine Bildunterschrift und weitere Bilder werden dynamisch platziert. Soweit so gut. Nun möchte ich aber einen RollOver-Effekt haben, komme aber mit der Logik nicht ganz hin, da er mir die neue Y-Position nicht in meine RollOver-Funktion mitnimmt.
Kann mir da einer helfen? Ich hab schon überlegt den RollOver und RollOut auszulagern, aber da fehlt mir noch die zündende Idee...
Hier mal der Code:
Hier wird das Bild geladen:
Aber in de Funktion RollOver kennt er meine Variable nextElement_pos_y nicht mehr... Wieso denn nicht? Wie bekomm ich die Variable übergeben?
Natürlich werden danach noch weitere Bilder platzier und die Variable weiter hochgerechnet, also die wird weiter benutzt und ich will immer den jeweiligen aktuellen Wert auch für meine MovieClips zum platzieren nehmen...
Gruß
also ich lade Bilder dynamisch aus XML- Files in einem ActionScript in meinen Film. Ich richte die Grösse der Bilder nach einer festen Breite, die Höhe wird automatisch ermittelt und eine Bildunterschrift und weitere Bilder werden dynamisch platziert. Soweit so gut. Nun möchte ich aber einen RollOver-Effekt haben, komme aber mit der Logik nicht ganz hin, da er mir die neue Y-Position nicht in meine RollOver-Funktion mitnimmt.
Kann mir da einer helfen? Ich hab schon überlegt den RollOver und RollOut auszulagern, aber da fehlt mir noch die zündende Idee...
Hier mal der Code:
Hier wird das Bild geladen:
Code:
if(aNode.firstChild.nodeValue!= null){
var imgname = aNode.firstChild.nodeValue;
_root["Bild1"]["img1"].loadMovie("pics/" +imgname);
ImageEnterFrame("Bild1", "img1", total_width, 634, true);
Code:
function ImageEnterFrame(givenLabel, givenImg, total_width, x_pos, with_y_pos){
_root[givenLabel].onEnterFrame = function() {
if (_root[givenLabel][givenImg]._width > 10 && _root[givenLabel][givenImg]._height > 10) {
var startWidth = _root[givenLabel][givenImg]._width;
var newWidth = total_width;
_root[givenLabel][givenImg]._width = newWidth;
var verhaeltnis = newWidth / startWidth;
_root[givenLabel][givenImg]._height = _root[givenLabel][givenImg]._height * verhaeltnis;
_root[givenLabel][givenImg]._x = x_pos;
if(with_y_pos){
_root[givenLabel][givenImg]._y = 220;
}
delete this.onEnterFrame;
}//end if skalieren
//positionieren und MO-Effekte
var nextElement_pos_y = _root["Bild1"]["img1"]._y + _root["Bild1"]["img1"]._height + 10;
_root.Bildunterschrift1._y = nextElement_pos_y;
//MouseOver- Marks setzen und aufrufen
_root["Bild1"]["img1"].onRollOver = function() {
trace("Over");
_root.attachMovie("MO_top", "MO_top", 50);
_root.MO_top._x = 630;
_root.MO_top._y = 217;
_root.attachMovie("MO_bottom", "MO_bottom", 53);
_root.MO_bottom._x = 630;
_root.MO_bottom._y = nextElement_pos_y - 10 - 3;
};
_root["Bild1"]["img1"].onRollOut = function() {
trace("OUT");
removeMovieClip(_root.MO_top);
removeMovieClip(_root.MO_bottom);
}//end fuction MouseOut
Aber in de Funktion RollOver kennt er meine Variable nextElement_pos_y nicht mehr... Wieso denn nicht? Wie bekomm ich die Variable übergeben?
Natürlich werden danach noch weitere Bilder platzier und die Variable weiter hochgerechnet, also die wird weiter benutzt und ich will immer den jeweiligen aktuellen Wert auch für meine MovieClips zum platzieren nehmen...
Gruß