【发布时间】:2011-10-14 16:51:22
【问题描述】:
我有一个带有三个按钮的父 swf:下一步按钮、后退按钮、自动收报机开/关按钮。 我有三个子 swf,每个都有一个股票代码 mc。当我单击父 swf 上的自动收报机按钮时 它调度一个自定义事件,将ticker MC带到舞台上,因此ticker变得可见(ticker off按钮通过更改ticker_mc.y的值将其移出舞台)。 我面临的问题是当自动收报机打开时,我单击下一个或后退按钮加载下一个或上一个子 swf,自动收报机熄灭。我怎样才能确保自动收报机一直处于开启状态,并且只有在我关闭它时才会关闭。加载的子 swf 1 如何与当前未加载的下一个子 swf、子 swf 2 进行通信,因为 swf 1 上的代码已打开,所以您也请保持 swf 2 上的代码?!
我想我知道问题所在。我在每个子 swf 上都设置了ticker_mc = 160 的默认值(使ticker 处于非活动状态)。因此,每次我加载新的子 swf 时,自动收报机都会变为非活动状态。如果有人可以指导我该怎么做,我的问题将得到解决:加载第一个子 swf 时,ticker_mc.y 的默认值应为 160。我想将此值保存在变量中。当我点击 ticker active btn 时,ticker_mc 的位置更改为 194,因此变量的值应更改为 194。当我单击下一个 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上的Ticker活动按钮
viewUnviewTxt_mc.viewTxt_btn.addEventListener(MouseEvent.CLICK, viewText);
function viewText(e:MouseEvent):void{
var viewText:String = "viewTxtFunc";
dispatchEvent (new Event(viewText, true));
}
//关闭自动收报机(默认)。 Ticker 蒙版默认关闭/不可见(舞台外)。
thisMC.tickerMaskMC.y = 160;
//在子 swf 上收到自定义事件
parent.stage.addEventListener("viewTxtFunc", eventHandler);
function eventHandler(e:Event):void{
tickerMaskMC.y = 194;
}
【问题讨论】:
-
嗯,不是真的什么都懂。但是你有一些可以在这里发布的代码 sn-ps 吗?
-
我已经添加了很多代码,我猜你能帮忙
标签: actionscript-3