当前位置: 编程技术>综合
本页文章导读:
▪struts配置文件l中使用include 标签 引入另外一个在jar中的struts文件 最近遇到了一个需求:有一个master struts.xml, 该文件中需要引入若该子模块中struts.xml.
但是这些子模块都以jar包的方式放入主模块的classpath中,当然它们的struts.xml也在jar中, 这种情形主模.........
▪cocos2d-x CCScrollView和CCTableView的使用 在游戏和应用中经常要实现左右滑动展示游戏帮助、以列表显示内容的UI效果,就像android中的Gallery和ListView。本文通过CCScrollView和CCTableView分别来实现这两个效果,基于cocos2d-x 2.0.4版本。
首先.........
▪jQuery编辑器KindEditor4.1.4代码高亮显示设置 编辑器KindEditor官网: http://www.kindsoft.net/
1、需要加载的JS和CSS文件为:
<script src=/blog_article/"kindeditor-4.1.4/kindeditor.js" type="text/javascript" charset="utf-8"></script>
<script src=/blog_article/&quo........._/font/index.html>
[1]struts配置文件l中使用include 标签 引入另外一个在jar中的struts文件
来源: 互联网 发布时间: 2013-11-10
最近遇到了一个需求:有一个master struts.xml, 该文件中需要引入若该子模块中struts.xml.
但是这些子模块都以jar包的方式放入主模块的classpath中,当然它们的struts.xml也在jar中, 这种情形主模块的struts还能引入吗?
首先问问google,结果是可行, 如下来自struts官方网站:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="Home.xml"/> <include file="Hello.xml"/> <include file="Simple.xml"/> <include file="/util/POJO.xml"/> <include file="/com/initech/admin/admin-struts.xml"/> </struts>Each included file must be in the same format as struts.xml, including the DOCTYPE. The include files can be placed anywhere on the classpath and should be referred to by that path by the "file" attribute.
开始尝试:
子模块的struts配置文件 名为test-struts.xml, 路径为com/strutsTest/myTest/
1. 在主struts配置文件中使用include标签,并填入全路径, 如下。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml" /> <include file="com/strutsTest/myTest/test-struts.xml" /> </struts>结果:扑街
2. 在主struts配置文件中使用include标签,只填入文件名, 如下。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml" /> <include file="test-struts.xml" /> </struts>结果:扑街
3. 在主struts配置文件中使用include标签,只填入文件名 并将子模块中的struts配置文件放入jar的顶级路径中, 即:
childModule.jar -com --strutsTest --..... test-struts.xml
主struts配置文件与2相同
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml" /> <include file="test-struts.xml" /> </struts>结果: 成功!
可是为什么呢,暂记录,等有时间解释,并期待大牛的答疑。
作者:pushme_pli 发表于2013-1-8 23:14:45 原文链接
阅读:30 评论:0 查看评论
[2]cocos2d-x CCScrollView和CCTableView的使用
来源: 互联网 发布时间: 2013-11-10
在游戏和应用中经常要实现左右滑动展示游戏帮助、以列表显示内容的UI效果,就像android中的Gallery和ListView。本文通过CCScrollView和CCTableView分别来实现这两个效果,基于cocos2d-x 2.0.4版本。
首先来简单了解一下这两个东东,CCScrollView本身是一个CCLayer,而CCTableView是CCScrollView的子类,这是引擎已经帮我们封装好了的,CCTableView可以设置成横向和纵向,用它可以实现类似于Gallery和ListView的效果。
1. 首先实现游戏帮助界面
(1) 创建头文件GalleryLayer.h
这里一共有三张图,是从捕鱼达人中拿出来的背景图,当滚完三张图时就跳转到ListViewLayer场景去,上面的代码比较容易懂。
首先创建一个CCLayer,包含三张背景图,设置CCLayer的ContentSize,并设置三张图片的位置
然后设置CCLayer为CCScrollview的内容,并设置CCScrollView的显示区域。
最后根据用户滑动的方向和距离,通过设置scrollview的setContentOffset,滚动视图。
CCScrollview.h文件中封装了一个枚举类型,一共有四个方向,常用横向和纵向,这里使用了横向。
首先来简单了解一下这两个东东,CCScrollView本身是一个CCLayer,而CCTableView是CCScrollView的子类,这是引擎已经帮我们封装好了的,CCTableView可以设置成横向和纵向,用它可以实现类似于Gallery和ListView的效果。
1. 首先实现游戏帮助界面
(1) 创建头文件GalleryLayer.h
#ifndef GALLERY_LAYER_H #define GALLERY_LAYER_H #include "cocos2d.h" #include "SimpleAudioEngine.h" #include "cocos-ext.h" USING_NS_CC; USING_NS_CC_EXT; class GalleryLayer : public cocos2d::CCLayer ,public CCScrollViewDelegate { public: virtual bool init(); void menuCloseCallback(CCObject* pSender); CREATE_FUNC(GalleryLayer); public: //scrollview滚动的时候会调用 void scrollViewDidScroll(CCScrollView* view); //scrollview缩放的时候会调用 void scrollViewDidZoom(CCScrollView* view); virtual void onEnter(); virtual void onExit(); virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent); virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent); virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent); private: //根据手势滑动的距离和方向滚动图层 void adjustScrollView(float offset); CCScrollView *m_pScrollView; CCPoint m_touchPoint; int m_nCurPage; }; #endif
类GalleryLayer继承了CCScrollViewDelegate,实现了它的两个纯虚函数,主要是为了当scrollview滚动和缩放时回调这两函数,这样我们就可以在这两函数中做相关操作了。
(2) 看源文件GalleryLayer.cpp
#include "GalleryLayer.h" #include "ListViewLayer.h" using namespace cocos2d; using namespace cocos2d::extension; bool GalleryLayer::init() { bool bRet = false; do { CC_BREAK_IF( !CCLayer::init() ); m_nCurPage = 1; CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); CCLayer *pLayer = CCLayer::create(); char helpstr[30] = {0}; for (int i = 1; i <= 3; ++ i) { memset(helpstr, 0, sizeof(helpstr)); sprintf(helpstr,"bg_%02d.png",i); CCSprite *pSprite = CCSprite::create(helpstr); pSprite->setPosition(ccp(visibleSize.width * (i-0.5f), visibleSize.height / 2)); pLayer->addChild(pSprite); } m_pScrollView = CCScrollView::create(CCSizeMake(960, 640), pLayer); m_pScrollView->setContentOffset(CCPointZero); m_pScrollView->setTouchEnabled(false); m_pScrollView->setDelegate(this); m_pScrollView->setDirection(kCCScrollViewDirectionHorizontal); pLayer->setContentSize(CCSizeMake(960*3, 640)); this->addChild(m_pScrollView); CCSpriteFrameCache *pCache = CCSpriteFrameCache::sharedSpriteFrameCache(); pCache->addSpriteFrame(CCSpriteFrame::create("button_normal.png",CCRectMake(0, 0, 64, 64)),"button_normal.png"); pCache->addSpriteFrame(CCSpriteFrame::create("button_selected.png",CCRectMake(0, 0, 64, 64)),"button_selected.png"); for (int i = 1; i <= 3; ++ i) { CCSprite *pPoint = CCSprite::createWithSpriteFrameName("button_normal.png"); pPoint->setTag(i); pPoint->setPosition(ccp( origin.x + (visibleSize.width - 3 * pPoint->getContentSize().width)/2 + pPoint->getContentSize().width * (i-1), origin.y + 30)); this->addChild(pPoint); } CCSprite *pPoint = (CCSprite *)this->getChildByTag(1); pPoint->setDisplayFrame(pCache->spriteFrameByName("button_selected.png")); bRet = true; }while(0); return bRet; } void GalleryLayer::menuCloseCallback(CCObject* pSender) { } void GalleryLayer::scrollViewDidScroll(cocos2d::extension::CCScrollView *view) { CCLOG("scroll"); } void GalleryLayer::scrollViewDidZoom(cocos2d::extension::CCScrollView *view) { CCLOG("zoom"); } void GalleryLayer::onEnter() { CCLayer::onEnter(); CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 1, false); } void GalleryLayer::onExit() { CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this); CCLayer::onExit(); CCSpriteFrameCache::sharedSpriteFrameCache()->removeUnusedSpriteFrames(); } bool GalleryLayer::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent) { m_touchPoint = CCDirector::sharedDirector()->convertToGL(pTouch->getLocationInView()); return true; } void GalleryLayer::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent) { } void GalleryLayer::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent) { CCPoint endPoint = CCDirector::sharedDirector()->convertToGL(pTouch->getLocationInView()); float distance = endPoint.x - m_touchPoint.x; if(fabs(distance) > 50) { adjustScrollView(distance); } } void GalleryLayer::ccTouchCancelled(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent) { CCPoint endPoint = CCDirector::sharedDirector()->convertToGL(pTouch->getLocationInView()); float distance = endPoint.x - m_touchPoint.x; if(fabs(distance) > 50) { adjustScrollView(distance); } } void GalleryLayer::adjustScrollView(float offset) { CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); CCSpriteFrameCache *pCache = CCSpriteFrameCache::sharedSpriteFrameCache(); CCSprite *pPoint = (CCSprite *)this->getChildByTag(m_nCurPage); pPoint->setDisplayFrame(pCache->spriteFrameByName("button_normal.png")); if (offset<0) { m_nCurPage ++; }else { m_nCurPage --; } if (m_nCurPage <1) { m_nCurPage = 1; } if(m_nCurPage > 3) { CCLayer *pLayer = ListViewLayer::create(); CCScene *pScene = CCScene::create(); pScene->addChild(pLayer); CCDirector::sharedDirector()->replaceScene(pScene); } else { pPoint = (CCSprite *)this->getChildByTag(m_nCurPage); pPoint->setDisplayFrame(pCache->spriteFrameByName("button_selected.png")); CCPoint adjustPos = ccp(origin.x - visibleSize.width * (m_nCurPage-1), 0); m_pScrollView->setContentOffset(adjustPos, true); } }
这里一共有三张图,是从捕鱼达人中拿出来的背景图,当滚完三张图时就跳转到ListViewLayer场景去,上面的代码比较容易懂。
首先创建一个CCLayer,包含三张背景图,设置CCLayer的ContentSize,并设置三张图片的位置
然后设置CCLayer为CCScrollview的内容,并设置CCScrollView的显示区域。
最后根据用户滑动的方向和距离,通过设置scrollview的setContentOffset,滚动视图。
CCScrollview.h文件中封装了一个枚举类型,一共有四个方向,常用横向和纵向,这里使用了横向。
typedef enum { kCCScrollViewDirectionNone = -1, kCCScrollViewDirectionHorizontal = 0, kCCScrollViewDirectionVertical, kCCScrollViewDirectionBoth } CCScrollViewDirection;
下面来
[3]jQuery编辑器KindEditor4.1.4代码高亮显示设置
来源: 互联网 发布时间: 2013-11-10
编辑器KindEditor官网: http://www.kindsoft.net/
1、需要加载的JS和CSS文件为:
<script src=/blog_article/"kindeditor-4.1.4/kindeditor.js" type="text/javascript" charset="utf-8"></script> <script src=/blog_article/"kindeditor-4.1.4/plugins/code/prettify.js" type="text/javascript"></script> <link href=/blog_article/"kindeditor-4.1.4/plugins/code/prettify.css" rel="stylesheet" type="text/css" />
2、编辑器初始化设置后,在里面加prettyPrint():
KindEditor.ready(function (K) { window.EditorObject = K.create('#txtBody', { cssPath: 'plugins/code/prettify.css', resizeType: 1, allowPreviewEmoticons: false, allowImageUpload: false, items: [ 'code', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline', 'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist', 'insertunorderedlist', '|', 'emoticons', 'image', 'link'] }); prettyPrint(); });
假如要高亮的代码一开始是隐藏的,要显示出来,则需要调用prettyPrint();
function Show(i) { var id = '#divBody' + i; if($(id).is(":hidden")){ $('#divIntro' + i).hide(); $(id).slideDown(); $(id).next("a").text("收缩..."); prettyPrint(); } else{ $('#divIntro' + i).show(); $(id).slideUp(); $(id).next("a").text("详细..."); } }
3、默认代码是不换行的,要自动换行可以修改prettify.css,把white-space原来的值pre修改为pre-wrap:
pre.prettyprint { border: 0; border-left: 3px solid rgb(204, 204, 204); margin-left: 2em; padding: 0.5em; font-size: 110%; display: block; font-family: "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; margin: 1em 0px; white-space: pre-wrap; /* 原来的值是 pre;*/ }
作者:gdjlc 发表于2013-1-8 23:07:31 原文链接
阅读:41 评论:0 查看评论
最新技术文章: