随笔 - 8  文章 - 55  trackbacks - 0
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

朋友的Blog

最新评论

阅读排行榜

评论排行榜

查看完整版本 : 怎样在Flash里嵌入Flash影片?


天使之翼
2005-08-08, 15:03
做一个FLASH网站,怎么加载另外的FLASH到场景里?
类似画中画的效果 :confused:

明天
2005-08-08, 15:42
将嵌入的flash做成影片剪辑就可以了

天使之翼
2005-08-08, 15:46
将嵌入的flash做成影片剪辑就可以了

这个我知道,这样会增加文件的大小,影响网上浏览速度。
我想把影片分成若干个FLASH文件载入。

actionscript
2005-08-08, 15:48
简单一点
同样是loadmovie
载入与被载入的影片实际大小是一致的
当然,被载入的影片实际有动画的就是你图中的小红框部分

通过在对应的层loadmovie要载入的影片
可以简便的实现效果

天使之翼
2005-08-08, 17:05
简单一点
同样是loadmovie
载入与被载入的影片实际大小是一致的
当然,被载入的影片实际有动画的就是你图中的小红框部分

通过在对应的层loadmovie要载入的影片
可以简便的实现效果

不行,这样整个页面都在LOAD!
我只要小画面里显示加载数据,然后单独操作播放。

OREZ
2005-08-08, 23:53
我也是用 loadmovie就ok了
用层或者目标窗口都可以的

天使之翼
2005-08-09, 16:58
哈哈…………经过反复实验终于成功实现理想效果。
果然还是LoadMovie的作用,只不过要用一个影片组建来指定位置。
恩!还是要谢谢大家。 :D

天使之翼
2005-08-10, 17:00
晕……又碰到新问题了,现在在FLASH模式下浏览影片能正确加载嵌入。为什么一导入进HTML里浏览就无法正常加载嵌入???
难道脚本有错,还是别的原因?

LOADMOVIE的脚本

loadMovie("\\word.swf", "");

word.swf为被嵌入的影片。
还有什么“位置”“目标”“变量”之类的选项都有什么做用?

真·大头
2005-08-10, 17:39
如果你放在同一个目录下应该是loadMovie("word.swf");
没有\\的

其他参数不写用默认的就行了

真·大头
2005-08-10, 17:45
还有一般是在外面的flash用点语法写的
比如你把那个要载入的mc命名为a,在外面的桢写a.loadMovie("word.swf"),然后还能顺便定义a的大小位置什么的

adam
2005-08-10, 21:11
问题一:如何控制被加载进来的SWF文件的坐标和长宽比例大小?

控制被加载进来的SWF文件控制其长宽要采用onEnterFrame,比如:

on (press) {
loadMovie("a2.swf", "_root.mymc");
onEnterFrame = function () {
_root.mymc._x = 0;
_root.mymc._y = 0;
_root.mymc._width = 330;
_root.mymc._height = 240;
};
}

为什么用 onEnterFrame呢?因为被加载进来的的过程中,有点延时,如果没有onEnterFrame语句,那么语句读取一次就不读取了,然而读取了这一次之后,还没有加载进来,所以就会导致坐标大小设置无效。同样,如果加载到层上,也是这样的。

on (press) {
loadMovie("a1.swf", 1);
onEnterFrame = function () {
_level1._x = 17;
_level1._y = 30;
_level1._width = 330;
_level1._height = 240;
};
}

请注意这两种方法,第一种,把外部的a2加载到mymc中,加在进来后,a2就自动的替换了mymc,我们直接设置mymc的属性就设置了被加载进来的swf的属性。第二种方法,_level是对于加载到时间轴上的电影的引用,加载到第2层就是_level2;加载到第3层就是_level3。

adam
2005-08-10, 21:12
问题之二:如何实现点击按钮加载一个外部SWF文件,并且要显示加载的下载进度呢?

有两个方法来实现这个效果,其一:把加载londing写在主文件中,其二,被加载的子SWF文件有自己的londing。现在分别给予说明。

