麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

Flash AS3教程:疑難雜癥匯總

2020-07-17 13:18:57
字體:
來源:轉載
供稿:網友
前面學習了Flash AS3教程:ImageLoader類,但是有時我們在做項目時可能會遇到這樣或那樣的問題,這篇里給大家專門提供些解決辦法。
在做項目的時候,總會碰到很多,奇奇怪怪的問題,看了這篇文章相信會有些幫助,雖然不是很全面,但只要是我碰到過的問題,就分享給大家!但是也怕有些想不起了。。盡力額、、

==================== 氣 死 你 的 分 割 線 ====================

1、數組的排序問題:Array.sort()方法
大家都經常用排序,一般都是字符串排序什么的,都不會發現什么的,現在來看一個有趣的現象

CODE:
var a:Array = [7,3,32,64,96,13,42];
a.sort();
trace(a);
//輸出:13,3,32,42,64,7,96
奇怪了,為什么排序出來的東西是個這樣的。。
分析為什么:仔細看一下,會發現每個數字的第一個數字,的確是按排序放好的:1,3,3,4,6,7,9
為什么會這樣呢?仔細來看看Array的官方文檔

QUOTE:

默認情況下,Array。sort() 按以下方式進行排序:
1、排序區分大小寫(Z 優先于 a)。
2、按升序排序(a 優先于 b)。
3、修改該數組以反映排序順序;在排序后的數組中不按任何特定順序連續放置具有相同排序字段的多個元素。
4、元素無論屬于何種數據類型,都作為字符串進行排序,所以 100 在 99 之前,這是因為 "1" 的字符串值小于 "9" 的字符串值。
不難發現,第4條說明了,默認是以字符串進行排序,而不是以字符串排序,難怪會出現這樣的結果額
那么應該如何排序才會出現我們要的答案呢?

CODE:
var a:Array = [7,3,32,64,96,13,42];
a.sort(Array.NUMERIC);
trace(a);
//輸出:3,7,13,32,42,64,96
加的這個參數是什么東西額。。仔細看看幫助文檔吧。。
然后Array提供了幾個常量分別是:

QUOTE:

CASEINSENSITIVE : uint = 1 [static] 指定 Array 類排序方法為不區分大小寫的排序。
DESCENDING : uint = 2 [static] 指定 Array 類排序方法為降序排序。
NUMERIC : uint = 16 [static] 指定 Array 類排序方法為數值(而不是字符串)排序。
RETURNINDEXEDARRAY : uint = 8 [static] 指定排序返回的數組包含數組索引。
UNIQUESORT : uint = 4 [static] 指定 Array 類排序方法的唯一排序要求。
==================== 氣 死 你 的 分 割 線 ====================

2、Loader.load加載圖片,顯示不出來
這個問題可以一筆帶過額。。很多人都碰到過,其實是因為你沒有加checkPolicyFile
如果確定圖片跨域了,那么加載圖片的時候,應該這樣寫

CODE:
var loader:Loader = new Loader;
var request:URLRequest= new URLRequest(url);
var lc:LoaderContext = new LoaderContext(true);
loader.load(request, lc):
加的這個new LoaderContext(true),可以去參考官方幫助文檔
這個構造函數可以傳三個參數
第一參數:指定是否去加載跨域文件
第二參數:指定要使用的應用程序域
第三參數:指定要使用的安全沙箱

==================== 氣 死 你 的 分 割 線 ====================

3、flash嵌入代碼
經常出問題,比如打開窗口會被阻止,flash游戲做方向鍵的,屏幕會跟著動等類似問題
我也經常碰到這樣的問題,花時間研究了一下
注意第一個,嵌入代碼中有一個使flash透明的參數,不要把它設置成透明,那么很多問題都可以解決,不信的話,大家可以試試,還有很多不常用的屬性,有些可以阻止flash某些方法的使用,很煩人的,特別是某些博客,公開平臺等,傳flash之后,他在嵌入代碼中會加一些這樣的屬性,那么flash有很多事情都不能做
另外還有一個就是,如果是從flash中彈出新窗口,設置成不透明也會被阻止,但是在當前窗口打開,就不會
這是我在做項目的時候,碰到的問題,以及我的解決方法,如果有高人有更好的辦法,一定要告訴我額。。。

==================== 氣 死 你 的 分 割 線 ====================

4、mask遮罩層
mask這個屬性相信很多人看過幫助文檔之后,不會仔細去看,特別是熟悉AS2的setMask的人
當然包括我自己也放過這樣的錯誤,因此在此提起,希望各位新手在學習的時候,把幫助文檔看清楚

QUOTE:

