开发者

Flash As3 Mute Button problems

I am trying to create a UI movie clip that can be used across different scenes. It uses variables from the root scope to determine states.

When i press the mute button is works fine, however when i try to un-mute things go weird. Sometimes it takes 2 clicks to unmute, sometimes more. It seems random. Muting however seems to work first time..

Any ideas?


Main Timeline: 

var mute:Boolean = false;
var playerName = "Fred";


function setMute(vol)
{
    var sTransform:SoundTransform = new SoundTransform(1,0);
    sTransform.volume = vol;
    SoundMixer.soundTransform = sTransform;
}

function toggleMuteBtn(event:Event)
{
    if (mute)
    {
        // Sound On, Mute Off
        mute = false;
        setMute(1);
        ui_mc.muteCross_mc.visible = false;
    }
    else
    {
        // Sound Off, Mute On
        mute = true;
        setMute(0);
        ui_mc.muteCross_mc.visible = true;
    }
}

ui_mc Action Scrip开发者_运维问答t:

if (MovieClip(parent).mute == false)
{
    muteCross_mc.visible = false;
}

mute_btn.addEventListener(MouseEvent.CLICK, MovieClip(parent).toggleMuteBtn);


I'm assuming that your code is on the first frame of your timeline.

I won't go into depth with the issues regarding that practice in as3, but you might be better off using a document class. That way the code is initialized only once. I'm guessing when you're switching between the scenes, you keep re-initializing, so you end up resetting mute to false.

To check if this is happening, just add a trace("init") to that script, and see how often you call that., you can also add a trace to your toggleMuteBtn function to see what the mute variable is before you change it.

on a side note, I'm curious why you're typecasting the parentMovieClip(parent) though it won't cause any problems, there is no need for it as you could just use parent

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