cocos2d-x 3.4版本,videoPlayer和webView上添加sprite等cocos控件

本帖源于小弟自己在项目过程中为了解决在cocos2d-x中实现ios里videoPlayer自定义控件的需求,所以挖出来大神的一个帖子
http://www.cocoachina.com/bbs/read.php?tid=235430&page=e&#a

不过大神帖子是针对cocos2d-x 3.2的,cocos进化到3.4之后似乎不是很一样了,小弟入行太浅,也不是很懂,所以就自己根据大神的帖子搞了搞,思路和大神是一样滴:
由于目测videoplayer控件是ios原生的uiview控件,跟cocos的绘图方式不是一个级别,所以videoplayer在添加的时候根本就没有添加到cocos的图层里,而是在图层上面新加了一个uiview控件;
解决方法呢,在appController.mm文件里先把_viewController设置成透明:

?


1

  _viewController.view.backgroundColor = [UIColor clearColor];

然后创建一个新的uiviewcontroller来放置videoplayer的视图和cocos自己的图层,先添加video层,后加cocos层,以便cocos层把video层盖住:

appController.h里:

?


1

 @property(nonatomic, readonly) UIView* videoView;

appController.mm里:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

   _viewController.view.tag = 3;    

   UIViewController* uiVC = [[UIViewController alloc] initWithNibName:nil bundle:nil];

   uiVC.view.frame = [UIScreen mainScreen].bounds;

   _videoView = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] bounds]];

   _videoView.tag = 1;           //设置tag以便之后把Video层取出来~

    

   [uiVC.view addSubview:_videoView];

   [uiVC.view addSubview:_viewController.view];

// Set RootViewController to window

    if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0)

    {

        // warning: addSubView doesn‘t work on iOS6

        [window addSubview: uiVC.view];

    }

    else

    {

        // use this method on ios6

        [window setRootViewController:uiVC];

    }

接下来就可以打开UIVideoPlayer-ios.mm文件了,找到文件中

?


1

[eaglview addSubview:self.moviePlayer.view];

这一句,改成

?


1

[[eaglview.superview viewWithTag:1] addSubview:self.moviePlayer.view];   //在eaglview的父视图里找到tag=1的子视图,也就是实现设置好的Video视图。

就可以了~

时间: 2024-11-06 23:50:55

cocos2d-x 3.4版本,videoPlayer和webView上添加sprite等cocos控件的相关文章

OpenCV 2.2版本以上显示图片到 MFC 的 Picture Control 控件中

OpenCV 2.2 以及后面的版本取消掉了 CvvImage.h 和CvvImage.cpp 两个文件,直接导致了苦逼的程序员无法调用里面的显示函数来将图片显示到 MFC 的 Picture Control 控件中.为此,网上很多人表示只要将那两个文件人为的提取出来然后放到工程里面就解决问题了,也提供了两个文件的下载,但是这麻烦不说,还会导致一些奇奇怪怪的报错(至少本人是这样的,很崩溃!).所以在了解了一些gdi绘图之后结合网上的代码写了如下的函数,只需调用就可以将OpenCV的图片显示在上面

在WebView上添加手势没有响应

今天在webView 上添加了一个点击手势,然后当运行的时候,手势没有响应,查了半天,原来是因为与webview本身的手势冲突了,所以要遵循手势的代理方法,然后实现手势的如下代理方法就行了. //添加手势,设置手势的代理 _tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap)]; _tap.delegate = self; //实现如下的方法,还可以对捕获到的手势进行判断,如果是手

Xamarin.Forms自定义用户界面控件实现一个HybridWebView(混合webview)

原文:Implementing a HybridWebView呈现一个特定于平台的视图 Xamarin.Forms自定义用户界面控件应该来自视图类(View class),用于在屏幕上放置布局和控件.本文演示了如何为HybridWebView(混合webview)自定义控件创建自定义渲染器,该控件演示了如何增强特定平台的web控件,以允许从JavaScript调用c#代码. 每一个Xamarin.Forms视图为每个创建本地控件实例的平台提供了相应的渲染器.当一个视图被Xamarin.Forms

Android 下拉刷新控件SwipeRefreshLayout结合WebView使用

SwipeRefreshLayout 是谷歌官方下拉刷新控件,4.0以下的版本需要用到  android-support-v4.jar包才能用到 android-support-v4.jar 包下载地址:http://download.csdn.net/detail/h7870181/7784247 官网API地址:https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html G

背水一战 Windows 10 (64) - 控件(WebView): 加载指定 HttpMethod 的请求, 自定义请求的 http header, app 与 js 的交互

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(WebView) 加载指定 HttpMethod 的请求 自定义请求的 http header app 与 js 的交互 示例1.演示 WebView 如何加载指定 HttpMethod 的请求以及如何自定义请求的 http headerWebApi/Controllers/WebViewPostController.cs /* * 用于 WebView 演示“如何加载指定 HttpMethod 的请求,以及如何自

多种格式多种字体版本的条形码控件USPS Postnet &amp; Intelligent Mail Barcode Font Package

IDAutomation的USPS Postnet & Intelligent Mail Barcode Font Package在六个不同的格式中包含了若干不同的字体版本.其中包括字体工具,宏和源代码,以帮助将字体集成到应用程序中 具体功能: 提供的字体工具- 提供的这些字体工具可用于协助应用程序的集成.这些字体工具可以为条形码字体自动地格式化开始,结束及校验字符.所含的可用字体工具如下: .NET 框架程序集DLL (100%托管代码) C++ 头文件 C# .NET类库 Visual Ba

ActiveReports报表控件V11 SP1版本正式发布!

无需编码,即可轻松搞定商业报表六大需求的 ActiveReports 报表控件,于今日宣布正式发布 V11 SP1 版本,并在其 官方网站 提供免费下载. V11 版本是 ActiveReports 报表控件产品史上的一次重大更新,已于 2016 年年底面向全球发布,包括更高效的报表引擎.更多数据源格式的支持.Excel 文件导入.多 Y 轴组合图表等,为开发人员在软件系统中的报表开发带来更高的开发效率. 本次发布的 V11 SP1 版本,在 HTML5Viewer,图表功能,多数据源支持等方面

Android:控件WebView显示网页

WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient setWebClient:主要处理解析,渲染网页等浏览器做的事情 setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 WebViewClient就是帮助WebView处理各种通知.请求事件的. 在AndroidManifest.xml设置访问网络权限:

Android:控件WebView显示网页 -摘自网络

WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient setWebClient:主要处理解析,渲染网页等浏览器做的事情 setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 WebViewClient就是帮助WebView处理各种通知.请求事件的. 在AndroidManifest.xml设置访问网络权限: