as3 отключить режим кнопки при загрузке - PullRequest
0 голосов
/ 12 сентября 2011

я знаю, что это не может быть так сложно, но я не уверен, почему он не срабатывает.

У меня есть кнопка «домой», которую я хочу отключить при загрузке, потому что «домашний» контент загружен по умолчанию,

вот мой код:

import flash.events.Event;

// BUTTON FUNCTIONS FOR SP.
// by SOMDOW

/////////////// VARS /////////////// 

var loader:Loader = new Loader();
var defUrlReq = new URLRequest("indexCoontentLoad.swf");
var urlRequest:URLRequest = new URLRequest();
var myLoadedSwf:MovieClip = null;
var swfStage:Stage = this.stage;

/////////////// INITIATE LOADERS /////////////// 

loader.load(defUrlReq);

/////////////// START MAIN HANDLER FUNCTION ///////////////



/////IMPORT DEFAULT SWF /////
loader.contentLoaderInfo.addEventListener(Event.INIT, loadedHandler);
function loadedHandler(event:Event){  

    myLoadedSwf = event.target.content;
    addChild(myLoadedSwf);

    trace(myLoadedSwf);

    myLoadedSwf.gotoAndPlay("intro");

}
//----- END IMPORT DEF SWF -----



///// HOME BUTTON TURNED OFF ON LOAD /////  


indexCoontentLoad.addEventListener(Event.INIT, offOnLoad);
function offOnLoad(e:Event):void{
    if(myLoadedSwf.currentFrameLabel == "outro"){
        indexCoontentLoad.mouseEnabled = false;
        trace("lopan");
        indexCoontentLoad.removeEventListener(Event.ENTER_FRAME, offOnLoad);

    }
}

//----- END IMPORT. -----





///// START LISTENERS AND THEIR FUNCTIONS /////

load1.addEventListener(MouseEvent.CLICK,btn4Loaded);
load2.addEventListener(MouseEvent.CLICK,btn4Loaded);
load3.addEventListener(MouseEvent.CLICK,btn4Loaded);
indexCoontentLoad.addEventListener(MouseEvent.CLICK,btn4Loaded);

//----- END LISTENERS -----



///// test /////


//indexCoontentLoad.addEventListener(Event.ENTER_FRAME,offOnLoad);

/*function btn4Loaded(e:Event):void { //-- START btn4Loaded
        if (myLoadedSwf.currentLabel == "outro") {
            myLoadedSwf.gotoAndPlay("outro");

            trace("STEP 2 -- swf outro playing");
        }
*/


//----- test end



///// START BTN FUNCTIONS /////

function btn4Loaded(e:Event):void { 
        if (e.target == load1 || e.target == load2 || e.target == load3 || e.target == indexCoontentLoad) {
            myLoadedSwf.gotoAndPlay("outro");

            removeChild(myLoadedSwf);

            urlRequest = new URLRequest(e.target.name+".swf");
            loader.load(urlRequest);
            addChild(myLoadedSwf);
        }
        if(e.target == load1){
            load1.mouseEnabled = false;
            load2.mouseEnabled = true;
            load3.mouseEnabled = true;
            indexCoontentLoad.mouseEnabled = true;

        }
        if(e.target == load2){
            load2.mouseEnabled = false;
            load3.mouseEnabled = true;
            load1.mouseEnabled = true;
            indexCoontentLoad.mouseEnabled = true;

        }
        if(e.target == load3){
            load3.mouseEnabled = false;
            load2.mouseEnabled = true;
            load1.mouseEnabled = true;
            indexCoontentLoad.mouseEnabled = true;
        }
        if(e.target == indexCoontentLoad){
            load3.mouseEnabled = true;
            load2.mouseEnabled = true;
            load1.mouseEnabled = true;
            indexCoontentLoad.mouseEnabled = false;
        }

}

//----- END BTN FUNCTIONS

это выше ничего не делает.«indexCoontentLoad» - это кнопка.

я также попробовал что-то вроде:

function indexCoontentLoad(e:Event = null){
//code here 
}

, затем вызову его позже через indexCoontentLoad ();

, но опять ничего.

любая помощь приветствуется.заранее спасибо.

1 Ответ

0 голосов
/ 12 сентября 2011

Прежде всего вы добавляете событие INIT и удаляете событие ENTER_FRAME.В этом нет логики.Возможно, есть код, который вы не предоставляете нам.

Я бы использовал Loader для управления загрузкой и ожидания завершения события.Тогда я бы активировал кнопку, используя.

Загрузчик: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6

private function loadContent() : void
{
    // add listeners and load external SWF
}

private function onLoadContentComplete(event : Event) : void
{
    // remove listeners

    // setup/activate button here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...