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

jora777 27.12.2010 23:19

загрузка из массива
 
Здравствуйте, вот есть код:

Код AS1/AS2:

var soundId:Number;
 
var sounds:Array = new Array();
sounds.push("http://1.ru/1.mp3");
sounds.push("http://2.ru/2.mp3");
sounds.push("http://3.ru/3.mp3");
 
function loadSound(id:Number):Void
{
        soundId = id;
        mySound.loadSound(sounds[soundId], true);
}
 
var buttons = [];
var m = this;
for(var j=0; j<10; j++) {
          this["play_btn"+j].onRelease = function() { loadSound(j); }
        }

Суть: в массив подгружаются ссылки на песни, при выборе песни - ссылка сохраняется в переменной.
Есть 10 кнопок, нужно чтобы при нажатии на кнопку загружалась песня соответственно.

Проблема: не пойму, почему при loadSound(0) (загрузка первой ссылки из массива)все работает хорошо, а при loadSound(j) нет результата.

etc 27.12.2010 23:27

А по-вашему чему равна j на момент клика?

jora777 27.12.2010 23:39

Цитата:

Сообщение от etc (Сообщение 960276)
А по-вашему чему равна j на момент клика?

Нулю? Не понял вопроса.

etc 27.12.2010 23:44

Почему нулю? Цикл выполнился, сколько теперь j?

mooncar 28.12.2010 00:06

Автор, в конце замените на:
Код AS1/AS2:

for(var j=0; j<10; j++) 
{
        this["play_btn"+j].id = j;
        this["play_btn"+j].onRelease = loadSnd;
}
 
function  loadSnd()
{
        var id:Number = this.id;
        loadSound(id);
}


jora777 31.12.2010 16:06

mooncar, Ваш метод не действует.

rainbowrussia 31.12.2010 23:28

Попробуйте так, хотя вроде ошибок явных нет.
Код AS1/AS2:

for(var j=0; j<10; j++) 
{
        this["play_btn"+j].sndid = j;
        this["play_btn"+j].onRelease = loadSnd;
}
 
function  loadSnd()
{
        loadSound(this.sndid);
}


mooncar 01.01.2011 03:19

Вложений: 1
Принципиально - это не мой метод, а обычная практика.
Обработчик события назначается для нескольких кнопок циклом, как ссылка на одну и ту же функцию, где этот номер и используется.
В том же цикле каждой кнопке задается переменная-свойство, со значением, равным ее номеру, чтобы потом ее использовать.
Думается, вы что-то сделали неверно.
Пример использования во вложении. Запускать в IDE, там трейсы.

dark256 01.01.2011 05:20

лунная машина == железный человек :)

mooncar 01.01.2011 05:29

Спасибо, дарк :)
С НГ!

dark256 01.01.2011 05:34

Взаимно! Воистину! :)


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

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