關(guān)于cocos3.x getTextureForKey的那些事

這個(gè)函數(shù) 我在看3.10的display框架的時(shí)候發(fā)現(xiàn)的
一直不知道有什么作用,本著曾國藩上頁不讀完不讀下頁,一本書不讀完不讀下本的精神
決定追本溯源

以下就是我發(fā)現(xiàn)的代碼

local fileUtils = cc.FileUtils:getInstance()
function display.getImage(imageFilename)
    local fullpath = fileUtils:fullPathForFilename(imageFilename)
    return textureCache:getTextureForKey(fullpath)
end

前面的都很好理解 什么fileUtils 文件類 textureCache其實(shí)是個(gè)
cc.Director:getInstance():getTextureCache()

getTextureForKey是什么呢
起先我以為是獲得一張圖片紋理 然后設(shè)置到精靈里面去
后來發(fā)現(xiàn)并不是我想的那樣

目前我發(fā)現(xiàn)了這個(gè)函數(shù)有3個(gè)作用

判斷你的plist png 紋理是否加載到內(nèi)存里面了

    cc.SpriteFrameCache:getInstance():addSpriteFrames("filpCardAllSpr.plist", "filpCardAllSpr.png")

    local fileUtils = cc.FileUtils:getInstance()
    local fullpath = fileUtils:fullPathForFilename("filpCardAllSpr.png")
    local texture = cc.Director:getInstance():getTextureCache():getTextureForKey(fullpath)
    dump(texture, "tex = ")

輸出
"tex = " = userdata: 0x0a78e858
如果沒有addSpriteFrames
"tex = " = nil

之后在C++源碼里面搜getTextureForKey
發(fā)現(xiàn)還有另外2個(gè)用法

    dump(texture:getPixelFormat(), "pixel format: ")
    dump(texture:hasPremultipliedAlpha(), "premultiplied alpha: ")

輸出

"pixel format: " = 2
"premultiplied alpha: " = true

那么 這2個(gè)函數(shù)又是干什么的呢
texture:getPixelFormat 給出的翻譯是

取得當(dāng)前紋理的貼圖像素格式徙歼。

參考網(wǎng)頁:http://www.cnblogs.com/sevenyuan/archive/2013/07/17/3195798.html

texture:hasPremultipliedAlpha()給出的翻譯是

是否有ALPHA漸變值

參考網(wǎng)頁:同上
參考網(wǎng)頁AE中的通道預(yù)乘:http://www.cgspread.com/7677.html

"pixel format: " = 2
那這個(gè)2又對應(yīng)的是什么呢
發(fā)現(xiàn)是對應(yīng)RGBA8888的
這樣就可以判斷紋理的格式了

cc.TEXTURE2_D_PIXEL_FORMAT_AUTO = 0x0
cc.TEXTURE2_D_PIXEL_FORMAT_BGR_A8888 = 0x1
cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888 = 0x2
cc.TEXTURE2_D_PIXEL_FORMAT_RG_B888    = 0x3
cc.TEXTURE2_D_PIXEL_FORMAT_RG_B565   = 0x4
cc.TEXTURE2_D_PIXEL_FORMAT_A8        = 0x5
cc.TEXTURE2_D_PIXEL_FORMAT_I8        = 0x6
cc.TEXTURE2_D_PIXEL_FORMAT_A_I88     = 0x7
cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A4444     = 0x8
cc.TEXTURE2_D_PIXEL_FORMAT_RGB5_A1       = 0x9
cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC4        = 0xa
cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC4A       = 0xb
cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC2        = 0xc
cc.TEXTURE2_D_PIXEL_FORMAT_PVRTC2A       = 0xd
cc.TEXTURE2_D_PIXEL_FORMAT_ETC           = 0xe
cc.TEXTURE2_D_PIXEL_FORMAT_S3TC_DXT1     = 0xf
cc.TEXTURE2_D_PIXEL_FORMAT_S3TC_DXT3     = 0x10
cc.TEXTURE2_D_PIXEL_FORMAT_S3TC_DXT5     = 0x11
cc.TEXTURE2_D_PIXEL_FORMAT_DEFAULT       = 0x0

2017年7月10日21:46:50
新發(fā)現(xiàn)一個(gè)用法 那就是 不用plist 創(chuàng)建一張大圖中的一部分作為紋理

local BugSprite = class("BugSprite", function(imageFilename)
    local texture = display.getImage(imageFilename)
    local frameWidth = texture:getPixelsWide() / 3
    local frameHeight = texture:getPixelsHigh()

    local spriteFrame = display.newSpriteFrame(texture, cc.rect(0, 0, frameWidth, frameHeight))
    local sprite = display.newSprite(spriteFrame)
    sprite.animationName_ = imageFilename
    sprite.frameWidth_ = frameWidth
    sprite.frameHeight_ = frameHeight
    return sprite
end)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鳖枕,隨后出現(xiàn)的幾起案子魄梯,更是在濱河造成了極大的恐慌,老刑警劉巖宾符,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酿秸,死亡現(xiàn)場離奇詭異,居然都是意外死亡魏烫,警方通過查閱死者的電腦和手機(jī)辣苏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門肝箱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人稀蟋,你說我怎么就攤上這事煌张。” “怎么了退客?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵骏融,是天一觀的道長。 經(jīng)常有香客問我井辜,道長绎谦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任粥脚,我火速辦了婚禮窃肠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刷允。我一直安慰自己冤留,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布树灶。 她就那樣靜靜地躺著纤怒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪天通。 梳的紋絲不亂的頭發(fā)上泊窘,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機(jī)與錄音像寒,去河邊找鬼烘豹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诺祸,可吹牛的內(nèi)容都是我干的携悯。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼筷笨,長吁一口氣:“原來是場噩夢啊……” “哼憔鬼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起胃夏,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤轴或,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后构订,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侮叮,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年悼瘾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了囊榜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡亥宿,死狀恐怖卸勺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烫扼,我是刑警寧澤曙求,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站映企,受9級特大地震影響悟狱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜堰氓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一挤渐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧双絮,春花似錦浴麻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至焚挠,卻和暖如春膏萧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蝌衔。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工榛泛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胚委。 一個(gè)月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓挟鸠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親亩冬。 傳聞我的和親對象是個(gè)殘疾皇子艘希,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容