Я не могу заставить этот цикл For работать с onRollOver.
for (var i:Number = 1; i<=4; i++) {
this['videobutton'+i].onRollOver = function() {
trace(i);
this['stream'+i].pause(false);
this['video'+i].attachVideo(this['stream'+i]);
fadeIn(this['video'+i]);
};
}
Кажется, это связано с переменной областью действия и i, но я не знаю, как это исправить.
След дает мне: 5
Есть идеи?
Вот исходный файл:
http://drop.io/gqdcyp3
Обновление
Я решил это сам, но я не думаю, что это оптимальное решение:
var videos:Array = new Array(
'ltp_video-low1.flv',
'ltp_video-low1.flv',
'ltp_video-low1.flv',
'ltp_video-low1.flv'
);
function videoOver(buttonMC,video,stream) {
buttonMC.onRollOver = function() {
stream.pause(false);
video.attachVideo(stream);
fadeIn(video);
};
}
function videoOut(buttonMC,video,stream) {
buttonMC.onRollOut = function() {
fadeOut(video);
stream.pause();
};
}
for (var i:Number=1; i<=4; i++) {
this['connection'+i] = new NetConnection();
this['connection'+i].connect(null);
this['stream'+i] = new NetStream(this['connection'+i]);
this['stream'+i].play(videos[i-1]);
videoOver(this['videobutton'+i],this['video'+i],this['stream'+i]);
videoOut(this['videobutton'+i],this['video'+i],this['stream'+i]);
}
Во всяком случае, это работает. Но было бы здорово, если бы кто-то мог дать мне решение, созданное из этого, так как оно работает. Как я могу иметь функции в цикле?