其一:在主文件中写londing

外部子swf文件名为a1,主文件中有一个动态文本框名为loadText,一个按钮名为bbt,现在把loadMovie和londing写在桢上。

_root.bbt.onPress = function() {
_root.createEmptyMovieClip("mc", 10);
mc.loadMovie("a1.swf");
mc._visible = false;
_root.bbt.onEnterFrame = function() {
var l = mc.getBytesLoaded();
var t = mc.getBytesTotal();
var getPercent = l/t;
loadText = Math.round(getPercent*100)+"%";
if (l>0 && l>=t) {
mc._visible = true;
delete this.onEnterFrame;
}
mc._x = 10;
mc._y = 10;
mc._width =440;
mc._height = 320;
};
};

其二:子文件中有自己的londing

这个写法与前面说的londing一样,只是注意一个问题就是注意路径的问题,比如这样写:

第一祯

loaded = getBytesLoaded();
total = getBytesTotal();
lts = Math.round((loaded/total)*100);
wenben = lts+"%";

第二祯

if (lts == 100) {
gotoAndStop(3);
} else {
gotoAndPlay(1);
}

和前面的londing中介绍的比较,看出不同之处没有呢?仅仅是去掉了_root因为被加载后,外部SWF文件就相当于主文件中的一个MC 有了_root 就是指向主文件的_root 了,当然会显示错误。

adam
2005-08-10, 21:12
问题三:我想在舞台上画一个屏幕,然后点击一个按钮就载入一个外部swf进行播放该怎样做呢?

