Просмотр полной версии : Присваевание похожего кода кнопкам.
Здравствуйте.
У меня есть кнопки : lamp_1, lamp_2, lamp_3...
Я исплльзую их так:
lamp_1.onPress = function () {
dvigat ("lamp_1");
}
lamp_2.onPress = function () {
dvigat ("lamp_2");
}
lamp_3.onPress = function () {
dvigat ("lamp_3");
}
Как можна уменшить этот код?
мне кажется так можно, может есть вариант и получше - неуверен.
for (var name in this) {
if (typeof (this[name]) == "object") {
this[name].onRollOver = function() {
currButton = GetButtonID(this._name)
dvigat ("lamp_"+currButton );
}
}
}
function GetButtonID(str) {
return str.slice(5, str.length);
}
Molecula
27.02.2008, 14:46
2 vladius, экстремальный вариант.
Циклы используем, что же ещё:
var j:Number =0;
var len:Number = 4;
while(j<len){
this['lamp'+j].__id=j;
this['lamp'+j].onPress=someFunc;
j++
}
function someFunc(){
trace(this.__id);
}
Я юзаю этот код, всё ок, но до сих пор не пойму
this['lamp'+j].__id=j;
Что тут происходит?
Mr. Fixit
19.03.2008, 04:56
Вы создаете свойство у своего мувиклипа, и присваиваете ему уникальный номер.
- Почему мы можем создать свойство?
- Потому что, класс MovieClip is dynamic(динамический).
Molecula, можно еще проще ;)
var len:Number = 4;
while(len--){
this['lamp'+len].__id=len;
this['lamp'+len].onPress=someFunc;
}
function someFunc(){
trace(this.__id);
}
Molecula, можно еще проще ;)
var len:Number = 4;
while(len--){
this['lamp'+len].__id=len;
this['lamp'+len].onPress=someFunc;
}
function someFunc(){
trace(this.__id);
}
B правильнее:
var len = 4;
while (len--) {
var lamp = this['lamp'+len];
lamp.__id = len;
lamp.onPress = someFunc;
}
function someFunc() {
trace(this.__id);
}
Mr. Fixit
20.03.2008, 05:43
Денис, а где определение типов данных? ;)
Денис, а где определение типов данных? ;)
В данном случае абсолютно бессмысленно, поэтому убрано.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.