请选择 进入手机版 | 继续访问电脑版
查看: 5578|回复: 12

[教程] [无脑码农CrossApp笔记]--HTTP加载网络图片

[复制链接]
最佳答案
0 
无脑码农 发表于 2015-3-13 17:03:43 | 显示全部楼层 |阅读模式
本帖最后由 无脑码农 于 2015-3-13 17:06 编辑

本节贴出如何通过http请求网络图片,并绘制到屏幕上

发送请求
  1. /**
  2. 编译到Android平台之后注意添加联网权限
  3. **/
  4.         CCHttpRequest* request = new CCHttpRequest();
  5.         // 请求图片的url
  6.         request->setUrl("http://www.9miao.com/template/dean_hotspot_141011/deancss/logo.png");
  7.         //请求方式
  8.         request->setRequestType(CCHttpRequest::kHttpGet);
  9.         //设置回调
  10.         request->setResponseCallback(this, httpresponse_selector(FirstViewController::onHttpRequestImageCompleted));
  11.         // 设置tag
  12.         request->setTag("image");
  13.         CCHttpClient::getInstance()->send(request);
  14.         request->release();
复制代码
接受图片
  1. void FirstViewController::onHttpRequestImageCompleted(CCHttpClient *sender, CCHttpResponse *response)
  2. {
  3.         if (!response)
  4.         {
  5.                 return;
  6.         }
  7.         if (!response->isSucceed())
  8.         {
  9.                 CCLog("response failed");
  10.                 CCLog("error buffer: %s", response->getErrorBuffer());
  11.                 return;
  12.         }
  13.         vector<char> *buffer = response->getResponseData();
  14.         //创建一个CCImage
  15.         CCImage* img = new CCImage();
  16.         img->initWithImageData((unsigned char*)buffer->data(), buffer->size());

  17.         //创建一个纹理CAImage
  18.         CAImage* texture = new CAImage();
  19.         bool isImg = texture->initWithImage(img);
  20.         img->release();

  21.         //通过CAImageView绘制到屏幕
  22.         CAImageView* iv = CAImageView::createWithImage(texture);
  23.         iv->setFrame(CCRect(0, 0, 200, 200));
  24.         this->getView()->addSubview(iv);
复制代码
如果成功,将会看到9秒社团的logo
最佳答案
0 
894613921 发表于 2015-3-13 18:08:56 | 显示全部楼层
嗯 谢谢你提供的思路  我不应该把目光集中在CrossApp的API 毕竟它还不够完善 还多功能的实现可以 考虑cocos2dx 我应该去学习学习cocos2dx

点评

cocos2dx是做游戏的,有cocos2dx做应用电量扛不住···CROSSAPP是做应用的···如果你做游戏就去学习cocos2dx,做应用还是学学CROSSAPP吧···  详情 回复 发表于 2015-3-16 00:42
最佳答案
0 
foggy 发表于 2015-3-16 00:42:17 | 显示全部楼层
894613921 发表于 2015-3-13 18:08
嗯 谢谢你提供的思路  我不应该把目光集中在CrossApp的API 毕竟它还不够完善 还多功能的实现可以 考虑cocos ...


cocos2dx是做游戏的,有cocos2dx做应用电量扛不住···CROSSAPP是做应用的···如果你做游戏就去学习cocos2dx,做应用还是学学CROSSAPP吧···虽然还是初期,但是简单的应用还是能做的··

点评

但是CROSSAPP的开发者文档明显不健全 她的网络请求明显用的是cocos2d 而且CROSSAPP的编程风格也很像 . . . 没有完整的开发文档 开发者很头疼的 . . . 只好自己去借鉴cocos2d 总不能老做伸手党 求代码吧 . . .  详情 回复 发表于 2015-3-16 18:00
最佳答案
0 
894613921 发表于 2015-3-16 18:00:41 | 显示全部楼层
foggy 发表于 2015-3-16 00:42
cocos2dx是做游戏的,有cocos2dx做应用电量扛不住···CROSSAPP是做应用的···如果你做游戏就去学习co ...

但是CROSSAPP的开发者文档明显不健全 她的网络请求明显用的是cocos2d  而且CROSSAPP的编程风格也很像 . . . 没有完整的开发文档 开发者很头疼的 . . . 只好自己去借鉴cocos2d 总不能老做伸手党 求代码吧 . . .
最佳答案
0 
yueye1235 发表于 2015-4-10 01:27:15 | 显示全部楼层
建议直接把工程放上,自己贴代码的时候,作为新手 不知道添加哪些头文件,也不知道有些方法为啥报错
最佳答案
0 
let_go 发表于 2015-5-5 00:30:46 | 显示全部楼层
来看看码农
最佳答案
0 
cply 发表于 2015-5-8 17:30:41 | 显示全部楼层
请问,调用CCImage时报错,未定义,要怎么解决?

点评

CAImage* img = new CAImage(); img->initWithImageData((unsigned char*)buffer->data(), buffer->size()); //创建一个纹理CAImage CAImageView* texture = new CAImageView(); bool isImg = texture->initWi  详情 回复 发表于 2015-6-1 16:15
最佳答案
0 
succ 发表于 2015-6-1 16:15:00 | 显示全部楼层
cply 发表于 2015-5-8 17:30
请问,调用CCImage时报错,未定义,要怎么解决?

CAImage* img = new CAImage();
        img->initWithImageData((unsigned char*)buffer->data(), buffer->size());

        //创建一个纹理CAImage
        CAImageView* texture = new  CAImageView();
        bool isImg = texture->initWithImage(img);

        img->release();
我改成了这样
最佳答案
0 
x771248812 发表于 2015-6-1 17:15:21 | 显示全部楼层
看了之后依旧没有思路,代码是断断续续的

点评

www.9miaoketang.com 上面有视频  详情 回复 发表于 2015-6-1 18:17
您需要登录后才可以回帖 登录 | 注册

本版积分规则

推荐阅读 More>

© 2001-2015 9秒社团

合作伙伴

公司简介 | 联系方式
COPYRIGHT©2015 ZHONGQINGLONGTU NETWORK CO.LTD ALL RIGHTS RESERVED.ICP备11023195号-4
北京中清龙图网络技术有限公司
返回顶部 返回列表