WEB开发网      婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈功缁犻箖鏌嶈閸撴氨鎹㈠☉娆愬闁告劕寮堕幖鎰棯閸撗勫殌闁宠鍨块幃鈺冣偓鍦Т椤ユ繈姊哄Ч鍥р偓妤呭磻閹捐桅闁告洦鍨扮粻娑㈡煕椤愶絾绀冩い搴$Ч濮婅櫣绮欏▎鎯у壋闂佸摜濮甸崝娆愪繆閻㈢ǹ绀嬫い鏍ㄨ壘閸炪劑姊洪棃娴ゆ稒鎷呴幓鎺嶅闂佸湱鍎ら〃鍡涘煕閹烘鐓曢柡鍥ュ妼娴滄粍銇勮箛锝呭籍闁哄备鈧磭鏆嗛悗锝庡墰閺嗙娀鏌ф导娆戝埌闁靛棙甯掗~婵嬫偂鎼达絼鐢荤紓浣诡殕閸ㄥ灝顫忕紒妯诲缂佹稑顑呭▓顓炩攽椤旀枻鍏紒鐘虫崌閵嗕礁顫濋幇浣光枌婵犵數濮崑鎾趁归敐鍥┿€婇柡鈧禒瀣厽婵☆垱顑欓崵瀣偓瑙勬偠閸庤精鐏冮梺缁樏鍫曞疮閻愮數纾奸柛灞炬皑鏁堥悗瑙勬礃缁繘藝鐎靛摜妫柟顖嗕礁浠悗娈垮枛閻栫厧鐣烽悡搴樻婵☆垯璀﹂悗宕囩磽閸屾瑧鍔嶆い銊ユ閻f繈骞栨担姝屾憰闂佺粯妫冮ˉ鎾诲汲鐎n喗鐓熸俊銈傚亾闁绘妫楅埢鎾澄旈崨顔规嫼闁荤姴娲犻埀顒冩珪閻忊偓闂備礁鎼幊鎰叏閹绢喗鍋╅柣銈庡灛娴滃綊鏌熼悜妯肩畺闁哄懏绻堝娲濞戞艾顣哄┑鈽嗗亝閻熲晠銆佸▎鎺旂杸闁哄啫鍊婚惁鍫ユ⒑濮瑰洤鐏叉繛浣冲嫮顩烽柨鏇炲€归悡鏇㈡煏婵炲灝鍔ら柛鈺嬬稻椤ㄣ儵鎮欓弶鎴濐潚濡ょ姷鍋為敃銏ゃ€佸▎鎾村殐闁冲搫顑囬獮銏ゆ⒒閸屾瑦绁版い顐㈩槸閻e嘲螣閼测晝鐓嬪銈嗘閿熴儲绂嶈ぐ鎺撶厵闁绘垶蓱鐏忣厼霉濠婂啰绉烘慨濠呮缁辨帒螣閾忛€涙闂備焦瀵уú宥夊疾濞戞粎浜遍梻浣告啞濞诧箓宕归柆宥呯厱闁硅揪闄勯悡娆撴煠濞村娅呭ù鐘崇矊閳规垿鍨鹃悙钘変划闂佽鍠楅〃鍛村煡婢舵劕绠抽柟鎯ь嚟瑜板洨绱撻崒娆戣窗闁哥姵鐗犻、鏍川閹碱厽鏅i梺绋跨箳閸樠呮閻愮繝绻嗘い鏍ㄧ矌鐢稒绻涢崨顓熷枠婵﹦绮幏鍛存偡闁箑娈濈紓鍌欐祰椤曆囧磹閸噮鍤曠紓浣贯缚缁♀偓闂佹悶鍎崝宥呪枍閸ヮ剚鈷戠紒瀣濠€鎵磼鐎n偅宕岀€规洏鍨介幃浠嬪川婵犲嫬骞楅梺鐟板悑閻n亪宕规繝姘厐闁哄洢鍨洪悡銉︽叏濡灝鐓愰柣鎾跺枛閻擃偊宕堕妷銉ュБ缂備礁顑堝畷鐢垫閹烘梻纾兼俊顖濆亹閻h櫣绱撴担铏瑰笡缂佽鐗嗛悾宄邦潨閳ь剚淇婂宀婃Ш缂備浇椴哥换鍫濐潖缂佹ɑ濯寸紒娑橆儏濞堟劙姊洪幖鐐插闁告鍟块悾鐑筋敍閻愯尙楠囬梺鐟邦嚟婵潧鈻撴ィ鍐┾拺缂備焦蓱閳锋帡鏌嶅畡鎵ⅵ鐎殿噮鍋婂畷鎺楁倷鐎电ǹ骞堥梻浣瑰▕閺侇噣宕戦幘缁樼厸闁告侗鍠氶幊鍛繆閸欏濮囬摶锝夋偠濞戞帒澧查柡鍌楀亾闂傚倷鑳剁划顖炲礉閺囩倣鐔哥節閸パ冩優闂佺粯鏌ㄩ惃婵嬪绩閼恒儯浜滈柡鍐ㄦ处椤ュ鏌涢弬璇测偓婵嬪箺閸洘鍊烽柣鎴炨缚閸橀亶姊洪崫鍕偍闁告柨鏈弲鍫曨敍閻愬鍘卞┑鐐叉缁绘帞绮绘繝姘厸閻忕偟鏅晥閻庤娲﹂崑濠傜暦閻旂⒈鏁嗛柍褜鍓欓埢宥夋晲閸モ晝锛濇繛杈剧稻瑜板啯绂嶉悙顒傜瘈闁靛骏绲剧涵鐐亜閹存繃宸濈紒顔剧帛閵堬綁宕橀埡鍐ㄥ箥闂佽瀛╃粙鎺戠幓鐠恒劎涓嶆慨妞诲亾闁哄被鍔岄埥澶娢熸径鐧哥稻閵囧嫰濡搁敐鍛Е闂佽鍠楅悷鈺呫€侀弮鍫濈妞ゆ挻绻勭粈鍕⒒閸屾瑦绁版い鏇熺墵瀹曚即寮介銈囶槸婵犵數濮撮崐濠氬汲閿曞倹鐓欐い鏍仜娴滅増淇婇懠棰濆殭闁宠鍨块崺鍕礃閵娧呫偡婵$偑鍊ら崢楣冨礂濡警鍤曢悹鍥ㄧゴ濡插牓鏌曡箛鏇烆潔闁冲搫鎳忛悡蹇擃熆鐠鸿櫣澧曢柛鏃€鎸抽弻娑㈠棘濞嗙偓楔缂備浇椴搁幐濠氬箯閸涱垳鐭欓幖瀛樻尭娴滈箖鏌涘┑鍕姢闁活厽鎸鹃幉鎼佹偋閸繄鐟ㄩ梺鍝勵儎缁舵岸寮婚悢鐓庣鐟滃繒鏁☉銏$厸闁告侗鍠楅崐鎰版煛鐏炶濮傞柟顔哄€濆畷鎺戔槈濮楀棔绱� ---闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弮鍫熸殰闁稿鎸剧划顓炩槈濡搫绠诲┑鐐叉▕娴滄粓鎮″☉銏$厱婵炴垵宕獮妯汇亜閺傛寧顥㈡慨濠呮閹瑰嫰濡搁妷锔惧綒闂備胶鎳撻崵鏍箯閿燂拷
开发学院图形图像Flash Flash AS入门教程第七课:影片剪辑第二节加载swf文... 阅读

