轉:https://www.cnblogs.com/SkyflyBird/p/7809675.html
關於Sprite或ImageView 創建圖片或替換圖片,使用cocos 2dx 3.10 lua:
一,sprite相關
-- 通過指定的某張圖片創建
local sprite = cc.Sprite:create("**.png")
-- 通過創建紋理緩存來創建
local sprite = cc.Sprite:create() local cache = cc.Director:getInstance():getTextureCache():addImage("**.png") sprite:setTexture(cache)
或者
local sprite = cc.Sprite:create() sprite:initWithFile("**.png")
-- 通過.plist來創建,將小的圖片通過TexturePacker製作生成紋理圖集,這樣有利於減少文件讀取次數,減少OpenGL ES 繪製次數,減少內存消耗
local plistName = "**.plist" -- 判定指定的plist文件是否加載 local isLoad = cc.SpriteFrameCache:getInstance():isSpriteFramesWithFileLoaded(plistName) if not isLoad then -- 加載指定的plist文件 cc.SpriteFrameCache:getInstance():addSpriteFrames(plistName) end -- 根據紋理圖集中的某張圖片創建精靈 local sprite = cc.Sprite:createWithSpriteFrameName("**.png") -- 根據紋理圖集中的某張圖片或幀緩存替換精靈 sprite:setSpriteFrame("***.png") -- local frame = cc.SpriteFrameCache:getInstance():getSpriteFrame("***.png") sprite:setSpriteFrame(frame)
一,ImageView相關
-- 通過指定圖片直接創建
local Image = cc.ImageView:create("**.png",ccui.TextureResType.plistType)
第二個參數默認爲:ccui.TextureResType.localType(或UI_TEX_TYPE_LOCAL)
-- 通過某張圖片進行替換 Image:loadTexture("**.png",ccui.TextureResType.plistType)
以上倘若有編寫不當之處,歡迎留言,以避免誤導其它人,感謝!