Вход

Просмотр полной версии : Сокращение кода.


dezzzinger
16.01.2009, 11:02
Все работает. Но мне не нравится повторяющиеся элементы кода.
Подскажите пожалуйста как бы его сократить. Так же буду очень рад если кто-нить выскажется об альтернативных вариантах решения реализованной задачи.
Всем заранее спасибо.

dimarik
16.01.2009, 11:21
Пишите классами

dezzzinger
16.01.2009, 11:28
Пошел знакомиться с классами...вернусь не скоро:(

scarbo
16.01.2009, 13:30
Ну в Вашем случае все не так уж и сложно.напишите функцию на onRollOver и onRollOut а потом в цикле всем кнопочкам и задайте

dezzzinger
16.01.2009, 13:44
спасибо. этот вариант мне пока более близок, хотя знание классов конечно более перспективно.

Добавлено через 3 часа 20 минут
Вот попытался использовать цикл, но не работает подскажите где ошибся.
Кнопки реагируют а вот клипы - mi я видимо неправильно вставляю в код. Постоянно возникает проблема, когда пытаюсь вставить свои переменные в выражения.
var nc:String = "new_clip";
var b1:Button = nptt_but;
var b2:Button = cptt_but;
var b3:Button = sptt_but;
var b4:Button = njom_but;
var b4:Button = sjom_but;
var m1:MovieClip = north_mc;
var m2:MovieClip = center_mc;
var m3:MovieClip = south_mc;
var m4:MovieClip = north_jomtien_mc;
var m5:MovieClip = south_jomtien_mc;
attachMovie("Pattaya_map",nc,1,{_x:140, _y:10});
function fade() {
_root[nc].gotoAndPlay(1);
}
nptt_but.onPress = function() {
_root[nc].href = "North_Pattaya_map.html";
fade();
};
cptt_but.onPress = function() {
_root[nc].href = "Center_Pattaya_map.html";
fade();
};
sptt_but.onPress = function() {
_root[nc].href = "South_Pattaya_map.html";
fade();
};
njom_but.onPress = function() {
_root[nc].href = "North_Chaweng_map.html";
fade();
};
sjom_but.onPress = function() {
_root[nc].href = "North_Chaweng_map.html";
fade();
};
for (i=1; i < 6; i++) {
_root["b"+i].onRollOver = function() {
_root[nc]["m"+i].onEnterFrame = function() {
_root[nc]["m"+i].play();
};
};
_root["b"+i].onRollOut = function() {
_root[nc]["m"+i].onEnterFrame = function() {
_root[nc]["m"+i].prevFrame();
};
};
}