Форум 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=121040)

Art_133 06.02.2009 00:10

Нажатие на кнопки при помощи цикла
 
У меня есть к примеру 5 кнопок ссылки на которые грузятся через xml

Сперва я гружу ссылки циклом:

Код AS1/AS2:

var xml2 = my_xml.childNodes[1].childNodes; // ссылки в этом узле
                for (var l:Number = 0; l <xml2.length; l++) {
                        _root['picLink' + l] = xml2[l].attributes.url;
                        }

Имеем переменные _root.picLink0, _root.picLink1 ... _root.picLink4 со ссылками на них

Теперь пытаюсь циклом реализовать переход по ссылкам при нажатии на кнопки:

Код AS1/AS2:

for (var p:Number = 1; p <= 5; p++) {
        this[mc + 'p'].onRelease = function() {
                getURL(_root['picLink' + p - 1], '_self'); // здесь ошибка!!!
        };
}

как правильно реализовать нажатие на кнопку циклом? Или проще для каждой кнопки отдельно написать код для перехода по ссылке?

qazwsx 06.02.2009 00:25

Код AS1/AS2:

var buttons:Array = [];
 
for(var i:Number = 0; i < 5; i++)
{
        var mc:MovieClip = attachMovie('blablabla', 'blah!', i);
        mc.url = 'http://blah!'+i+'.com';
        mc.onPress = goToUrl;
}
 
function goToUrl():Void
{
        getURL(this.url, '_self');
}

Можно так. А можно придумать и получше...

Art_133 06.02.2009 00:29

Что-то не могу понять ваш код... Зачем атачить клипы если они уже есть на сцене?
П.С. Думаю у меня проблема с синтаксисом а именно в этой срочке:
Код AS1/AS2:

getURL(_root['picLink' + p - 1], '_self')


qazwsx 06.02.2009 00:37

А я что должен угадать ваш код и написать его в вашем стиле? Это ответ на вопрос. Рассмотрите его и примените в своем коде или не применяйте это ваше право :).

P.S
Код AS1/AS2:

this[mc + 'p'].onRelease = function()
 
^^ 
 
this['mc' + p].onRelease = function()


BBOY Ильич 06.02.2009 00:41

Код AS1/AS2:

for (var p:Number = 1; p <= 5; p++) 
{
        var mc:MovieClip = this[mc + 'p'];
        mc.link = _root['picLink' + (p-1)];
 
        mc.onRelease = function()
        {
                getURL(this.link, '_self');
        }
}


qazwsx 06.02.2009 00:42

Цитата:

Сообщение от BBOY Ильич (Сообщение 795988)
Код AS1/AS2:

for (var p:Number = 1; p <= 5; p++) 
{
        var mc:MovieClip = this[mc + 'p'];
        mc.link = _root['picLink' + (p-1)];
 
        mc.onRelease = function()
        {
                getURL(this.link, '_self');
        }
}


Извените...

За такое убивать надо :D

BBOY Ильич 06.02.2009 00:53

убивайте

Art_133 06.02.2009 01:13

что-то не работает последний код... Значение переменной picLink0... picLink4 равно undefined
Ладно, спасибо всем за помощь, голова совсем не варит уже, завтра попробую доделать

Добавлено через 7 минут
П.С. Думаю проще создать масив.


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

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