Sprite和ImageView区别
来源:互联网 发布:linux ping 编辑:程序博客网 时间:2024/04/30 12:12
1. ImageView 的方式:封装的Widget组件ImageVIew实现了类似按钮的监听事件,所以处理起来很方便直接
ImageView*_pPokerImageView;_pPokerImageView = ImageView::create(tmpStr);_pPokerImageView->setAnchorPoint(Vec2(0, 0));_pPokerImageView->setTouchEnabled(true);addChild(_pPokerImageView);_pPokerImageView->addTouchEventListener([this](Ref* pSender,Widget::TouchEventType type){if (type == Widget::TouchEventType::ENDED){PokerEventStatus tmpStatus = (getStatusValue() == SelectedStatus) ? NormalStatus : SelectedStatus;updateSelectedSigned(tmpStatus);if (getStatusValue() == SelectedStatus){updateSelectedSigned(SelectedStatus);}else{updateSelectedSigned(NormalStatus);}}
_spriteListener = EventListenerTouchOneByOne::create();_spriteListener->onTouchBegan = [this](Touch* touch, Event* event) -> bool {/* 获取事件所绑定的 target */auto target = event->getCurrentTarget();/* 获取当前点击点所在相对按钮的位置坐标 */Vec2 locationInNode = target->convertToNodeSpace(touch->getLocation());Size targetSize = target->getContentSize();Rect rect = Rect(_pPokerSprite->getPositionX(), _pPokerSprite->getPositionY(), COCOSNODE_WIDTH(_pPokerSprite), COCOSNODE_HEIGHT(_pPokerSprite));bool isClicked = rect.containsPoint(locationInNode);/* 点击范围判断 */if (isClicked){PokerEventStatus tmpStatus = (getStatusValue() == SelectedStatus) ? NormalStatus : SelectedStatus;updateSelectedSigned(tmpStatus);if (getStatusValue() == SelectedStatus){updateSelectedSigned(SelectedStatus);}else{updateSelectedSigned(NormalStatus);}}/* 此处一定要动态设置事件吞噬,否则层只会响应最后一张加入精灵的事件 */_spriteListener->setSwallowTouches(isClicked);return isClicked;};在init时同时初始化精灵,加入层
_pPokerSprite = Sprite::createWithTexture(pChessTexture, tmpRect);_pPokerSprite->setAnchorPoint(Vec2(0, 0));addChild(_pPokerSprite);然后在onEnter里加入监听
void TBBullFightPoker::onEnter(void){Node::onEnter();do {CC_BREAK_IF(!_pPokerSprite);_eventDispatcher->addEventListenerWithSceneGraphPriority(_spriteListener, _pPokerSprite);} while (0);}同样在onExit里删除监听:
void TBBullFightPoker::onExit(void){_eventDispatcher->removeEventListener(_spriteListener);Node::onExit();}
0 0
- Sprite和ImageView区别
- cocos2dx lua Sprite和ImageView切换图片
- cocos-Lua中Sprite与ImageView加载图片的区别
- Unity2D:Sprite和UI Image的区别
- Unity2D:Sprite和UI Image的区别
- ImageView和ImageButton的区别
- cocos2dx中精灵点击事件处理的两种方式——Sprite和ImageView
- 关于继承Sprite 和Node节点的区别
- Unity中Sprite和UI Image的区别
- android:ImageView 和ImageButton的区别
- ImageView scaleType , src和backgroud的区别
- ios button.imageview 和setimage的区别
- ImageView设置background和src的区别
- 【ImageView】android中src和background区别
- ImageView的src和background属性区别
- Unity3D -- 图形 -- Sprite Editor和Sprite Packer
- scale9Sprite和sprite
- Sprite、MovicClip、Shape的区别
- 进制转换
- hdu1195 Open the Lock(bfs水题)
- 机器学习面试问题1
- 点击隐藏div存在iframe无效
- 回首往事----那年的自己
- Sprite和ImageView区别
- 人脸检测 coords 到屏幕 coords
- apk文件反编译
- Mac OS X 使用gdb
- [leetcode] 190. Reverse Bits
- jsp获取当前最新浏览器
- 原型模式深入--使用序列化机制实现对象的深克隆
- ios常见错误日志
- 应用再签名