作者icedesign (不可或缺的咖啡因)
看板Flash
标题Re: [问题] 不要重覆loadMovie的语法如何写?
时间Sat Nov 10 14:20:33 2007
※ 引述《liyen (蓝色星星海﹏★)》之铭言:
: 想请教大家....
: 就是我有一个物件叫show
: 有三个按钮叫A B C
: 我希望按按钮A和B的时候
: show可以从外部loadMovie一个show1.swf档案进来
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
意思是说,A按钮是负责叫show1.swf去抓影片进来的?
那B应该不用再叫一次才对?B的作用应该是播放才对。
: 按按钮C的时候
: show可以从外部loadMovie一个show2.swf档案进来
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
意思是说,按下C按钮,show又会去抓一个show2.swf影片进来?
↑这里的逻辑好像不太对
show抓了两个影片进来,根据後者会覆盖前者的原理,原po有没
有想过要让:
1.按下C按钮的时候,让show1.swf先『隐藏』或者先『移除』掉?
不然因为你只有以一个show的接收器,以後者影片(show2.swf)
会盖掉前者的理论来说,影片应该会重叠到。
: 我的问题就是
: 如果先按过按钮A了(show1.swf已经load进来了)
: 按下按钮B的时候就可以不用再重复load档案show1.swf
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
↑嗯,这个想法也就是说,你想要让原本已load进来的show1.swf
『暂时隐藏起来』对吗?因为就不用再一直load对吗?
: (也就是只有按下按钮B时show所loadMovie的内容非show1.swf时
: 才须执行loadMovie载入show1.swf)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
↑这一段解释的不太容易让人了解,我帮你解释一下好了。
意思是说:
『如果我的show这个接收器,正在播按下c按钮时所载的影片,
那我如果要按b按钮的话,希望它不用再一次loadMovie进来show1.swf
这个影片。而可以按下b时让show1.swf自己播放。』
so,以下为没试过之临时赶出门前之乱写:
==============================================================================
stop();
A_btn.onRelease = function (){
loadMovie("show1.swf",show_mc);
//我觉得用loadMovieNum的level来操作会更明确一点
//不过因为没真正trace过,所以就照原po的loadMovie来做罗!
}
B_btn.onRelease = function (){
show_mc.play();
unloadMovie("show2.swf");
}
C_btn.onRelease = function (){
unloadMovie("show1.swf",show_mc);
loadMovie("show2.swf",show_mc);
}
==============================================================================
因为实在不太了解原po所有的想法跟流程,就暂时照字面上的写。
上面的程式中有个很大的缺点,就是如果使用者先按下C_btn,再去按
B_btn,那就会出现奇怪的bug,因为使用者没去按A_btn,所以show1.swf
不会出现在show_mc当中。又或者,使用者先按下B_btn,loadMovie一样没
将show1.swf叫进来,一样不会播放。
『简单的解决方法→就是让A&B&C按钮在影格上有顺序的出现,让使用
者没得选,酱子使用者第一次按下去的,就一定会是A_btn』
第二,按下按钮,再呼叫影片进来的事件处理方式,建议可以改成其他的
事件处理方式,会比较流畅喔。
A&B&C _btn & show_mc 均为影片实体名称,将影片中的元件改成跟我程式
中的名称相同(或者将程式改成你要的名字),程式放在时间轴上,应该就
可以跑噜!
我是来骗P币的~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.178.144