關於Layer與錨點

2021-06-26 06:05:42 字數 1538 閱讀 4947

ccnode的anchorpoint被預設設定在(0,0)位置

ccscene的anchorpoint被預設設定在(0.5,0.5)的位置

cclayer的anchorpoint被預設設定在(0.5, 0.5)位置

ccsprite的anchorpoint被預設設定在(0.5,0.5)的位置

說明:ccnode的其它子類如果沒有特殊指定,都是繼承了ccnode的錨點位置及定位方式。

layer

和sprite

有不同,

layer

如果想要設定錨點與position關聯,必須先:

ignoreanchorpointforposition(false);  否則,layer設定position還是設定的layer左下角(0,0)那個點、而不是錨點!

但是layer不管ignoreanchorpointforposition設為何值,layer的錨點對layer設定setscale產生的效果是有影響的!也就是說layer進行縮放的時候與anchorpoint有關,與有沒有呼叫

ignoreanchorpointforposition(false)無關

layer只是預設忽略了錨點對位置的影響,而錨點對layer其他方面的影響依然存在!

layer如果設定ignoreanchorpointforposition(false),則setposition作用的點就是錨點,getposition得到的座標值也是錨點的座標值;

layer如果設定ignoreanchorpointforposition(true)[預設就是這個設定],則setposition作用的點就是(0,0)點,getposition得到的座標值也是(0,0)點的座標值;

layer不能通過setcontentsize()來設定響應觸控的範圍,設定setcontentsize()之後,layer依然能全螢幕響應觸控事件

這裡有一點非常值得注意,就是函式ignoreachorpointforposition(),這個函式的意 思是在設定節點(包括ccscene,cclayer,ccsprite)的座標

的時候是否忽略錨點,我們都知道在設定座標的時候就是用錨點去佔據座標的位置,如果忽略了錨點,那麼就是以左下角為佔據座標的那個位置

查詢官方的api得到的結論是:this is an internal method, only used by cclayer and ccscene. don't call it 

outside framework. the default value is false, while in cclayer and ccscene are true。這個函式的預設值是false,但是對於ccscene和cclayer它的值是true。如果是這樣的話,我們在預設情況下設定ccscene和cclayer的座標的時候就是以 左下角為佔據點的,而不是錨點的(0.5,0.5)。但是

對於ccsprite來說正好是相反的,它對於這個函式的預設值就是false,也就是佔據點就是它 本身的預設錨點(0.5,0.5)。

關於html錨點

1.在a標籤中配置錨點,如下 埋錨點 name tips 基本的注意事項 有用的提示 呼叫 href tips 有用的提示 後來發現,a標籤中除了可以通過name屬性埋錨點,通過id屬性一樣可以。例如 埋錨點 id tips 基本的注意事項 有用的提示 呼叫 href tips 有用的提示 以上兩種...

定位與錨點

只能用定位來實現層疊的效果 absolute預設為瀏覽器視窗 position static absolute relative fixed inherit 1.static 預設定位方式 2.absolute 絕對定位,將物件從文件流中完全脫離出來,使用left right top bottom進...

Unity UGUI軸心點與錨點

一 軸心點 pivot 當前image的軸心點所在位置,注意工具欄設定為 二 錨點 anchors 在image上由四個三角形組成的像風車一樣的圖示就是錨點。當四個風車在一起時,面板中屬性為pos x pos y width height 當四個風車全部分開時,面板中屬性為left pos x po...