cocos不用cocos2d js 进度条条怎么实现血条

cocos2d-x视频控件VideoPlayer的用户操作栏进度条去除
cocos2d-x视频控件VideoPlayer的用户操作栏进度条去除
cocos目前出了新的视频播放器控件,仅支持ios和android平台,不支持window平台。项目打算使用一段视屏片头,所以使用该视频控件来播放片头。
目前遇到两个问题:
(1)视频控件移除有问题,会报异常。
(2)视频控件有用户操作栏,用户点击屏幕会停止视频播放。
对于第一个问题,主要是移除控件时冲突引起的,目前简单处理是做一个延时处理,先stop视频播放,然后一个Action移除自身,如下:
local function onComplete()
video:stop()
video:runAction(
cc.Sequence:create(
cc.CallFunc:create(callback),
cc.RemoveSelf:create()
第二个问题处理起来比较麻烦,做法是去除控件实现中的用户点击和用户操作栏。
在android版本里视频会有一个点击屏幕暂停和恢复的功能,这个是在java层实现的,直接注释掉点击的响应,就可以屏蔽用户的操作。
Cocos2dxVideoView.java 201
public boolean onTouchEvent(MotionEvent event) {
if((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP)
if (isPlaying()) {
} else if(mCurrentState == STATE_PAUSED){
return true;
在ios版本里视频会有一个操作栏,这个oc代码里的视频控件有个样式,更改controlStyle 这个属性,即可隐藏进度条,另外修改userInteractionEnabled 属性,让视频不响应点击事件。
UIVideoPlayer-ios.mm
self.moviePlayer.allowsAirPlay = false
self.moviePlayer.controlStyle = MPMovieControlStyleNone
self.moviePlayer.view.userInteractionEnabled = false
除了上述问题,该视频控件目前只能遮盖在用户显示层的上层,对于某些比如嵌入播放之类操作,依然有很多问题,希望cocos能后续继续完善。
我的热门文章
即使是一小步也想与你分享cocos2dx 加载 进度条样式 - cocos2dx技术 - 泰课在线 - 国内专业的Unity在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG|UI平面设计|前端开发 - Powered By EduSoho
cocos2dx 加载 进度条样式
& & & & cocos2dx 加载 进度条样式首先,我要说的是:这次我要写的主题是进度条。 额,等等,先收起你手里愤怒的西瓜刀。我也才知道TestCpp也有这个例子啊。不过TestCpp里的只有label的变化,而我的多加了个进度条。
恩,步骤如下:
1、创建label和progressTimer;
2、加载资源,每加载一张都调用回调函数;
3、加载完成,进入新的界面。
首先看下头文件:HelloWorld.h
#ifndef&__HELLOWORLD_SCENE_H__&&
#define&__HELLOWORLD_SCENE_H__&&
#include&"cocos2d.h"&&
class&HelloWorld&:&public&cocos2d::Layer&&
&&&&HelloWorld():m_numSp(20),m_loadedSp(0),loadProgress(NULL){};&&
&&&&static&cocos2d::Scene*&createScene();&&
&&&&virtual&bool&init();&&&&
&&&&void&loadingCallback(Object*&pSender);&&
&&&&void&gotoNewLayer();&&
&&&&CREATE_FUNC(HelloWorld);&&
private:&&
&&&&cocos2d::ProgressTimer*&loadP&&
&&&&cocos2d::LabelTTF*&percentL&&
&&&&cocos2d::LabelTTF*&loadL&&
&&&&int&m_numSp;&&
&&&&int&m_loadedSp;&&
#endif&//&__HELLOWORLD_SCENE_H__&&
Size&visibleSize&=&Director::getInstance()-&getVisibleSize();&&
Point&origin&=&Director::getInstance()-&getVisibleOrigin();&&
loadLabel&=&LabelTTF::create("Loading:","Arial",20);&&
loadLabel-&setPosition(Point(visibleSize.width/2-30,visibleSize.height/2+30));&&
this-&addChild(loadLabel,1);&&
percentLabel&=&LabelTTF::create("0%","Arial",20);&&
percentLabel-&setPosition(Point(visibleSize.width/2+35,visibleSize.height/2+30));&&
this-&addChild(percentLabel,2);&&
auto&loadBg&=&Sprite::create("sliderTrack.png");&&
loadBg-&setPosition(Point(visibleSize.width/2,visibleSize.height/2));&&
this-&addChild(loadBg,1);&&
loadProgress&=&ProgressTimer::create(Sprite::create("sliderProgress.png"));&&
loadProgress-&setBarChangeRate(Point(1,0));&&
loadProgress-&setType(ProgressTimer::Type::BAR);&&
loadProgress-&setMidpoint(Point(0,1));&&
loadProgress-&setPosition(Point(visibleSize.width/2,visibleSize.height/2));&&
loadProgress-&setPercentage(0.0f);&&
this-&addChild(loadProgress,2);&&
2、加载图片
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld1.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld2.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld3.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld4.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld5.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld6.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld7.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
Director::getInstance()-&getTextureCache()-&addImageAsync("HelloWorld.png",this,callfuncO_selector(HelloWorld::loadingCallback));&&
3、图片加载后的回调函数:
void&HelloWorld::loadingCallback(Object*&pSender)&&
&&&&++m_loadedSp;&&
&&&&char&buf_str[16];&&
&&&&sprintf(buf_str,"%d%%",(int)(((float)m_loadedSp&/&m_numSp)&*&100),m_numSp);&&
&&&&percentLabel-&setString(buf_str);&&
&&&&float&newPercent&=&100&-&((float)m_numSp&-&(float)m_loadedSp)/((float)m_numSp/100);&&
&&&&loadProgress-&setPercentage(newPercent);&&
&&&&if(m_loadedSp&==&m_numSp)&&
&&&&&&&&this-&removeChild(loadProgress);&&
&&&&&&&&this-&removeChild(percentLabel);&&
&&&&&&&&this-&removeChild(loadLabel);&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&this-&gotoNewLayer();&&
4、进入新的界面
void&HelloWorld::gotoNewLayer()&&
&&&&auto&size&=&Director::getInstance()-&getWinSize();&&
&&&&auto&sp&=&Sprite::create("HelloWorld.png");&&
&&&&sp-&setPosition(Point(size.width/2,size.height/2));&&
&&&&this-&addChild(sp,1);&&
因为代码里注释都写的挺详细的,所以我也就不说太多废话了。
你还没有登录,请先或!
Unity3D技术交流1群
泰课Unity3D公开课
工作时间:9:00 - 18:30
北京客服:010 -
广州客服:020 -cocos creator 怎么添加进度条_百度知道怎么让暂停中的进度条重新动起来_cocos2dx吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:8,303贴子:
怎么让暂停中的进度条重新动起来收藏
CCSprite *en=CCSprite::create("力量表2.png");//进度条
spriteName_1 = CCProgressTimer::create(en);to2= CCProgressTo::create(2, 100);//CCProgressTo指针spriteName_1-&runAction(CCRepeatForever::create(to2));spriteName_1-&stopAllActions();我通过这让它停止了但是怎么重新开始就不知道了
达内cocos2dx培训班,运用5位骨灰级讲师+3位终身制职业发展顾问教1名学员!实战教学,成立14年,全国「34个城市,120家校区」!立即预约—免费体验!
楼主可以不用CCRepeatForever::create(to2)来创建该动作,可以考虑用sequence,或者其他都行,然后将其分为两个动作,先执行一个动作
等你完成了其他的事情再去执行剩下的动作
对呀,用CCSequence呀 ,CCArray* arr = CCArray::create();arr-&addObject(to1)arr-&addObject(CCDelayTime::create(2))arr-&addObject(to2)CCSequence *se = CCSequence::(arr)spriteName_1-&runAction(se)
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 cocos 血条 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信