Flash AS入门教程第七课:影片剪辑第二节加载swf文件

 2008-11-13 19:18:20 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣椤愯姤鎱ㄥ鍡楀幊缂傚倹姘ㄩ幉绋款吋閸澀缃曢梻鍌欑濠€閬嶆惞鎼淬劌绐楅柡宥庡亞娑撳秵銇勯弽顐沪闁绘挶鍎甸弻锝夊即閻愭祴鍋撻崷顓涘亾濮樼偓瀚�闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿极閹剧粯鍋愰柟缁樺笧閳ь剦鍙冨鍝勑ч崶褏浠奸梺璇茬箲閼归箖鎮鹃悜钘夎摕闁靛濡囬崢鐢告⒑鐟欏嫷鍟忛柛鐘崇墵閵嗗倹绺介崨濠勫幈闁硅壈鎻槐鏇熺墡闂備線娼уú銈団偓姘嵆閻涱噣骞掑Δ鈧粻锝嗙節闂堟稑鏆欏ù婊堢畺閺岋綁濮€閳惰泛婀辨竟鏇熺節濮橆厾鍘甸梺缁樺姦閸撴岸鎮樻潏銊ょ箚闁圭粯甯炴晶娑氱磼缂佹ḿ娲寸€规洖宕灃闁告劕鍟犻崜婵堟崲濞戞ḿ鏆嗗┑鐘辫兌閺佹牜绱撴担浠嬪摵闁圭懓娲ら悾鐑藉箳閹搭厽鍍甸梺鐟板悁閻掞箓鎮楅幖浣光拻濞达絿鍎ら崵鈧梺鎼炲€栭悧鐘荤嵁韫囨稒鏅搁柨鐕傛嫹婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繑銇勯幘鍗炵仼缂佺媭鍨堕弻娑㈠箛闂堟稒鐏堥悗鐟版啞缁诲啴濡甸崟顖氱閻庨潧鎽滈悾濂告⒑绾拋娼愭繛鑼枎椤繒绱掑Ο鑲╂嚌闂侀€炲苯澧畝锝堝劵椤︽煡鎮¢妶澶嬬厪闁割偅绻冮崑顏呯箾瀹割喕绨婚幆鐔兼⒑鐎圭姵銆冮柤鍐茬埣瀹曟繈鏁冮埀顒勨€旈崘顔嘉ч柛鈩冾殘閻熸劙姊洪悡搴℃毐闁绘牕銈稿畷鐑樼節閸パ冨祮闂侀潧楠忕槐鏇㈠储椤忓牊鈷戦柟鑲╁仜閸旀鏌¢崨顔锯姇缂佸倹甯熼ˇ瀵哥磼鏉堛劌绗氭繛鐓庣箻閸┾剝鎷呴柨瀣垫綗闂傚倷娴囧銊╂倿閿曞倸绠查柛銉墮閺嬩線鏌熼崜褏甯涢柡鍛倐閺屻劑鎮ら崒娑橆伓闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣椤愯姤鎱ㄥ鍡楀幊缂傚倹姘ㄩ幉绋款吋閸澀缃曢梻鍌欑濠€閬嶆惞鎼淬劌绐楅柡宥庡亞娑撳秵銇勯弽顐沪闁绘挶鍎甸弻锝夊即閻愭祴鍋撻崷顓涘亾濮樼偓瀚�  闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸ゅ嫰鏌ら崫銉︽毄濞寸姵姘ㄧ槐鎾诲磼濞嗘帒鍘$紓渚囧櫘閸ㄥ爼濡撮崘顔煎窛闁哄鍨归崢娲倵楠炲灝鍔氭い锔诲灦瀹曪繝骞庨懞銉у帾闂婎偄娲﹀ú鏍ㄧ墡闂備浇顕х€垫帡宕滈悢濂夋綎闁惧繐婀辩壕鍏间繆椤栨碍鎯堟い顐㈢焸濮婃椽宕烽娑欏珱闂佺ǹ顑呭Λ婵嬪箚閳ь剚銇勮箛鎾寸ォ婵☆垰瀚板娲传閸曨剚鎷卞┑鐐插级宀e潡骞戦姀鐘斀濠电姴瀚弶鎼佹⒑閸濆嫭宸濆┑顔惧厴閹即濡烽埡鍌楁嫽婵炶揪绲介幖顐ゆ暜鐠轰警鐔嗛柣鐔峰簻閺€鑽ょ磼閸屾氨孝妤楊亙鍗冲畷鐓庮潩閿濆懍澹曢梺鍝勫暙閻楀棛绮堥崘鈹夸簻闊洤娴烽ˇ锕€霉濠婂牏鐣洪柡灞诲妼閳规垿宕卞☉鎵佸亾濡も偓椤儻顧侀柛鐘崇墵濠€渚€姊虹紒妯曟垿鎮烽妷褉鍋撳鐓庢灓缂侇喚绮妶锝夊礃閳哄啫骞堟俊鐐€栭崝鎴﹀磹閺囥垹鍑犻幖娣妽閻撶喖鐓崶褜鍎忛柛鏃€绮撻弻鏇㈠炊瑜嶉顓犫偓娈垮枟濞兼瑨鐏掗梺鍛婄箓鐎氼剝顤傛繝纰夌磿閸嬫垿宕愰幋锕€鍨傛繛宸簼閸嬶繝鏌嶉崫鍕櫣缂佺姵鐗犻弻宥夊煛娴e憡娈查梺绋挎捣閸犳牠寮婚弴銏犵倞鐟滃秶鑺辨繝姘厵闁告垯鍊栫€氾拷
