このForループをonRollOverで動作させることはできません。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]);
}
いずれにせよ、これは動作します。しかし、誰かが私にこれから作成された解決策を与えることができればそれはうまくいくでしょう。どのようにしてループ内に関数を持たせることができますか?
それは他のように、うまくいきませんでした。トレースは正しい番号を出力しますが、何も起こりません。 FLAをダウンロードして見てもらえますか? –
さて、あなたの問題は解決されているので、この質問もあります。 forループは機能します。 – evilpenguin
私が見ることができる最初の他の間違いはあなたのストリームはあなたのビデオボタンではなく、ステージ上にあることです、あなたはattachVideo(this ['stream' + this.id ])with attachVideo(['stream' + this.id]) – evilpenguin