loadmove加载的swf怎么不能指定到_level,那怎么控制?
而且stop();对loadmovie加载的swf没有用,老是重复播放,停不了。
但loadmovieNum就可以控制,但mc的位置无法改变
在第一层中的mc(loadmenu)调用menu.swf文件。
loadmenu._x=130;
tellTarget(loadmenu)
{
loadMovieNum("menu.swf", 1);
}
第一句loadmenu._x=130;怎么没有效果,mc的坐标耕本就没变?
你这个问题时问handmade的,既然他不在,我就替他回答吧
等他回来替我指正
loadMoive的确是不用指定level的,因为制定了level就等于用loadMovieNum()了
这个后面会说。
loadMovie的用法一般有俩个:
一、直接在_root下loadMovie
设请求装载动画的文件为1.swf,被装载的为2.swf
那么loadMovie("2.swf",_root);
这以后你在1.swf中的一切操作对2.swf都不管用了,这一点不奇怪
因为loadMovie将2.swf装载到了level0,它已经将1.swf整个取代了
如果想控制2.swf,事先在2.swf做好就行了,也就是说,只能让本装载的电影“自己管理自己”。
二、将电影装载到mc中
例如场景中有一个mc,名字叫mc1
那么可以loadMovie("2.swf",_root.mc1);
这样,2.swf只作为1.swf中的一分子出现(相当于一个mc),而不是替代1.swf
你可以通过对mc1的操作来间接操作2.swf
例如做一个按钮
on(press)
{
_root.mc1.stop();
}
点击按钮时,2.swf的播放停止
另外,mc1的位置,扭曲,透明度等属性的变化也同样会作用到2.swf上。
下面来说loadMovieNum()
他是很多flash网站所采用的“组建系统结构”的核心部分
这涉及到flash的层级结构,也就是所谓的level0.level1...等等
用法如下
例如loadMovieNum("2.swf",1);
就是将2.swf装载到了level1中,而level1是高于level0的
所以原来1.swf中的内容如果处于2.swf中的内容占据的位置,会被覆盖掉。
而被新加载的电影左上角总是与_level0的左上角对齐的
这是不能改变的,因为电影实际上是被加载到一个新的级别中,而不是一个mc
事实上loadMovieNum根本没有加载到mc的用法
如果想加载到mc就用loadMovie
那么,用loadMovieNum()加载的swf怎么定位呢?
一种简单的办法就是,把2.swf和1.swf做成同样大小
然后人为的进行调整,使2.swf中的内容与1.swf内容位置上不冲突
例如1.swf的按钮在上方,2.swf的按钮在下方
那么在1.swf中用loadMovieNum加载2.swf中以后,两个按钮都可以正常的使用
jinni已经说得很详细了。我再补充一点。loadMovie到MC的时候,虽然可以使用MC的所有属性和方法,但是必须要确定已经完全载入后方能使用。
将swf装载到mc后
被装载的swf的位置将和mc对齐
所以调整这个mc的位置就ok了
给你做了这样一个例子:
你可以脱拽那个方块到不同的位置,然后点击load按钮看看
2-sky.net/loadmovie.swf
现在还有几个问题需要请教:
1、如果这个被载入的MC已经在运行了,那么我再点一次,是否还会从头载入,或者正在播放的mc会从头播放?
我想了一个解决的方法,不知道一般情况下是不是这么作的:
1)在需要载入的frame中的AS
var m;
m = "0";
stop();
2)在载入的按钮中AS
on (release) {
if (_root.m != "1") {
unloadMovie("mc_main");
loadMovie("main1.swf", "mc_main");
m = "1";
}
}
这样就可以区别两个按钮的作用(如果我需要不同按钮载入不同MC的话),也可以防止重复loadmovie,但是不知道有没有更好的方法。
2、如果我unloadmovie之前想让这个mc播放一段动画,然后小时换另外一个mc,那么应该在按钮上用goto and play mc的某个frame吧?之后在这个mc的frame里unload,然后loadmovie另外一个swf? 可是这个mc已经被unload掉了,怎么能再load别的frame呢?(不知道我表达得够不够清楚*^_^*)
3、我还没试过,不过,如果在这个外部swf中加入preload动画,那么在loadmovie的时候会显示吗?就好像一般flash站用的每个栏目单独作一个preload动画那样。
回答你的问题
1.当重新点击按钮时,swf会被重新装载
你说的方法是可行的,这种变量判定也很普遍
比如点击按钮有动画出现,这个动画停留在场景中
那么再次点击这个按钮时不应该在播放一次动画,所以经常用这种方法判定
2.用事件来判断
既然有onLoad事件,自然也有onUnload事件了
mc1.onUnload=function(){ mc2.play(); }
这是你unload mc1 的情况,如果是unloadMovie, 那么mc1还是存在的,一样可以判定
3.我做的时候都是把preload放到主动画里的
不过作为外部swf也可以做到
通过主场景中的装载量的属性对捆绑着preload的mc进行控制
例如load比率为percent, mc.gotoAndStop(precent)就行了
万分感谢,这个问题一直很含糊,终于有了肯定的答案,那就是loadmovieNum不能加载到mc上,而且不能定位,哈哈。那也就是说那些有很多swf组成的web,而每个swf都不一样大小,它们都是用loadmovie来调用的吗?
应该是吧,但是如果你的swf都一样大,同时你有耐心提前把他们在主场景中摆放好位置,那么直接用loadmovienum应该也可以吧,因为load进来后默认就在x0y0的位置,因为是提前摆放好的,所以也没问题。
呵呵,我想这就是仁者见仁的事了
我个人认为两者均可
可能loadmovie看起来更让人觉得顺手
你看我给你做的那个例子,一个swf还可以在另一个swf被拖拽呢
所以这样可能更直观
但我有时感觉loadmovie定位不如loadMovieNum准确
不过这都是一家之言
看自己怎么使着顺手了
啊!!!!!
突然想到一个重要的问题。
既然有LoadMovieNum这么一个函数来把外部资源load进不同的层,那么说,难道LoadMovie进来的元素都在同一个层上???那么他们是怎么互相覆盖的?
准确地说不应该叫“层”(layer)
而是叫"级"(level)
一级只能有一个动画存在
所以会出现装载到_root回替代原来动画的问题
如果装载到mc中,mc在那个层,子动画就在哪层,但它和主动画都在_level0中
另外,即便是同一层,也可以控制他们的覆盖顺序阿
用“深度"(depth)控制
loadmovieNum("a.swf",1);
我要控制a.swf到第9帧停,是这样写吗?
_level1.gotoAndstop(9);
如果是,那么obj.loadmovie("a.swf"); 应该这样写吗?
_root.obj.gotoAndstop(9);
吗?试试
stop();
loadMovieNum("k.swf",1);
_root.onEnterFrame=function(){
_level1._width=80;
_level1._height=80;
_level1._x=300;
_level1._y=200;
}
高手,原来可以这样定位,_root.onEnterFrame这个是判断是否load完吗?
_root.onEnterFrame是事件,每当执行一帧,便运行其内的代码。
被load的movie可以在它的第一帧时定位。
如:
this._x=xxx;
this._y=xxx;
loadmovienum一读取进来就在0,0的位置,如何拖到指定位置,上面说的先排好,我没懂什么意思?单独的都是swf如何放在一起排,难道场景都做成一样大,然后放在各自的位子?
而且stop();对loadmovie加载的swf没有用,老是重复播放,停不了。
但loadmovieNum就可以控制,但mc的位置无法改变
在第一层中的mc(loadmenu)调用menu.swf文件。
loadmenu._x=130;
tellTarget(loadmenu)
{
loadMovieNum("menu.swf", 1);
}
第一句loadmenu._x=130;怎么没有效果,mc的坐标耕本就没变?
你这个问题时问handmade的,既然他不在,我就替他回答吧
等他回来替我指正
loadMoive的确是不用指定level的,因为制定了level就等于用loadMovieNum()了
这个后面会说。
loadMovie的用法一般有俩个:
一、直接在_root下loadMovie
设请求装载动画的文件为1.swf,被装载的为2.swf
那么loadMovie("2.swf",_root);
这以后你在1.swf中的一切操作对2.swf都不管用了,这一点不奇怪
因为loadMovie将2.swf装载到了level0,它已经将1.swf整个取代了
如果想控制2.swf,事先在2.swf做好就行了,也就是说,只能让本装载的电影“自己管理自己”。
二、将电影装载到mc中
例如场景中有一个mc,名字叫mc1
那么可以loadMovie("2.swf",_root.mc1);
这样,2.swf只作为1.swf中的一分子出现(相当于一个mc),而不是替代1.swf
你可以通过对mc1的操作来间接操作2.swf
例如做一个按钮
on(press)
{
_root.mc1.stop();
}
点击按钮时,2.swf的播放停止
另外,mc1的位置,扭曲,透明度等属性的变化也同样会作用到2.swf上。
下面来说loadMovieNum()
他是很多flash网站所采用的“组建系统结构”的核心部分
这涉及到flash的层级结构,也就是所谓的level0.level1...等等
用法如下
例如loadMovieNum("2.swf",1);
就是将2.swf装载到了level1中,而level1是高于level0的
所以原来1.swf中的内容如果处于2.swf中的内容占据的位置,会被覆盖掉。
而被新加载的电影左上角总是与_level0的左上角对齐的
这是不能改变的,因为电影实际上是被加载到一个新的级别中,而不是一个mc
事实上loadMovieNum根本没有加载到mc的用法
如果想加载到mc就用loadMovie
那么,用loadMovieNum()加载的swf怎么定位呢?
一种简单的办法就是,把2.swf和1.swf做成同样大小
然后人为的进行调整,使2.swf中的内容与1.swf内容位置上不冲突
例如1.swf的按钮在上方,2.swf的按钮在下方
那么在1.swf中用loadMovieNum加载2.swf中以后,两个按钮都可以正常的使用
jinni已经说得很详细了。我再补充一点。loadMovie到MC的时候,虽然可以使用MC的所有属性和方法,但是必须要确定已经完全载入后方能使用。
将swf装载到mc后
被装载的swf的位置将和mc对齐
所以调整这个mc的位置就ok了
给你做了这样一个例子:
你可以脱拽那个方块到不同的位置,然后点击load按钮看看
2-sky.net/loadmovie.swf
现在还有几个问题需要请教:
1、如果这个被载入的MC已经在运行了,那么我再点一次,是否还会从头载入,或者正在播放的mc会从头播放?
我想了一个解决的方法,不知道一般情况下是不是这么作的:
1)在需要载入的frame中的AS
var m;
m = "0";
stop();
2)在载入的按钮中AS
on (release) {
if (_root.m != "1") {
unloadMovie("mc_main");
loadMovie("main1.swf", "mc_main");
m = "1";
}
}
这样就可以区别两个按钮的作用(如果我需要不同按钮载入不同MC的话),也可以防止重复loadmovie,但是不知道有没有更好的方法。
2、如果我unloadmovie之前想让这个mc播放一段动画,然后小时换另外一个mc,那么应该在按钮上用goto and play mc的某个frame吧?之后在这个mc的frame里unload,然后loadmovie另外一个swf? 可是这个mc已经被unload掉了,怎么能再load别的frame呢?(不知道我表达得够不够清楚*^_^*)
3、我还没试过,不过,如果在这个外部swf中加入preload动画,那么在loadmovie的时候会显示吗?就好像一般flash站用的每个栏目单独作一个preload动画那样。
回答你的问题
1.当重新点击按钮时,swf会被重新装载
你说的方法是可行的,这种变量判定也很普遍
比如点击按钮有动画出现,这个动画停留在场景中
那么再次点击这个按钮时不应该在播放一次动画,所以经常用这种方法判定
2.用事件来判断
既然有onLoad事件,自然也有onUnload事件了
mc1.onUnload=function(){ mc2.play(); }
这是你unload mc1 的情况,如果是unloadMovie, 那么mc1还是存在的,一样可以判定
3.我做的时候都是把preload放到主动画里的
不过作为外部swf也可以做到
通过主场景中的装载量的属性对捆绑着preload的mc进行控制
例如load比率为percent, mc.gotoAndStop(precent)就行了
万分感谢,这个问题一直很含糊,终于有了肯定的答案,那就是loadmovieNum不能加载到mc上,而且不能定位,哈哈。那也就是说那些有很多swf组成的web,而每个swf都不一样大小,它们都是用loadmovie来调用的吗?
应该是吧,但是如果你的swf都一样大,同时你有耐心提前把他们在主场景中摆放好位置,那么直接用loadmovienum应该也可以吧,因为load进来后默认就在x0y0的位置,因为是提前摆放好的,所以也没问题。
呵呵,我想这就是仁者见仁的事了
我个人认为两者均可
可能loadmovie看起来更让人觉得顺手
你看我给你做的那个例子,一个swf还可以在另一个swf被拖拽呢
所以这样可能更直观
但我有时感觉loadmovie定位不如loadMovieNum准确
不过这都是一家之言
看自己怎么使着顺手了
啊!!!!!
突然想到一个重要的问题。
既然有LoadMovieNum这么一个函数来把外部资源load进不同的层,那么说,难道LoadMovie进来的元素都在同一个层上???那么他们是怎么互相覆盖的?
准确地说不应该叫“层”(layer)
而是叫"级"(level)
一级只能有一个动画存在
所以会出现装载到_root回替代原来动画的问题
如果装载到mc中,mc在那个层,子动画就在哪层,但它和主动画都在_level0中
另外,即便是同一层,也可以控制他们的覆盖顺序阿
用“深度"(depth)控制
loadmovieNum("a.swf",1);
我要控制a.swf到第9帧停,是这样写吗?
_level1.gotoAndstop(9);
如果是,那么obj.loadmovie("a.swf"); 应该这样写吗?
_root.obj.gotoAndstop(9);
吗?试试
stop();
loadMovieNum("k.swf",1);
_root.onEnterFrame=function(){
_level1._width=80;
_level1._height=80;
_level1._x=300;
_level1._y=200;
}
高手,原来可以这样定位,_root.onEnterFrame这个是判断是否load完吗?
_root.onEnterFrame是事件,每当执行一帧,便运行其内的代码。
被load的movie可以在它的第一帧时定位。
如:
this._x=xxx;
this._y=xxx;
loadmovienum一读取进来就在0,0的位置,如何拖到指定位置,上面说的先排好,我没懂什么意思?单独的都是swf如何放在一起排,难道场景都做成一样大,然后放在各自的位子?
回复Comments
作者:
{commentrecontent}