核心提示:第二节 加载和卸载swf文件上一节中,我们已经能创建MC,Flash AS入门教程第七课:影片剪辑第二节加载swf文件,本节我们将介绍加载外部swf文件的方法,loadMovie函数及MC的loadMovie()方法:使用 loadMovie() 函数可以在播放原始 SWF 文件时,以免变形, listener.onL

第二节 加载和卸载swf文件

上一节中,我们已经能创建MC,本节我们将介绍加载外部swf文件的方法。

loadMovie函数及MC的loadMovie()方法:

使用 loadMovie() 函数可以在播放原始 SWF 文件时,将 SWF、JPEG、GIF 或 PNG 文件加载到 Flash Player 中的影片剪辑中。加载的图像或 SWF 文件的左上角与目标影片剪辑的注册点对齐。
格式:loadMovie(“要加载的swf文件或图片“,目标影片剪辑);
要加载的swf文件或图片可以来源于网络,书写格式为:http://....
可以来源于本地硬盘上的文件系统,书写格式为:file:///.......
如果要加载的swf文件或图片与fla文件在同一目录下,则直接写文件名。
目标影片剪辑可以是任何影片剪辑,也可以是主场景,加载后,目标影片剪辑将被替换成加载的文件。
例1:加载一个网络上的swf文件sub.swf到创建的MC中:

