|
- cc.ImageView.ClassName = "ImageView"
-
- function cc.ImageView:saveToXmlNode(xmlNode)
- cc.Widget.saveToXmlNode(self , xmlNode);
-
- xmlNode.Texture = getUITexture(self:getTextureFile() , self:getImageTexType());
- xmlNode.Scale9Enabled = self:isScale9Enabled();
- if xmlNode.Scale9Enabled then
- xmlNode.CapInsets = self:getCapInsets();
-
- local scale9 = tolua.cast(self:getVirtualRenderer() , "cc.Scale9Sprite");
- if scale9 then
- xmlNode.BorderEnabled = scale9:isBorderEnabled();
- xmlNode.Border = scale9:getBorder();
- end
- end
-
- end
-
- function cc.ImageView:loadFromXmlNode(xmlNode)
- cc.Widget.loadFromXmlNode(self , xmlNode);
-
- setUITexture(self.loadTexture , self , xmlNode.Texture);
-
- self:setScale9Enabled(xmlNode.Scale9Enabled);
-
- if self:isScale9Enabled() then
- self:setCapInsets(xmlNode.CapInsets);
- if xmlNode.BorderEnabled then
- self:setBorderEnabled(true);
- self:setBorder(xmlNode.Border);
- end
- end
- end
-
-
- function cc.ImageView:extend(node)
- cc.Widget:extend(node);
- node:setName("ImageView")
- end
-
-
- function cc.ImageView:createNode()
- local layer = cc.ImageView:create();
- cc.ImageView:extend(layer);
- return layer;
- end
-
- -- 设置默认值
- function cc.ImageView:setDefaults()
- self:loadTexture("res/default/image.png");
- self:setCapInsets(cc.rect(0,0,0,0));
- end
-
- function cc.ImageView:loadTextureFromPlist(filename)
- --如果资源不存在加载将会崩溃
- local cache = cc.SpriteFrameCache:getInstance()
- local spriteFrame = cache:getSpriteFrameByName(filename);
- if tolua.isnull(spriteFrame) then
- logD(filename)
- logD("纹理找不到,崩溃被阻止!")
- if isWin32Platform() then
- showTooltip("纹理找不到,崩溃被阻止!")
- end
- uploadLogs(GAME_ERROR_TYPE.TEXTURE)
- return
- end
- self:loadTexture(filename, cc.TextureResType.plistType);
- end
-
- --[[
- 这个接口的存在,是为了解决以下BUG
- 如果ImageView之前是通过plist获取纹理,
- 然后在通过读取单个图片设置纹理,就会显示错乱
- 解决方法就是在setTexture()之前调用 setDefaults()
- --]]
- function cc.ImageView:setTexture2(texture)
- if not texture then
- return
- end
- self:setDefaults();
- self:setTexture(texture)
- end
-
- -- 重新加载这个控件的所有图片
- function cc.ImageView:postloadImage()
- local isScale9 = self:isScale9Enabled();
- self:setScale9Enabled(not isScale9);
- self:setScale9Enabled(isScale9);
- end
-
- -- 收集这个控件用到了哪些PList文件
- function cc.ImageView:collectPListFiles()
- local files = {};
- collectPListFile(files , self:getTextureFile() , self:getImageTexType());
-
-
-
- function getParent(node, path)
- local parent = node:getParent()
- if parent then
- local nameParent = parent:getName()
- path = nameParent.. "\\"..path
-
- return getParent(parent, path)
- else
- return path
- end
- end
-
- local nodePath = getParent(self, self:getName());
-
- for k,v in pairs(files) do
- print("plist = " .. v .. ", nodePath = ".. nodePath)
- end
-
- return files;
- end
|