У меня есть родительский swf с тремя кнопками: кнопка «Далее», кнопка «Назад», кнопка включения / выключения тикера.
У меня есть три дочерних swfs, каждый с тикером mc. Когда я нажимаю на кнопку тикера на родительском SWF
он отправляет пользовательское событие, которое выводит тикер MC на сцену и, таким образом, тикер становится видимым (кнопка отключения тикера смещает его со сцены, изменяя значение ticker_mc.y).
Проблема, с которой я сталкиваюсь, заключается в том, что тикер включен, и я нажимаю кнопку «Далее» или «Назад» для загрузки следующего или предыдущего дочернего SWF-файла, тикер гаснет. Как я могу убедиться, что тикер включен и закрывается только когда я его закрываю. Как загруженный дочерний SWF 1 может связаться со следующим дочерним SWF, дочерним SWF 2, который в данный момент не загружен, так как тикер включен на SWF 1, поэтому, пожалуйста, оставляйте тикер также на SWF 2?!
Мне кажется, я знаю проблему. Я установил значение по умолчанию ticker_mc = 160 (делает тикер неактивным) для каждого дочернего SWF. Таким образом, тикер становится неактивным каждый раз, когда я загружаю новый дочерний SWF. Если кто-то может подсказать, как я могу это сделать, моя проблема будет решена: при загрузке первого дочернего swf значение по умолчанию ticker_mc.y должно быть 160. Я хочу сохранить это значение в переменной. Когда я щелкаю ticker active btn, положение ticker_mc меняется на 194, поэтому значение переменной должно измениться на 194. Когда я нажимаю next btn, значение переменной (160 или 194) должно быть отправлено следующему дочернему swf, а ticker_mc.y равно значению переменной.
Это код на данный момент
«Следующая кнопка»
go_mc.next_btn.addEventListener(MouseEvent.CLICK, playNext);
function playNext(e:MouseEvent):void {
if (swf_no < (clips.length-1)) {
swf_no++;
SoundMixer.stopAll();
nextClip();
pp.play_btn.visible=false;
pp.pause_btn.visible=true;
}
}
function nextClip():void {
thisLoader.load(new URLRequest(clips[swf_no]));
}
// Каждый раз, когда я нажимаю кнопку «Далее» или «Назад», вызывается это событие, и я удаляю предыдущий SWF со сцены.
thisLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, doneLoading);
function doneLoading(e:Event):void {
stopAllChildMovieClips(stage);
stage.removeChild(thisMC);
thisMC=MovieClip(thisLoader.content);
thisLoader.unloadAndStop();
thisMC.x=37;
thisMC.y=78.50;
stage.addChild(thisMC);
playAllChildMovieClips(stage);
}
// Кнопка активного тикера на родительском swf
viewUnviewTxt_mc.viewTxt_btn.addEventListener(MouseEvent.CLICK, viewText);
function viewText(e:MouseEvent):void{
var viewText:String = "viewTxtFunc";
dispatchEvent (new Event(viewText, true));
}
// Чтобы отключить тикер (по умолчанию). Маска тикера по умолчанию отключена / невидима (вне сцены).
thisMC.tickerMaskMC.y = 160;
// пользовательское событие получено на дочернем SWF
parent.stage.addEventListener("viewTxtFunc", eventHandler);
function eventHandler(e:Event):void{
tickerMaskMC.y = 194;
}