mask 屬性
mask:DisplayObject[read-write]
語言版本 :ActionScript 3.0
Player 版本 :Flash Player 9
調用顯示對象被指定的 mask 對象遮罩。 要確保當舞臺縮放時蒙版仍然有效,mask 顯示對象必須處于顯示列表的活動部分。 但不繪制 mask 對象本身。 將 mask 設置為 null 可刪除蒙版。
要能夠縮放遮罩對象,它必須在顯示列表中。 要能夠拖動蒙版 Sprite 對象(通過調用其 startDrag() 方法),它必須在顯示列表中。 要為基于 sprite 正在調度的 mouseDown 事件調用 startDrag() 方法,請將 sprite 的 buttonMode 屬性設置為 true。
根據幫助文檔的說法,如果要縮放遮罩層,就必須把遮罩層放在相應的顯示列表中,也就是addChild(mask)
比如:我現在使用的是
stage.scaleMode = StageScaleMode.SHOW_ALL;
如果說你的遮罩層沒有addChild那么,在縮放窗口的時候,mask是不會改變寬高;反之加入了顯示列表,就會跟著窗口一起縮放
mask的拖拽和點擊等事件也是如此!
綜上所述:設置遮罩層最佳做法是放到顯示列表,當然不排除有特別作用的

另外,你把mask的屬性清空,本來被做為遮罩層的,就可以看的到了,否則是看不到遮罩層的

==================== 氣 死 你 的 分 割 線 ====================

5、莫名其妙的mc
你使用Loader加載進來的mc,如果里面是動畫,或者帶有聲音
你加載進來,就算你不addChild,他也在播放的,而且有時候你控制他stop,還控制不了。。
解決方案是:加stop(),做動畫素材的時候,盡量把關鍵動畫都做在主場景幀上,那么程序中就可以控制動畫了
置于聲音,還真是個頭疼的東西,當然使用mc的同樣管理方案也是可以的,但是我建議,把聲音做到庫中
然后使用ClassLoader把聲音拿下來,然后用程序控制聲音。

==================== 氣 死 你 的 分 割 線 ====================

6、幽靈般的容器
一個容器,當被addChild后,你就可以直觀的看得到他,但是你又removeChild,很多人都認為這樣,容器就不存在了,實則不然,他還存在
比如你做一個飛機游戲,飛機爆炸后,你就會removeChild它,但是這樣做是不夠的,他依然還存在那個位置,而且x,y值是依然不變的
如果飛機上還寫了碰撞檢測,如果這時候有子彈飛過來,依然會算碰撞成功,還有很多類似的例子
個人建議:兩個辦法,簡單的游戲嘛,可以設個全局邏輯值,當確定不需要在碰撞檢測,把這個值變成false,每次檢測碰撞,也檢查一下這個值,就行了
第二個辦法是復雜一點的,擴展容器類,偵聽他的removedFromStage,removed事件和addedToStage,added事件,如果加入了,則容器中某個值等于true,反之是false
這個屬性就可以叫返回是否被加入顯示對象
當然還有其他的辦法,比如檢查容器的contains方法,可以檢查出當前容器中是否含有容器,如果removeChild,那么你檢查結果就是不存在

==================== 氣 死 你 的 分 割 線 ====================

oh。。先寫這么多,肯定不是很完全。。一下子我也沒辦法把我在項目中碰到的任何問題搬出來。。想起來,我在繼續寫。。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蜜桃麻豆视频 | 国产色视频一区 | 手机国产乱子伦精品视频 | 曰批全过程120分钟免费69 | 久久精品一区二区三区国产主播 | 成人午夜视频在线观看免费 | 国产精品久久久久久久av | 91久久国产综合精品女同国语 | 久久国产精品久久久久久 | 韩国三级日本三级香港三级黄 | 国产精品免费成人 | 毛片在哪看| 久久久久久久99 | 国产视频在线免费观看 | 西川av在线一区二区三区 | 在线免费日韩 | 91麻豆精品国产91久久久无需广告 | 19禁国产精品福利视频 | 色婷婷久久久亚洲一区二区三区 | 中文字幕天堂在线 | 亚洲影视在线 | 国产精品一区视频 | 久久久久久亚洲综合影院红桃 | 91短视频在线播放 | 国产高潮失禁喷水爽到抽搐视频 | 91九色视频在线播放 | 最新欧美精品一区二区三区 | 性 毛片 | 大片毛片| 久久草草影视免费网 | 日本在线不卡一区二区 | 九九精品在线观看视频 | 在线观看国产一区二区 | 国产免费福利视频 | 免费观看黄色一级视频 | 日韩视频一区在线 | av中文在线观看 | 欧美羞羞视频 | 国产精品一区二区三区在线 | 国产永久免费观看 | 亚洲午夜精选 |