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

首頁 > 辦公 > Flash > 正文

Flash as3:絕對坐標與相對坐標

2020-07-17 13:18:39
字體:
來源:轉載
供稿:網友
一個程序員寫一個平面的游戲,一般情況下是看不到UI界面的,里面的每個控件和圖像的移動和位置都是通過代碼來實現,很多團隊把這個數據的任務交給了美工,美工在發圖的時候就把位置都拍好,并且給程序員。通常這里也有兩種模式,一個是給絕對坐標的,這適用于屏幕大小不會改變的,長寬高和位置都是寫死不變的。但是這種模式的程序往往比較小型,相反更多的都是相對坐標,這對于Flash版本的客戶端來說其實是很容易的事情,那么這個坐標到底怎么設置,經歷折磨了我很久。
首先就是直接設置
mc1.x=??; mc1.y=??;
這樣mc1就設置好了,as3動態new出來的mc是沒有width的,也沒有height,而他的長和高本身也是不定,假設你在里面加了一張 300x200的圖片,那么他的w和h就會變成300和200,如果你又加了一張400x100的圖片,他的w就會變成400而h不變,這在于相對坐標上對應是復雜了很多的,比如我要讓這個mc完全居中要怎么做?
如果舞臺是1000的寬度,要劇中比較容易 mc1.x = (1000-400)/2; 這樣就居中了,來看原理,首先我們要舞臺居中,很容易就想到一個數字 1000/2 結果是500 但是x對舞臺的中央是不行的 x是左上角,所以這個答案還要再減去 400/2 相當于mc1再左移自己的一般的位置,這樣就完全劇中了,答案就是 1000/2-400/2 那么算式就演化出來了。
所以要居中的答案似乎已經出來了 (stage.stageWidth-mc.width)/2 這個坐標一定是最中間的,但是真的如此嗎?如果舞臺變了呢?如果mc的大小變了呢?他還居中嗎?這樣想想依然是的。
我曾經也是非常理想的認為這是最好的方法,但是實踐告訴我,我錯了,當我需要在mc中繼續增加原件圖片,并且這個圖片也要居中,并且這個圖片要在mc內,并且這個圖片可能大于mc也可能小于mc。來看看情況是怎么樣的。
如果mc2在mc1里,并且mc1大于mc2,很好 mc2.x = (mc1.width-mc2.x)/2; 非常好,很顯然他們對得很齊,并且mc1不需要在舞臺上移動。但是另一種情況呢?通過這個算法也可以得到他們的坐標,但是這個時候mc1.width已經不在是原來的了,因為mc2的width比它大,所以顯然是出錯,算出來的結果是0,那么大的圖片就會和小的圖片”左對齊”了,而更新了舞臺上mc1的位置后mc1的位置是居中了,可是里面的卻錯得一塌糊涂,你又要重新對齊原來的圖像,2個文件就要來回對其,麻煩不錯,很容易對了這個忘了那個,最終結果就是圖像莫名其妙錯位,痛苦。曾經思考過很多,圖像越多就越麻煩。
這個時候很多程序員并不會跳出來,會一直想如何對其,然后一直修復這個問題,其實錯了,我們都錯了,解決問題有時候不可以死腦筋,如果換思路會如何?有想過?換過以后卻是如此的簡單,我們再來看看原理。
首先我們把檢測他的大小,然后運算居中,但是大小會變,算了外面不能顧及里面,算了里面不能顧及外面,那能不能不算呢!答案是肯定的。其實無論如何大小變有一個點是永遠對著舞臺中心的,那就是mc的中心,但是width的大小在變,如何才能讓中心不變呢,這時我想到了一個關鍵字(注冊點),在FlashIDE里也許這個名詞很熟悉,但是到了代碼里可能很難聯想到這個關鍵字,所以我們要做的是讓mc的中心點永遠是0點就可以了。也就是說00點是中間而不是左上角!這個時候我們再來對齊看看??
mc1.x = stage.stageWidth/2;
mc2.x = -(mc2.width/2);
現在再來看看,無論里里面是大是小,永遠直接左移,先把自己的中心確定,然后在把這個中心對到舞臺的中心,居中行為最終外美的完成了。當然左對齊右對齊都可以用這個思路,你既然設置是00點的位置,那就先讓你的圖像和00對齊,再讓00去對別的地方,這樣迭代就不容易出錯了。原來就是如此簡單的問題,因為開始的時候就錯了,于是越來越麻煩,很多時候問題都是類似的,一定要注意。此問題經歷深刻,故發表一下!最后來句廢話,有興趣轉載請著名出處,謝謝!謝謝支持!謝謝大家。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美成人免费在线视频 | 亚洲第一成人在线 | 中文字幕在线观看网址 | 娇妻被各种姿势c到高潮小说 | 一级电影免费 | 日本一区二区不卡高清 | 999精品久久久 | 他也色在线视频 | 久久免费视屏 | 欧美色大成网站www永久男同 | 日本黄色一级视频 | 精品国产一区二区三区四区阿崩 | 暴力强行进如hdxxx | 懂色av懂色aⅴ精彩av | 欧美日本在线播放 | 国产精品久久久麻豆 | a级在线| 看片一区| 久久精品之| 19禁国产精品福利视频 | 欧美老外a级毛片 | 国产第一页精品 | 手机免费看一级片 | 国产亚洲精品久久久久5区 日韩一级片一区二区三区 国产精品久久久久av | 密室逃脱第一季免费观看完整在线 | 在线a亚洲视频播放在线观看 | 性生活视频软件 | 全黄裸片武则天艳史 | 97超级碰碰人国产在线观看 | 青青草成人av | www.精品一区| 模特三级在线观看 | 久久黄色影院 | 国产精品亚洲精品久久 | 福利四区 | 国产1区在线观看 | 亚洲一级片免费观看 | 成人三级电影网 | h视频在线免费看 | 欧美黄色视屏 | 欧美成人一区二区视频 |