this.createEmptyMovieClip("logo_mc", 1);
loadMovie("http://www.jcwcn.com/sub.swf", logo_mc);

例2:加载一个本地的swf文件sub.swf到主舞台:

loadMovie("file:///d:/myflash/sub.swf", this);

例3:加载一个相同目录下的图片picture.jpg到创建的MC中:

this.createEmptyMovieClip("picture_mc", 1);
loadMovie("picture.jpg",picture_mc);

以上是loadMovie函数的写法,而MC的loadMovie()方法也一样,只写法不同,如:this.createEmptyMovieClip("picture_mc", 1);
picture_mc.loadMovie("picture.jpg");

loadMovieNum 函数

在播放原始 SWF 文件时,将 SWF、JPEG、GIF 或 PNG 文件加载到一个级别中。用法跟loadMovie一样,只是它不是指明目标影片剪辑,而加载到一个深度上。比如要加载相同目录下的swf文件myflash.swf到深度为2的级别中:
loadMovieNum(“myflash.swf”,2);
要注意的是,上一节我们介绍了,当深度相同时,新加载的对象会覆盖原来的对象。我们也以用下面一句来加载外部swf文件:
loadMovieNum(“myflash.swf”,this.getNextHighestDepth());

MovieClipLoader类

此类用于实现在 SWF、JPEG、GIF 和 PNG 文件正被加载到影片剪辑中时提供状态信息的侦听器回调。也就是说用这类加载swf文件,可以在加载过程中进行控制,如观察加载进度等。要使用MovieClipLoader类就应首先用构造函数创建一个MovieClipLoader类的实例才能操作其方法,事件,实现加载功能。如:
var mcLoader:MovieClipLoader = new MovieClipLoader();

loadClip方法:该方法的作用和用法与loadMovie()是一样的。如:
this.createEmptyMovieClip("picture_mc", 1);
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.loadClip("picture.jpg",picture_mc);
上面说到,用本类加载外部swf文件或图片可以在加载过程中加以操作,主要是通过几个事件的调用来实现:onLoadStart事件:在下载的文件的第一个字节写入硬盘后,调用。
格式: onLoadStart = function([target_mc: MovieClip]) {}
其中的target_mc为要加载外部影片的目标MC。

onLoadComplete事件:当加载的文件完全下载时调用。
格式:onLoadComplete = function([target_mc: MovieClip]) {}

onLoadInit事件:当执行加载的剪辑的第一帧上的动作时调用。
在调用此侦听器后,您可以设置属性、使用方法,还可以与加载的影片交互。
格式:onLoadInit = function([target_mc: MovieClip]) {}了解 MovieClipLoader.onLoadComplete和 MovieClipLoader.onLoadInit之间的差异非常重要。onLoadComplete事件在加载 SWF、JPEG、GIF 或 PNG 文件之后但在应用程序初始化之前被调用。此时,无法访问已加载的影片剪辑的方法和属性,因此您无法调用函数、移动到特定帧,等等。在多数情况下,最好改为使用 onLoadInit事件,它在内容已加载并完全初始化后被调用。