那么我们就来一起做一个相册吧。当主文件载入后,单击按钮就载入一个外部swf 文件,并且都有londing显示。首先我们做好以下准备工作:(1)准备几张图片,现在我们准备7张,6个子文件一个一张,主文件用一张。(2)主文件舞台大小为了适应网页的需要,设置为770*420。子文件舞台大小设置为512*384,这样就不需要载入后控制大小了,方便些(其实我们应当这样,省去一些麻烦。

一、制作子文件。每个都用来显示图片,第一和第二祯写londing,第三祯~~二十祯根据自己的爱好做点亮度变化,以产生动感,最后一祯写上stop()。第一和第二祯的londing如下

第一祯

loaded = getBytesLoaded();
total = getBytesTotal();
lts = Math.round((loaded/total)*100);
wenben = "数据下载中 "+lts+"%";

第二祯

if (lts == 100) {
gotoAndPlay(3);
} else {
gotoAndPlay(1);
}

就这样如法炮制的制作6个,分别命名为b1…..b6都发布成swf文件。保存在一个文件夹中。

二、制作主文件

第一祯用来写londing,第2祯放一些像屏幕一样的东西,和按钮,为了增加效果,放一个音乐在时间轴上。

第一祯的londing//由于前面已经说得多了,就不赘述了

stop();
i = 0; ,
onEnterFrame = function () {
// 使用不断触发的事件
loaded = _root.getBytesLoaded();
total = _root.getBytesTotal();
var aa = Math.round((loaded/total)*100);
_root.dongtai.wenbens = aa+"%";
_root.dongtai._x = 188+aa*3;
_root.bb._width = aa*3;
if (aa>=100) {
// 检测到满足条件就跳出来,否则继续循环
_root.gotoAndStop(2);
delete this.onEnterFrame;
// 使用delete的目的是当完成下载后销毁onEnterFrame事件,以节约资源的消耗。
}
};

第2祯的按钮上的AS

on (press) {
_root.i++;
if (i == 7) {
i = 6;
}
loadMovie("b"+i+".swf", "_root.mc");
_root.tishi = "第"+i+"张图片";
}

偷点懒,就不详细的赘述其含义, 我们也可以用很长的语句来实现相同的效果,这种写法是对AS的一种浓缩。

adam
2005-08-10, 21:13
问题四:我想逐次载入多个外部文件,当第一个载入播放完毕后,立即载入第2个,第二个播放完毕后,立即载入第3个 ,……,直到结束。怎么办?

首先对这种提问,我们先要质问一下提问的人,这样做有什么意义? 与其这样,不如全部做到一个SWF中,因为每次调用一个外部SWF的时候,需要一定的时间来等待下载。当然,如果你想制作一个连续剧,播放完了一个后,用londing下一集的londing画面显示“正在载入下集,请稍候”那么还是可以的。

方法很简单:依照问题三的原文件,稍微修改,去掉一个按钮,用一个按钮载入第一个,然后再第一个的最后一祯放个调用主文件中的函数即可。

按钮:

on (press) {
loadMovie("b1.swf", "_root.mc");
}

主文件定义的函数

function go2() {
loadMovie("b2.swf", "_root.mc");
}
function go3() {
loadMovie("b3.swf", "_root.mc");
}
function go4() {
loadMovie("b4.swf", "_root.mc");
}
function go5() {
loadMovie("b5.swf", "_root.mc");
}
function go6() {
loadMovie("b6.swf", "_root.mc");
}

第一个b1 SWF的最后一祯_root. go2(),第二个外部SWF的最后一祯 _root.go3()………..

adam
2005-08-10, 21:15
天使之翼 (http://www.v6dp.com/member.php?u=54) vbmenu_register("postmenu_70481", true); 请等几天,我正在给你写flash整站的教学教程!
不好意思!
这两天实在太忙

天使之翼
2005-08-11, 02:46
谢谢!adam的回复,好复杂,我要慢慢消化:)
再次感谢。 :D

adam
2005-08-11, 09:48
厚厚~~,翼也在做自己的个人站点把!!
我也在做!共同努力

亦韦
2005-08-11, 11:34
果然是高手,很受用!其实也不用这么麻烦,一般的效果,应该用loadmovie就足够了,载入到空MC下,空MC摆放到要载入影片指定位置,再把要导入的影片loadmovie进来就行了。如果用loadmovienum
加载到层中的话,固定位置稍有些麻烦,需要的朋友可以搜一下,网上相关资料很多,本人水平有限,就不“班门弄斧”了。

下面是下载条的代码,只要放到第一帧上就行了,改下坐标,长、宽度就可以用了,挺实用的^_^。(来源于网上)

stop ();
function dr ( nam , de , d , al ) {
na = createEmptyMovieClip ( nam , de );
na . lineStyle ( d , 0x000000 , al );
na . _x = 149.0 ;
na . _y = 229.0 ;
na . lineTo ( 323.9 , 0 );
}
//一个画线条的函数
onEnterFrame = function () {
var a = getBytesTotal ();
var b = getBytesLoaded ();
//取得下载的数据
if ( b < a ) {
dr ( "b1" , 0 , 1 , 20 );
dr ( "b2" , 1 , 1 , 10 );
dr ( "b3" , 2 , 1 , 100 );
b3 . _xscale = b / a * 100 ;
//画三条横线,显示下载进度;
} else {
delete onEnterFrame ;
b1 . removeMovieClip ();
b2 . removeMovieClip ();
b3 . removeMovieClip ();
play ();
//下载完毕,删除图形和函数;
}
};

问题四:我想逐次载入多个外部文件,当第一个载入播放完毕后,立即载入第2个,第二个播放完毕后,立即载入第3个 ,……,直到结束。怎么办?

我这边有个点击播放下一个的代码,你看看有用吗?
时间轴上:
stop();
i=0;//定义一个变量i,并且赋初值为0;
建一个空帧,命名为:“body1_mymc”再放两个按扭向下翻页的加语法是:
on(release){
i++;
if(i>15){//因为外面这有9张图,当变量大于9的时候,让变量为1,这样能够使加载的图片是连续的,即,每点一次按扭,就换一张图,等到换到第9张图,再点按扭,则循环到第一张图(j1.jpg到j9.jpg,因为没有j0.jpg,如果i=0,则会提示没有找到j0.jpg);
i=1;
}
loadMovie(("j"+i)+".jpg",body1_mymc);//从j1.jpg开始加载图片到影片剪辑mymc中;
}
向上翻页的代码与这段相反就行了。

本人涉猎不深,希望与大家共勉。

adam
2005-08-11, 13:28
v6是大家共同学习的地方,不用客气!很高兴能于大家交流!

其实我认为网站的精髓不在技术,而在于美术,和个人的的设计修养水平,

这也就是技术再复杂都能搞定,因为是技术,设计的页面,是不能拿来主意的!

我在搜房作设计师,所以偶尔看看技术。但我更美术设计

希望大家能在设计一路上互相帮助,互相鼓励! 共同学习

比我强的人多如牛毛啊!!

天使之翼
2005-08-12, 14:39
如果你放在同一个目录下应该是loadMovie("word.swf");
没有\\的

其他参数不写用默认的就行了

恩,问题解决了,去掉\\就行了,还是这个简单 :D 谢谢了!

TO:adam
我是给公司做的网站(自己的一直想,可没时间 :( )
第一次尝试用FLASH做全站,慢墁摸索中…………

xlly
2005-08-12, 20:39
回答的很认真很具体!虽然懂!但是为你们的精神表示感谢!

adam
2005-08-14, 16:45
好的!我们共同努力!~~~

九章
2005-08-17, 10:53
借个地方跟个贴
想请教一个FLASH问题
我做的网页..第一页是FLASH.然后我一段FLASH完了以后,
最后一帧是ENTER.然后我想点击这个ENTER进入到我网页的一个子页面里..
是相对路径的..但是我怎么写代马就是进不去..怎么回事啊? :confused:
谢谢谢谢~~各位路过神仙~~

19831110
2005-08-17, 17:25
on(release){
getURL("这里是你的文件路径")
}

九章
2005-08-17, 19:57
没用~~
说我语法错误~~

唉~

真·大头
2005-08-17, 20:50
你这个enter做成按钮了吗

19831110
2005-08-18, 08:02
要写在mc或者button上面``

※潇洒※
2005-08-28, 00:51
嗯. 对. 放到主场景也可.^_^

mcName.onRelease = function(){
getURL("url.htm");
}
posted on 2006-06-12 09:04 blog搬家了--[www.ialway.com/blog] 阅读(2009) 评论(5)  编辑  收藏 所属分类: AS2.0

FeedBack:
# 请急帮忙!谢谢! 2007-03-21 01:33 问题·王
如何点按钮[前一个,后一个,停止]加载外部的SWF文件,并且当不点的时候可以依次加载下一个SWF文件,<但是当别人下载的时候只能下载到我的空文件,,>并且一开始不点按钮的时候可以自动的下载播放,<CCTV中的BNNER>如果知道请告诉我好吗,我的邮箱是:cyb339@126.com  回复  更多评论
  
# re: 查看完整版本 : 怎样在Flash里嵌入Flash影片? 2007-03-21 09:19 乞怪猪
这个不难吧,不过不好说.我把思想给你说一下吧.
做一个数组swf_arr = new Array("1.swf","2.swf","3.swf")
然后做一个加载这些SWF的函数.
_root.i = 0
function loadswf(i) {
mc.loadMovie(i+".swf");
}
然后就看第一个是不是放好了...
要是放好了_root.i++;loadswf(_root.i)这个循环放.

你的邮箱我发不出邮件!^__^  回复  更多评论
  
# 怎么才能实现用主FLASH的一个按钮调入、卸载另一个SWF 2008-03-12 13:31 落妆为素
真的是用来救命的,做了个课件,这儿就卡住了  回复  更多评论
  
# re: 查看完整版本 : 怎样在Flash里嵌入Flash影片? 2008-03-29 22:11 000
老师我想请教:AS3.0中下载进度条的语句怎么写?  回复  更多评论
  
# re: 查看完整版本 : 怎样在Flash里嵌入Flash影片?[未登录] 2009-12-03 15:00 KIKI
@乞怪猪


你這個只能播第一筆的swf.....沒辦法再播下一筆也

可以再說明一下嗎  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: