Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Простой регулятор (http://www.flasher.ru/forum/showthread.php?t=182736)

barcelona92 02.08.2012 11:21

хороший пример,попробую запихнуть в свою игру напишу как получиться)
спасибо

gagaga 02.08.2012 13:16

Цитата:

Сообщение от barcelona92 (Сообщение 1090609)
это не для заказчика,а я делаю игру для младшего брата)для детей и все идеи мои
и вот брат попросил сделать именно такой регулятор,а как его делать уже не представляю,перепробывал все



что-то совсем не понятно как скачать исходник чтобы посмотреть,и он походу платный

https://github.com/minimalcomps/mini...zipball/master проект опенсорсный

barcelona92 02.08.2012 19:45

Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.geom.Rectangle;
        import flash.text.TextField;
        import flash.text.TextFormat;
        import flash.media.Sound;
        import flash.net.URLRequest;
 
/* * * * * * * * * *
*                  *
*  @author wolsh  *
*                  *
\* * * * * * * * * */

        public class Main extends Sprite
        {
                [Embed(source = "../lib/pimp.png")] private var pimpImage:Class;
                [Embed(source = "../lib/back.png")] private var backImage:Class;
                private var _eventTextField:TextField;
                public static var sound:Sound = new Sound();
                soundbtn.load (new URLRequest ("sound.MP3"));
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                load.sound();
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                        _eventTextField = new TextField();
                        addChild(_eventTextField);
                        _eventTextField.defaultTextFormat = new TextFormat("Arial", 18, 0xFFFFFF, true);
                        _eventTextField.x = 200;
                        _eventTextField.y = 300;
 
                        var switcher:Switcher = new Switcher(new backImage(), new pimpImage(), new Rectangle(2, 2, 69, 0));
                        switcher.addEventListener(Switcher.ON, handlerSoundON);
                        switcher.addEventListener(Switcher.OFF, handlerSoundOFF);
                        switcher.setState(Switcher.ON);
                        this.addChild(switcher);
                        switcher.x = 200;
                        switcher.y = 200;
                }
 
                private function handlerSoundON(event:Event):void
                {
                        _eventTextField.text = "Sound ON";
                }
 
                private function handlerSoundOFF(event:Event):void
                {
                        _eventTextField.text = "Sound OFF";
                }
 
        }
 
}

функция load.sound(); не сработает(вроде бы нужно писать наоборот,однако ошибку тоже выбивает
функция soundbtn.load (new URLRequest ("sound.MP3")); тоже не понятно откуда взялся soundbtn
у меня только ползунок бегает,ну и я сделал чтоб играла музыка,но тогда у меня проблемы с ее воспроизведением

Wolsh 02.08.2012 20:24

Не надо писать вызовы функций в теле класса. Это же не код в кадре.
Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.geom.Rectangle;
        import flash.media.Sound;
        import flash.media.SoundChannel;
        import flash.media.SoundTransform;
        import flash.net.URLRequest;
        import flash.text.TextField;
        import flash.text.TextFormat;
 
/* * * * * * * * * *
*                  *
*  @author wolsh  *
*                  *
\* * * * * * * * * */

        public class Main extends Sprite
        {
                [Embed(source = "../lib/pimp.png")] private var pimpImage:Class;
                [Embed(source = "../lib/back.png")] private var backImage:Class;
                private var _eventTextField:TextField;
                private var _sound:Sound;
                private var _soundChannel:SoundChannel;
                private var _soundTransform:SoundTransform;
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                        _eventTextField = new TextField();
                        addChild(_eventTextField);
                        _eventTextField.defaultTextFormat = new TextFormat("Arial", 18, 0xFFFFFF, true);
                        _eventTextField.x = 200;
                        _eventTextField.y = 300;
 
                        _sound = new Sound();
                        _sound.load(new URLRequest("Sound.mp3"));
                        _soundTransform = new SoundTransform(1);
                        _soundChannel = _sound.play(0, 0, _soundTransform);
 
                        var switcher:Switcher = new Switcher(new backImage(), new pimpImage(), new Rectangle(2, 2, 69, 0));
                        switcher.addEventListener(Switcher.ON, handlerSoundON);
                        switcher.addEventListener(Switcher.OFF, handlerSoundOFF);
                        switcher.setState(Switcher.ON);
                        this.addChild(switcher);
                        switcher.x = 200;
                        switcher.y = 200;
                }
 
                private function handlerSoundON(event:Event):void
                {
                        _eventTextField.text = "Sound ON";
                        _soundTransform.volume = 1;
                        _soundChannel.soundTransform = _soundTransform;
                }
 
                private function handlerSoundOFF(event:Event):void
                {
                        _eventTextField.text = "Sound OFF";
                        _soundTransform.volume = 0;
                        _soundChannel.soundTransform = _soundTransform;
                }
 
        }
 
}


barcelona92 03.08.2012 16:14

хм,а если у меня звуковой файл подгружается в другом классе,как мне обратиться чтоб vol = 0 ?

Wolsh 03.08.2012 17:13

получить у него ссылку на SoundChannel

barcelona92 03.08.2012 17:45

я не использую в нем SoundChannel
Код AS3:

public class Sound_Volume {
 
                var sound:MP3Loader  = new MP3Loader("game music mix.mp3",  {volume:1, repeat:+1});
 
                public function Sound_Volume() {
 
                        sound.load();


Wolsh 03.08.2012 20:37

Я не знаю, что эти буквы означают. Спросите у автора MP3Loader, как получить ссылку на канал. Потому что нет канала — нет управления громкостью.

fish_r 03.08.2012 21:55

Звуком можно управлять также через soundTransform - свойство объекта SoundMixer

Wolsh 03.08.2012 22:50

Ну если ВСЕМ звуком, то да. Вот только...
Цитата:

Класс SoundMixer управляет встроенными потоковыми звуками в SWF; он не управляет динамическими созданными объектами Sound (то есть, объектами Sound созданными в ActionScript).


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

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