onLoadPRogress事件:在加载过程中(即在 MovieClipLoader.onLoadStart
和 MovieClipLoader.onLoadComplete
之间时),每当正加载的内容写入硬盘时调用。
格式:onLoadProgress = function([target_mc: MovieClip], loadedBytes: Number, totalBytes: Number) {}
loadedBytes为已经加载的字节数。totalBytes为要加载的swf的总的字节数。如果在测试模式中,您试图对驻留在硬盘上的本地文件使用 onLoadProgress,则它将不能正常工作,这是因为在测试模式中,Flash Player 会将本地文件作为一个整体加载。

onLoadError事件:加载的文件未能加载时调用。出于各种原因,会调用此侦听器;例如服务器关闭、找不到文件或发生安全侵犯。
上述事件的调用方法我给你整成一个公式的模式,直接套用就行了。
MovieClipLoader类事件调用公式:
//首先创建一个MovieClipLoader对象
var mcLoader:MovieClipLoader = new MovieClipLoader();//mcLoader为自已取的名称
//然后创建一个侦听对象
var listener:Object = new Object();//listener为自已取的名称
//调用下列事件之一或多个
listener.onLoadStart = function(target_mc:MovieClip) {}
listener.onLoadComplete = function([target_mc: MovieClip]) {}
listener.onLoadInit = function([target_mc: MovieClip]) {}
listener.onLoadProgress = function([target_mc: MovieClip],
loadedBytes: Number, totalBytes: Number) {}
//MovieClipLoader对象调用侦听对象
mcLoader.addListener(listener);
//MovieClipLoader对象加载外部swf或图片
mcLoader.loadClip(“外部文件地址”,目标影片剪辑);
下面介绍MovieClipLoader类的几个方法

loadClip方法:在播放原始影片时,将 SWF、JPEG、渐进式 JPEG、非动画 GIF 或 PNG 文件加载到 Flash Player 中的影片剪辑中。

addListener(侦听对象)方法:注册一个对象,以便在调用 MovieClipLoader 事件处理函数时接收通知。

getProgress(target: Object)方法:返回正在通过使用 MovieClipLoader.loadClip()
加载的文件的已加载字节数和总字节数;返回一个具有以下两个整数属性的对象:bytesLoaded
和 bytesTotal。

removeListener(侦听对象)方法:删除在调用 MovieClipLoader 事件处理函数时用来接收通知的侦听器。

unloadClip(target: Object)方法:删除通过使用 MovieClipLoader.loadClip() 加载的影片剪辑。

下面通过一个练习来加深理解本节课所介绍的内容,主要运用MovieClipLoader类来加载外部文件加载过程中,用进度条来显示加载进度。本节的练习请保存原文件,待下一节控制时间轴后,将在本练习的基础上,完成一个播放器。

一、新建flash文档,然后在第一层画一个播放器的外形,这个我不作介绍,我画的如下图,你完全可以画得更好看一些。这里要说一说中间的播放屏幕(黑的那块)的大小问题。Flash文档默认的大小是550x400,那么这个播放屏幕也应按这个比例来画,它的大小是文档大小的80%,因此,宽为:550x0.8=440,高为400x0.8=320.将这个播入屏幕水平居中,尽量往上放,将下面多留一些地盘,以后有用。然后用变形工具点中它,将注册点移到左上角,打开属性面板,记录下它的x,y坐标备用。图层上锁。

二、新插入一图层,按下图位置放一个静态文本,内容为:“文件地址:”;再放一个输入文本,在属性面板实例名称为:url_txt.新建一按钮元件,标签为:“打开”,属性面板实例名称为:load_btn.将按钮放输入文本右边。

三、新建一MC,取名loading,用矩形工具,禁止笔触,绿色填充,画一个300x5的矩形。然后转换成MC。双击它进新的MC编辑窗口,将矩形条垂直居中,左对齐。打开属性面板,为实例名称取名为:“loadt_mc”.回到loading元件编辑窗口,将矩形元件垂直居中,左对齐。在矩形元件的上面放一静态文本,内容为:“正在加载文件,请稍候…”.在库中右击loading元件,点连接,在“为ActionScript导出“前打钩。在标识标中输入:loading,实际上那里本来就有了,不用输哈,确定。
四、好了,接下来写代码。新建一层,取名为“action”.

