Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   привязка функции к продублированной кнопке (http://www.flasher.ru/forum/showthread.php?t=74039)

nyctota 10.01.2006 18:17

Что делать, что делать? -- Думать!

Сделай мувик, В КОТОРОМ будут лежать и кнопка, и текстовое поле. Дублируй его сколько тебе надо. А на кнопку вешай действие
Код:

my_pl.onRelease=function () {
  this.k += 1;
};

Причем k в данном случае не текстовое поле, а переменная, ему присвоенная, по идее.

И я до сих пор не могу понять, зачем ты пишешь
Код:

this.my_pl = this.my_pl.onRelease = function()

3r0jan 10.01.2006 19:05

во спасибо работает
! а чё эт я не додумал то ? блин два дня думал =/
только теперь немогу с масивом разобраться ))) теперь по ходу дела кнопка добавить из каждого мува создаёт новый массив и им пользуется ))) а мне надо типа чтоб общий был

nyctota 10.01.2006 19:13

Это не так сложно. Подумай.
У тебя только что кнопки работали с одним текстовым полем, и ты пытался сделать, чтобы они работали каждая со своим.
Теперь нужно обратное -- один массив на все кнопки. Должен додуматься быстрее, чем за 2 дня, мне кажется ;) Удачи!

3r0jan 10.01.2006 19:20

:D спасибо !!!!

3r0jan 10.01.2006 21:00

блин что то недогоню разнае масивы создаёт хоть ты тресни чё поправить чтоб один был масив ?
Код:

// кнопки + и -
pl.onRelease = function() {
        k += 1;
};
mn.onRelease = function() {
        k -= 1;
        if (k<0) {
                k = 0;
        }
};
//создаём масив
A = new Array();
//Сортировка
function Com(A1, A2) {
        if (A1.x>A2.x) {
                return true;
        }
        return false;
}
function Sort() {
        A.sort(Com);
}
var fe_l = 0;
var fe_r = N0;
//Нахождение элемента
function FindElement(x) {
        fe_l = 0;
        fe_r = A.length-1;
        if (A[fe_l].x == x) {
                return fe_l;
        }
        if (A[fe_r].x == x) {
                return fe_r;
        }
        m = Math.round((fe_r+fe_l)/2);
        while (m != fe_l && m != fe_r) {
                if (A[m].x == x) {
                        return m;
                }
                if (A[m].x<x) {
                        fe_l = m;
                } else {
                        fe_r = m;
                }
                m = Math.round((fe_r+fe_l)/2);
        }
        return -1;
}
//Добавление элемента
function AddElement(x, caption) {
        res = FindElement(x);
        Obj = new Object();
        Obj = {x:x, caption:caption};
        A.push(Obj);
        if (x>A[A.length-2].x) {
                return A.length-1;
        }
        if (x>A[fe_l]) {
                index = fe_r;
        } else {
                index = fe_l;
        }
        for (i=A.length-1; i>index; i--) {
                A[i] = A[i-1];
        }
        A[index] = Obj;
        return index;
}
//Удаление элемента из масива
function DelElement(x) {
        res = FindElement(x);
        if (res == -1) {
                return -1;
        }
        for (i=res; i<A.length-1; i++) {
                A[i] = A[i+1];
        }
        A.pop();
        return res;
}
InitArray();
Sort();
txt = "";
for (i=0; i<A.length; i++) {
        txt += i+' : '+A[i].x+'  '+A[i].caption+"\n";
}
txt += "-----------------------------\n";
output = txt;
v.onRelease = function() {
        if (tov == 1) {
                _parent.text_info = "товар уже есть в корзине. для добавления другого колличество данного товара необходимо удалить из корзины уже существующий";
        } else if (k == 0) {
                _parent.text_info = "невозможно добавить в корзину 0 едениц товара";
        } else {
                res = AddElement(inp+" , "+k, "штук в корзине");
                txt = "";
                for (i=0; i<A.length; i++) {
                        txt += i+' : '+A[i].x+'  '+A[i].caption+"\n";
                }
                txt += "-----------------------------\n";
                txt2 = k+" шт. "+inp+" добавлено в корзину ";
                _parent.output = txt;
                _parent.text_info = txt2;
                tov = 1;
                kol = k;
        }
};
out.onRelease = function() {
        res = DelElement(inp+" , "+kol);
        if (res == -1) {
                output += "нельз\xff удалить несуществующий товар!\n";
        } else {
                txt = "";
                for (i=0; i<A.length; i++) {
                        txt += i+' : '+A[i].x+'  '+A[i].caption+"\n";
                }
                txt += "-----------------------------\n";
                txt2 = "Элемент "+inp+" удален из корзины ";
                _parent.output = txt;
                _parent.text_info = txt2;
                tov = 0
        }
};

как видно два окна информирующих о том что происходит находятся на уровень ниже _parent.output и _parent.text_info вобщем дела такие при нажатии на кнопку v.onRelease в дублированом муве1 к примеру в _parent.output вы водится такой текст (0 : проверка 1 , 3 штук в корзине) а при нажатии на ту же кнопку только в другом дубле должна добавляться запись типа этой только уже с другим порядковым номером! а получается так что старая запись исчезает и появляется новая причём при повторном нажатии на ту же кнопку в дубле 1 появляется старая строка только к ней приписывается ещё одна ну только с другим порядковым номером как должно было быть при нажатии на кнопку в другом дубле. отсюда я сделал вывод что масивы создаются внутри дублей а текст трэйсится на уровень ниже потому просто заменяется ! как вынести масив из дубля и чтоб он был общим для всех кнопок :confused:


нифика се грузанул , надеюсь кто нить поможет

3r0jan 11.01.2006 02:50

ну что ? никто не поможет ? :(

Antares 11.01.2006 03:14

1. Массив пишется с двумя буквами "с". Давайте будем грамотны?

2. Использовать некий третий объект на этом же таймлайне, просто работать с его свойством, которое -- массив. И все. Всем все видно, все меняется по ссылке, все счастливы.

3. Учимся локализовывать код хотя бы чуть-чуть. Я понимаю, что это с опытом приходит, но нафига вываливать людям все написанное? Можно было написать одну функцию -- было бы равносильно в случае с такой проблемой.

3r0jan 11.01.2006 04:05

на том же тайм лайне это перед дублем чтоль ? или внутри него ? что то я непонял :(

Antares 11.01.2006 04:14

Ну хорошо -- где угодно, хоть в глобале. Не привязывая к объектам.

3r0jan 11.01.2006 04:20

пробовал не получается ! вобщем кароче если я выношу код из дубля ну тоесть не внутри дублируемого мува код делаю а на уровень ниже то не получается привязать действие к кнопке v внутри дублей ! причём привязать надо так чтоб в массив добавлялись значения тех переменных что в дубле находятся ! вот я и бъюсь и никак непоймую привязать получалось но тогда при нажатии на кнопку в любом дубле пользовались переменные из последнего дубля вот


Часовой пояс GMT +4, время: 04:50.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.