Форум 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)
-   -   Не удается обратиться к созданному объекту Sound (http://www.flasher.ru/forum/showthread.php?t=173116)

Denisator 23.12.2011 21:16

Не удается обратиться к созданному объекту Sound
 
В корне лежит функция которая грузит и играет mp3

Код AS1/AS2:

function playMusic(action:String) {
        if (action=="play") {
                var music:Sound = new Sound();
                music.onLoad = function(success:Boolean) {
                        if (success) {
                                music.start();
                        }
                };
                music.loadSound("music.mp3",true);
        }
        if (action == "stop") {
                music.stop();
        }
}

Там же в корне лежат две кнопки:
Код AS1/AS2:

on (press) {
        _root.playMusic("play");
}

и
Код AS1/AS2:

on (press) {
        _root.playMusic("stop");
}

Так вот, запускающая кнопка звук запускает, но вот кнопка stop никак не хочет работать.
Я так понимаю что я не правильно обращаюсь к объекту music (что то с адресацией), но как сделать правильно разобраться не могу.
Подскажите, пожалуйста, кто знает!

mooncar 23.12.2011 21:25

Вытащите строку
Код AS1/AS2:

var music:Sound = new Sound();

из функции playMusic.
Там она у вас - локальная переменная функции, когда вы обращаетесь второй раз music.stop(), она уже не видна.

И не пишите код на кнопках.
Есть еще замечания...
Зачем у вас трек music.mp3 загружается каждый раз заново, да еще в потоковом режиме?
Он очень длинный и часто меняется?

Denisator 23.12.2011 22:04

Ох спасибо Мункар!
Всё получилось.

Это для презентации делается которая будет открываться с флэшки, поэтому не страшно если каждый раз будет открываться ( но я всё таки переделал что-бы один раз открывалось :-)

А код на кнопках вот знаю что плохо так делать, но ведь удобно чёрт возьми :-) когда на скорую руку делаешь.

mooncar 24.12.2011 13:10

Цитата:

Сообщение от Denisator (Сообщение 1053386)
А код на кнопках вот знаю что плохо так делать, но ведь удобно чёрт возьми :-) когда на скорую руку делаешь.

Чем удобно? Тем, что приходится рыскать по объектам, когда код надо редактировать? Вместо того, чтобы весь код был в одном месте? Риторические вопросы.. Да и с областями видимости путаница возникает, не говоря уже о событийной схеме.
Да и здесь ответов будет меньше - хотя явно не запрещается приводить такой код, но разбираться в морально устаревшем коде не хочется.
Это просто устарело для AS - не нужно прямо вот сегодня на классы переходить, но хотя бы не пишите на объектах, отучайтесь, получите только выгоды :)

Denisator 25.12.2011 00:35

Спасибо мункар, постараюсь исправиться.


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

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