打开帧到作面板,输入如下语句:

load_btn.onRelease =function(){

attachMovie("loading","loading_mc",getNextHighestDepth());

loading_mc._x=80;

loading_mc._y=215;

loading_mc.loadt_mc._xscale=0;
var swfurl = url_txt.text;
var type = swfurl.substr(-3,3);
createEmptyMovieClip("swf_mc", 1);
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
loading_mc.loadt_mc._xscale=Math.floor((bytesLoaded/bytesTotal)*100);


}
listener.onLoadInit = function(swf_mc){

loading_mc.removeMovieClip();

swf_mc._x=60;

swf_mc._y=8;

if(type == "swf"){

swf_mc._xscale=swf_mc._yscale=80;

} else {

while((swf_mc._width>440)||(swf_mc._height>320)){

swf_mc._xscale -=1;

swf_mc._yscale -=1;

}

}

}
mcLoader.addListener(listener);
mcLoader.loadClip(swfurl,swf_mc);
}

测试影片,在文本框中输入外部swf或图片的地址,点击打开,外部文件将加载到播放窗口中,播放。注意:如果外部文件在网络上,那么就必须用http://.....格式,如果在本地硬盘上,则应输入完整路径,如果与本swf文件在同一个目录中,则只须输入文件名即可。

下面我们来分析下代码
代码分析:

代码全部放在按钮的点击事件中:
load_btn.onRelease =function(){
首先将进度条从库中加载到舞台上,并设置它的位置,使它处于播入屏幕中间,因为现在还没有开始下载,所以设置进度条的长度为0.
attachMovie("loading","loading_mc",getNextHighestDepth());

loading_mc._x=80;

loading_mc._y=215;

loading_mc.loadt_mc._xscale=0;
接下来,声明一个变量swfurl来存放用户在地址文本中输入的外部文件地址。用type来存放地址的最后三个字符,用以判断加载的是swf还是图片。
var swfurl = url_txt.text;
var type = swfurl.substr(-3,3);
创建一个空的MC用来加载外部文件
createEmptyMovieClip("swf_mc", 1);
创建一个MovieClipLoader对象用于加载外部文件,创建一个侦听对象用于调用MovieClipLoader的事件。
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
调用onLoadProgress事件,即在下载过程中,读取已下载的字节数和总的字节数,并用它们的比值,设置进度条的长度。
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
loading_mc.loadt_mc._xscale=Math.floor((bytesLoaded/bytesTotal)*100);

}
调用onLoadInit在加载完成后,删除进度条。并设置加载的文件的位置和大小,使之适应播入屏幕的大小。上面我们记录的播放屏幕的左上角坐标现在有用了,将加载的文件的坐标设为记录的值。文件的大小,首先判定加载的是swf文件还是图片。为什么在判断呢?这是因为加载swf文件后,目标MC的_width和_hight就失灵了,因而就只能用_xscaleswf_,_yscale 来控制,很显然这不科学的,因为加载的swf大小不可能都一样,按比例缩放无法达到精确的尽寸。所以我们只能把要加载的swf文件看成550x400的大小来缩小到80%。而图片则可用宽高属性来设置,所以分开来,整精确一个算一个。按上面存的用户输入的地址的最后三个字符,如果是swf那么就是加载 swf文件了,就用_xscaleswf_,_yscale来控制。如果不是则是加载图片那么就可用宽高属性来判断加载的图片是否大于播放屏幕,如果大了,则调整_xscaleswf_,_yscale属性,使之减小。为什么还是调整_xscaleswf_,_yscale呢?这是为了,使保持宽高比例,以免变形。
listener.onLoadInit = function(swf_mc){

loading_mc.removeMovieClip();

swf_mc._x=60;

swf_mc._y=8;

if(type == "swf"){

swf_mc._xscale=swf_mc._yscale=80;

} else {

while((swf_mc._width>440)||(swf_mc._height>320)){

swf_mc._xscale -=1;

swf_mc._yscale -=1;

}

}

}
最后MovieClipLoader对象侦听侦听对象,加载影片。
mcLoader.addListener(listener);
mcLoader.loadClip(swfurl,swf_mc);

Tags:Flash AS 入门教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接