mirror of https://github.com/axmolengine/axmol.git
Merge pull request #12 from dumganhar/minggo-releasing
[Android] Fixing path error and reducing dependence for extension.
This commit is contained in:
commit
8a2baff4a0
2
AUTHORS
2
AUTHORS
|
@ -414,6 +414,8 @@ Developers:
|
|||
Added some guards to prevent Eclipse to compile twice the same class.
|
||||
Linux Eclipse projects updates
|
||||
Refactored emscripten-build.sh, it's no longer need to be edited to make emscripten work.
|
||||
Creation of CCDeprecated-ext.h
|
||||
Use of a single emscripten HTML template file.
|
||||
|
||||
elmiro
|
||||
Correction of passed buffer size to readlink and verification of result return by readlink.
|
||||
|
|
|
@ -1 +1 @@
|
|||
3e6fb10656859ac83b22bfa48044ade6213d414d
|
||||
61930829c286fd6ec795bccee6e841a60e8ba34f
|
|
@ -170,8 +170,8 @@ LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libtiff_static
|
|||
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_libwebp_static
|
||||
|
||||
# define the macro to compile through support/zip_support/ioapi.c
|
||||
LOCAL_CFLAGS := -Wno-psabi -Wno-deprecated-declarations -DUSE_FILE32API
|
||||
LOCAL_EXPORT_CFLAGS := -Wno-psabi -Wno-deprecated-declarations -DUSE_FILE32API
|
||||
LOCAL_CFLAGS := -Wno-psabi -DUSE_FILE32API
|
||||
LOCAL_EXPORT_CFLAGS := -Wno-psabi -DUSE_FILE32API
|
||||
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
|
|
|
@ -29,6 +29,13 @@
|
|||
#include "sprite_nodes/CCSprite.h"
|
||||
#include "script_support/CCScriptSupport.h"
|
||||
|
||||
#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
#elif _MSC_VER >= 1400 //vs 2005 or higher
|
||||
#pragma warning (push)
|
||||
#pragma warning (disable: 4996)
|
||||
#endif
|
||||
|
||||
NS_CC_BEGIN
|
||||
//
|
||||
// InstantAction
|
||||
|
@ -473,5 +480,137 @@ CallFuncN * CallFuncN::clone() const
|
|||
return a;
|
||||
}
|
||||
|
||||
//
|
||||
// CallFuncND
|
||||
//
|
||||
|
||||
__CCCallFuncND * __CCCallFuncND::create(Object* selectorTarget, SEL_CallFuncND selector, void* d)
|
||||
{
|
||||
__CCCallFuncND* pRet = new __CCCallFuncND();
|
||||
|
||||
if (pRet && pRet->initWithTarget(selectorTarget, selector, d)) {
|
||||
pRet->autorelease();
|
||||
return pRet;
|
||||
}
|
||||
|
||||
CC_SAFE_DELETE(pRet);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bool __CCCallFuncND::initWithTarget(Object* selectorTarget, SEL_CallFuncND selector, void* d)
|
||||
{
|
||||
if (CallFunc::initWithTarget(selectorTarget))
|
||||
{
|
||||
_data = d;
|
||||
_callFuncND = selector;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void __CCCallFuncND::execute()
|
||||
{
|
||||
if (_callFuncND)
|
||||
{
|
||||
(_selectorTarget->*_callFuncND)(_target, _data);
|
||||
}
|
||||
}
|
||||
|
||||
__CCCallFuncND * __CCCallFuncND::clone() const
|
||||
{
|
||||
// no copy constructor
|
||||
auto a = new __CCCallFuncND();
|
||||
|
||||
if( _selectorTarget)
|
||||
{
|
||||
a->initWithTarget(_selectorTarget, _callFuncND, _data);
|
||||
}
|
||||
|
||||
a->autorelease();
|
||||
return a;
|
||||
}
|
||||
|
||||
//
|
||||
// CallFuncO
|
||||
//
|
||||
__CCCallFuncO::__CCCallFuncO() :
|
||||
_object(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
__CCCallFuncO::~__CCCallFuncO()
|
||||
{
|
||||
CC_SAFE_RELEASE(_object);
|
||||
}
|
||||
|
||||
void __CCCallFuncO::execute()
|
||||
{
|
||||
if (_callFuncO) {
|
||||
(_selectorTarget->*_callFuncO)(_object);
|
||||
}
|
||||
}
|
||||
|
||||
__CCCallFuncO * __CCCallFuncO::create(Object* selectorTarget, SEL_CallFuncO selector, Object* object)
|
||||
{
|
||||
__CCCallFuncO *pRet = new __CCCallFuncO();
|
||||
|
||||
if (pRet && pRet->initWithTarget(selectorTarget, selector, object)) {
|
||||
pRet->autorelease();
|
||||
return pRet;
|
||||
}
|
||||
|
||||
CC_SAFE_DELETE(pRet);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bool __CCCallFuncO::initWithTarget(Object* selectorTarget, SEL_CallFuncO selector, Object* object)
|
||||
{
|
||||
if (CallFunc::initWithTarget(selectorTarget))
|
||||
{
|
||||
_object = object;
|
||||
CC_SAFE_RETAIN(_object);
|
||||
|
||||
_callFuncO = selector;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
__CCCallFuncO * __CCCallFuncO::clone() const
|
||||
{
|
||||
// no copy constructor
|
||||
auto a = new __CCCallFuncO();
|
||||
|
||||
if( _selectorTarget)
|
||||
{
|
||||
a->initWithTarget(_selectorTarget, _callFuncO, _object);
|
||||
}
|
||||
|
||||
a->autorelease();
|
||||
return a;
|
||||
}
|
||||
|
||||
Object* __CCCallFuncO::getObject() const
|
||||
{
|
||||
return _object;
|
||||
}
|
||||
|
||||
void __CCCallFuncO::setObject(Object* obj)
|
||||
{
|
||||
if (obj != _object)
|
||||
{
|
||||
CC_SAFE_RELEASE(_object);
|
||||
_object = obj;
|
||||
CC_SAFE_RETAIN(_object);
|
||||
}
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
|
||||
#pragma GCC diagnostic warning "-Wdeprecated-declarations"
|
||||
#elif _MSC_VER >= 1400 //vs 2005 or higher
|
||||
#pragma warning (pop)
|
||||
#endif
|
||||
|
|
|
@ -341,6 +341,87 @@ protected:
|
|||
std::function<void(Node*)> _functionN;
|
||||
};
|
||||
|
||||
/**
|
||||
@deprecated Please use CallFuncN instead.
|
||||
@brief Calls a 'callback' with the node as the first argument and the 2nd argument is data
|
||||
* ND means: Node and Data. Data is void *, so it could be anything.
|
||||
*/
|
||||
|
||||
class CC_DLL __CCCallFuncND : public CallFunc
|
||||
{
|
||||
public:
|
||||
/** creates the action with the callback and the data to pass as an argument */
|
||||
CC_DEPRECATED_ATTRIBUTE static __CCCallFuncND * create(Object* selectorTarget, SEL_CallFuncND selector, void* d);
|
||||
|
||||
virtual long getClassTypeInfo() {
|
||||
static const long id = cocos2d::getHashCodeByString(typeid(cocos2d::CallFunc).name());
|
||||
return id;
|
||||
}
|
||||
|
||||
protected:
|
||||
/** initializes the action with the callback and the data to pass as an argument */
|
||||
bool initWithTarget(Object* selectorTarget, SEL_CallFuncND selector, void* d);
|
||||
|
||||
public:
|
||||
//
|
||||
// Overrides
|
||||
//
|
||||
virtual __CCCallFuncND* clone() const override;
|
||||
virtual void execute() override;
|
||||
|
||||
protected:
|
||||
SEL_CallFuncND _callFuncND;
|
||||
void* _data;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
@deprecated Please use CallFuncN instead.
|
||||
@brief Calls a 'callback' with an object as the first argument.
|
||||
O means Object.
|
||||
@since v0.99.5
|
||||
*/
|
||||
|
||||
class CC_DLL __CCCallFuncO : public CallFunc, public TypeInfo
|
||||
{
|
||||
public:
|
||||
/** creates the action with the callback
|
||||
|
||||
typedef void (Object::*SEL_CallFuncO)(Object*);
|
||||
*/
|
||||
CC_DEPRECATED_ATTRIBUTE static __CCCallFuncO * create(Object* selectorTarget, SEL_CallFuncO selector, Object* object);
|
||||
|
||||
__CCCallFuncO();
|
||||
virtual ~__CCCallFuncO();
|
||||
|
||||
virtual long getClassTypeInfo() {
|
||||
static const long id = cocos2d::getHashCodeByString(typeid(cocos2d::CallFunc).name());
|
||||
return id;
|
||||
}
|
||||
|
||||
protected:
|
||||
/** initializes the action with the callback
|
||||
|
||||
typedef void (Object::*SEL_CallFuncO)(Object*);
|
||||
*/
|
||||
bool initWithTarget(Object* selectorTarget, SEL_CallFuncO selector, Object* object);
|
||||
|
||||
public:
|
||||
//
|
||||
// Overrides
|
||||
//
|
||||
virtual __CCCallFuncO* clone() const override;
|
||||
virtual void execute() override;
|
||||
|
||||
Object* getObject() const;
|
||||
void setObject(Object* obj);
|
||||
|
||||
protected:
|
||||
/** object to be passed as argument */
|
||||
Object* _object;
|
||||
SEL_CallFuncO _callFuncO;
|
||||
};
|
||||
|
||||
// end of actions group
|
||||
/// @}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ NS_CC_BEGIN
|
|||
|
||||
const char* cocos2dVersion()
|
||||
{
|
||||
return "3.0-alpha0-pre";
|
||||
return "3.0-pre-alpha0";
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
|
@ -622,6 +622,9 @@ CC_DEPRECATED_ATTRIBUTE typedef FlipX CCFlipX;
|
|||
CC_DEPRECATED_ATTRIBUTE typedef FlipY CCFlipY;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Place CCPlace;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef CallFunc CCCallFunc;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef CallFuncN CCCallFuncN;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef __CCCallFuncND CCCallFuncND;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef __CCCallFuncO CCCallFuncO;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef GridAction CCGridAction;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Grid3DAction CCGrid3DAction;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TiledGrid3DAction CCTiledGrid3DAction;
|
||||
|
@ -760,6 +763,7 @@ CC_DEPRECATED_ATTRIBUTE typedef Timer CCTimer;
|
|||
CC_DEPRECATED_ATTRIBUTE typedef Scheduler CCScheduler;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef EGLView CCEGLView;
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Component CCComponent;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AffineTransform CCAffineTransform;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Point CCPoint;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Size CCSize;
|
||||
|
|
|
@ -83,7 +83,7 @@ struct Color4B
|
|||
a(_a)
|
||||
{}
|
||||
|
||||
Color4B(): r(0.f), g(0.f), b(0.f), a(0.f) {}
|
||||
Color4B(): r(0), g(0), b(0), a(0) {}
|
||||
|
||||
// This function should use Color4F, so implement it in .cpp file.
|
||||
explicit Color4B(const Color4F &color4F);
|
||||
|
|
|
@ -33,6 +33,13 @@ THE SOFTWARE.
|
|||
#include <stdarg.h>
|
||||
#include <cstring>
|
||||
|
||||
#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
#elif _MSC_VER >= 1400 //vs 2005 or higher
|
||||
#pragma warning (push)
|
||||
#pragma warning (disable: 4996)
|
||||
#endif
|
||||
|
||||
NS_CC_BEGIN
|
||||
|
||||
static unsigned int _globalFontSize = kItemSize;
|
||||
|
@ -986,3 +993,9 @@ MenuItem* MenuItemToggle::getSelectedItem()
|
|||
}
|
||||
|
||||
NS_CC_END
|
||||
|
||||
#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
|
||||
#pragma GCC diagnostic warning "-Wdeprecated-declarations"
|
||||
#elif _MSC_VER >= 1400 //vs 2005 or higher
|
||||
#pragma warning (pop)
|
||||
#endif
|
||||
|
|
|
@ -104,8 +104,11 @@ public:
|
|||
/* creates a new Image from with the texture's data.
|
||||
Caller is responsible for releasing it by calling delete.
|
||||
*/
|
||||
|
||||
Image* newImage(bool flipImage = true);
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE Image* newCCImage(bool flipImage = true) { return newImage(flipImage); };
|
||||
|
||||
/** saves the texture into a file using JPEG format. The file will be saved in the Documents folder.
|
||||
Returns YES if the operation is successful.
|
||||
*/
|
||||
|
|
|
@ -97,9 +97,12 @@ STATICLIBS = \
|
|||
SHAREDLIBS += -L$(LIB_DIR) -Wl,-rpath,$(RPATH_REL)/$(LIB_DIR)
|
||||
LIBS = -lrt -lz
|
||||
|
||||
HTMLTPL_DIR = $(COCOS_ROOT)/tools/emscripten-template
|
||||
HTMLTPL_FILE = index.html
|
||||
|
||||
clean:
|
||||
rm -rf $(OBJ_DIR)
|
||||
rm -f $(TARGET).js $(TARGET).data $(TARGET).data.js $(BIN_DIR)/index.html core
|
||||
rm -rf $(TARGET).js $(TARGET).data $(TARGET).data.js $(BIN_DIR) core
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
|
@ -108,7 +111,7 @@ clean:
|
|||
ifdef EXECUTABLE
|
||||
TARGET := $(BIN_DIR)/$(EXECUTABLE)
|
||||
|
||||
all: $(TARGET).js $(TARGET).data $(BIN_DIR)/index.html
|
||||
all: $(TARGET).js $(TARGET).data $(BIN_DIR)/$(HTMLTPL_FILE)
|
||||
|
||||
run: $(TARGET)
|
||||
cd $(dir $^) && ./$(notdir $^)
|
||||
|
|
|
@ -186,6 +186,7 @@ public:
|
|||
@since v0.8
|
||||
*/
|
||||
void setTexParameters(const ccTexParams& texParams);
|
||||
CC_DEPRECATED_ATTRIBUTE void setTexParameters(const ccTexParams* texParams) { return setTexParameters(*texParams); };
|
||||
|
||||
/** sets antialias texture parameters:
|
||||
- GL_TEXTURE_MIN_FILTER = GL_LINEAR
|
||||
|
|
|
@ -785,7 +785,7 @@ void VolatileTexture::reloadAllTextures()
|
|||
|
||||
if (std::string::npos != lowerCase.find(".pvr"))
|
||||
{
|
||||
Texture2DPixelFormat oldPixelFormat = Texture2D::defaultAlphaPixelFormat();
|
||||
Texture2DPixelFormat oldPixelFormat = Texture2D::getDefaultAlphaPixelFormat();
|
||||
Texture2D::setDefaultAlphaPixelFormat(vt->_pixelFormat);
|
||||
|
||||
vt->_texture->initWithPVRFile(vt->_fileName.c_str());
|
||||
|
@ -799,7 +799,7 @@ void VolatileTexture::reloadAllTextures()
|
|||
|
||||
if (pImage && pImage->initWithImageData((void*)pBuffer, nSize, vt->_fmtImage))
|
||||
{
|
||||
Texture2DPixelFormat oldPixelFormat = Texture2D::defaultAlphaPixelFormat();
|
||||
Texture2DPixelFormat oldPixelFormat = Texture2D::getDefaultAlphaPixelFormat();
|
||||
Texture2D::setDefaultAlphaPixelFormat(vt->_pixelFormat);
|
||||
vt->_texture->initWithImage(pImage);
|
||||
Texture2D::setDefaultAlphaPixelFormat(oldPixelFormat);
|
||||
|
|
|
@ -56,6 +56,9 @@ public:
|
|||
ParallaxNode();
|
||||
virtual ~ParallaxNode();
|
||||
|
||||
// prevents compiler warning: "Included function hides overloaded virtual functions"
|
||||
using Node::addChild;
|
||||
|
||||
void addChild(Node * child, int z, const Point& parallaxRatio, const Point& positionOffset);
|
||||
|
||||
/** Sets an array of layers for the Parallax node */
|
||||
|
|
|
@ -213,6 +213,10 @@ public:
|
|||
virtual void onSuccess() {};
|
||||
};
|
||||
|
||||
// Deprecated declaration
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AssetsManager CCAssetsManager;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AssetsManagerDelegateProtocol CCAssetsManagerDelegateProtocol;
|
||||
|
||||
NS_CC_EXT_END;
|
||||
|
||||
#endif /* defined(__AssetsManager__) */
|
||||
|
|
|
@ -28,10 +28,46 @@ THE SOFTWARE.
|
|||
#include "utils/CCArmatureDefine.h"
|
||||
#include "CCBone.h"
|
||||
#include "display/CCBatchNode.h"
|
||||
#include "display/CCShaderNode.h"
|
||||
#include "animation/CCArmatureAnimation.h"
|
||||
#include "physics/CCPhysicsWorld.h"
|
||||
#include "utils/CCSpriteFrameCacheHelper.h"
|
||||
#include "utils/CCArmatureDataManager.h"
|
||||
|
||||
namespace cocos2d { namespace extension { namespace armature {
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ProcessBase CCProcessBase;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef BaseData CCBaseData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef DisplayData CCDisplayData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef SpriteDisplayData CCSpriteDisplayData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ArmatureDisplayData CCArmatureDisplayData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ParticleDisplayData CCParticleDisplayData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ShaderDisplayData CCShaderDisplayData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef BoneData CCBoneData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef FrameData CCFrameData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef MovementBoneData CCMovementBoneData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef MovementData CCMovementData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AnimationData CCAnimationData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ContourData CCContourData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TextureData CCTextureData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ShaderNode CCShaderNode;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef DecorativeDisplay CCDecorativeDisplay;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef DisplayData CCDisplayData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef DisplayFactory CCDisplayFactory;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef BatchNode CCBatchNode;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef DecorativeDisplay CCDecorativeDisplay;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef DisplayManager CCDisplayManager;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ColliderBody CCColliderBody;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ColliderDetector CCColliderDetector;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef PhysicsWorld CCPhysicsWorld;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef SpriteFrameCacheHelper CCSpriteFrameCacheHelper;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TweenFunction CCTweenFunction;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ArmatureData CCArmatureData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Bone CCBone;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ArmatureAnimation CCArmatureAnimation;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Armature CCArmature;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ArmatureDataManager CCArmatureDataManager;
|
||||
|
||||
class Armature : public NodeRGBA, public BlendProtocol
|
||||
{
|
||||
|
||||
|
|
|
@ -617,7 +617,7 @@ Object* CCBAnimationManager::actionForCallbackChannel(CCBSequenceProperty* chann
|
|||
CCBSelectorResolver* targetAsCCBSelectorResolver = dynamic_cast<CCBSelectorResolver *>(target);
|
||||
|
||||
if(targetAsCCBSelectorResolver != NULL) {
|
||||
selCallFunc = targetAsCCBSelectorResolver->onResolveCCBCallFuncSelector(target, selectorName.c_str ());
|
||||
selCallFunc = targetAsCCBSelectorResolver->onResolveCCBCCCallFuncSelector(target, selectorName.c_str ());
|
||||
}
|
||||
if(selCallFunc == 0) {
|
||||
CCLOG("Skipping selector '%s' since no CCBSelectorResolver is present.", selectorName.c_str());
|
||||
|
|
|
@ -23,9 +23,9 @@ NS_CC_EXT_BEGIN
|
|||
class CCBSelectorResolver {
|
||||
public:
|
||||
virtual ~CCBSelectorResolver() {};
|
||||
virtual SEL_MenuHandler onResolveCCBMenuItemSelector(Object * pTarget, const char* pSelectorName) = 0;
|
||||
virtual SEL_CallFuncN onResolveCCBCallFuncSelector(Object * pTarget, const char* pSelectorName) { return NULL; };
|
||||
virtual SEL_CCControlHandler onResolveCCBControlSelector(Object * pTarget, const char* pSelectorName) = 0;
|
||||
virtual SEL_MenuHandler onResolveCCBCCMenuItemSelector(Object * pTarget, const char* pSelectorName) = 0;
|
||||
virtual SEL_CallFuncN onResolveCCBCCCallFuncSelector(Object * pTarget, const char* pSelectorName) { return NULL; };
|
||||
virtual SEL_CCControlHandler onResolveCCBCCControlSelector(Object * pTarget, const char* pSelectorName) = 0;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -754,12 +754,12 @@ BlockData * NodeLoader::parsePropTypeBlock(Node * pNode, Node * pParent, CCBRead
|
|||
CCBSelectorResolver * targetAsCCBSelectorResolver = dynamic_cast<CCBSelectorResolver *>(target);
|
||||
|
||||
if(targetAsCCBSelectorResolver != NULL) {
|
||||
selMenuHandler = targetAsCCBSelectorResolver->onResolveCCBMenuItemSelector(target, selectorName.c_str());
|
||||
selMenuHandler = targetAsCCBSelectorResolver->onResolveCCBCCMenuItemSelector(target, selectorName.c_str());
|
||||
}
|
||||
if(selMenuHandler == 0) {
|
||||
CCBSelectorResolver * ccbSelectorResolver = pCCBReader->getCCBSelectorResolver();
|
||||
if(ccbSelectorResolver != NULL) {
|
||||
selMenuHandler = ccbSelectorResolver->onResolveCCBMenuItemSelector(target, selectorName.c_str());
|
||||
selMenuHandler = ccbSelectorResolver->onResolveCCBCCMenuItemSelector(target, selectorName.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -816,12 +816,12 @@ BlockControlData * NodeLoader::parsePropTypeBlockControl(Node * pNode, Node * pP
|
|||
CCBSelectorResolver * targetAsCCBSelectorResolver = dynamic_cast<CCBSelectorResolver *>(target);
|
||||
|
||||
if(targetAsCCBSelectorResolver != NULL) {
|
||||
selControlHandler = targetAsCCBSelectorResolver->onResolveCCBControlSelector(target, selectorName.c_str());
|
||||
selControlHandler = targetAsCCBSelectorResolver->onResolveCCBCCControlSelector(target, selectorName.c_str());
|
||||
}
|
||||
if(selControlHandler == 0) {
|
||||
CCBSelectorResolver * ccbSelectorResolver = pCCBReader->getCCBSelectorResolver();
|
||||
if(ccbSelectorResolver != NULL) {
|
||||
selControlHandler = ccbSelectorResolver->onResolveCCBControlSelector(target, selectorName.c_str());
|
||||
selControlHandler = ccbSelectorResolver->onResolveCCBCCControlSelector(target, selectorName.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ void NodeLoaderLibrary::purge(bool pReleaseNodeLoaders) {
|
|||
|
||||
static NodeLoaderLibrary * sSharedNodeLoaderLibrary = NULL;
|
||||
|
||||
NodeLoaderLibrary * NodeLoaderLibrary::sharedNodeLoaderLibrary() {
|
||||
NodeLoaderLibrary * NodeLoaderLibrary::getInstance() {
|
||||
if(sSharedNodeLoaderLibrary == NULL) {
|
||||
sSharedNodeLoaderLibrary = new NodeLoaderLibrary();
|
||||
|
||||
|
@ -90,7 +90,7 @@ NodeLoaderLibrary * NodeLoaderLibrary::sharedNodeLoaderLibrary() {
|
|||
return sSharedNodeLoaderLibrary;
|
||||
}
|
||||
|
||||
void NodeLoaderLibrary::purgeSharedNodeLoaderLibrary() {
|
||||
void NodeLoaderLibrary::destroyInstance() {
|
||||
CC_SAFE_DELETE(sSharedNodeLoaderLibrary);
|
||||
}
|
||||
|
||||
|
|
|
@ -30,11 +30,21 @@ class NodeLoaderLibrary : public Object {
|
|||
//CCNodeLoader * getNodeLoader(String * pClassName);
|
||||
void purge(bool pDelete);
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE void registerDefaultCCNodeLoaders() { registerDefaultNodeLoaders(); }
|
||||
CC_DEPRECATED_ATTRIBUTE void registerCCNodeLoader(const char * pClassName, NodeLoader * pNodeLoader) { registerNodeLoader(pClassName, pNodeLoader); };
|
||||
CC_DEPRECATED_ATTRIBUTE void unregisterCCNodeLoader(const char * pClassName) { unregisterNodeLoader(pClassName); };
|
||||
CC_DEPRECATED_ATTRIBUTE NodeLoader * getCCNodeLoader(const char * pClassName) { return getNodeLoader(pClassName); };
|
||||
|
||||
public:
|
||||
static NodeLoaderLibrary * sharedNodeLoaderLibrary();
|
||||
static void purgeSharedNodeLoaderLibrary();
|
||||
static NodeLoaderLibrary * getInstance();
|
||||
static void destroyInstance();
|
||||
|
||||
static NodeLoaderLibrary * newDefaultNodeLoaderLibrary();
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE static NodeLoaderLibrary * sharedNodeLoaderLibrary() { return NodeLoaderLibrary::getInstance(); };
|
||||
CC_DEPRECATED_ATTRIBUTE static void purgeSharedNodeLoaderLibrary() { NodeLoaderLibrary::destroyInstance(); };
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE static NodeLoaderLibrary * newDefaultCCNodeLoaderLibrary() { return NodeLoaderLibrary::newDefaultNodeLoaderLibrary(); };
|
||||
};
|
||||
|
||||
NS_CC_EXT_END
|
||||
|
|
|
@ -0,0 +1,182 @@
|
|||
/****************************************************************************
|
||||
Copyright (c) 2013 cocos2d-x.org
|
||||
|
||||
http://www.cocos2d-x.org
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
****************************************************************************/
|
||||
|
||||
/** Add deprecated global functions and variables here
|
||||
*/
|
||||
|
||||
#ifndef COCOS2D_CCDEPRECATED_EXT_H__
|
||||
#define COCOS2D_CCDEPRECATED_EXT_H__
|
||||
|
||||
NS_CC_EXT_BEGIN
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TableView CCTableView;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TableViewCell CCTableViewCell;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TableViewDelegate CCTableViewDelegate;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TableViewDataSource CCTableViewDataSource;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TableView CCTableView;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ScrollView CCScrollView;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ScrollViewDelegate CCScrollViewDelegate;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ScrollView CCScrollView;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef SortableObject CCSortableObject;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ArrayForObjectSorting CCArrayForObjectSorting;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TableViewCell CCTableViewCell;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef EditBox CCEditBox;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef EditBoxDelegate CCEditBoxDelegate;
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Color3bObject CCColor3bObject;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlUtils CCControlUtils;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Scale9Sprite CCScale9Sprite;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlSwitchSprite CCControlSwitchSprite;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlHuePicker CCControlHuePicker;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Invocation CCInvocation;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlSaturationBrightnessPicker CCControlSaturationBrightnessPicker;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlStepper CCControlStepper;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlPotentiometer CCControlPotentiometer;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlSwitchSprite CCControlSwitchSprite;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlSwitch CCControlSwitch;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlButton CCControlButton;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlSlider CCControlSlider;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Control CCControl;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlLoader CCControlLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlColourPicker CCControlColourPicker;
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE typedef LabelBMFontLoader CCLabelBMFontLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ScrollViewLoader CCScrollViewLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef SpriteLoader CCSpriteLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef NodeLoader CCNodeLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef NodeLoaderLibrary CCNodeLoaderLibrary;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef NodeLoaderListener CCNodeLoaderListener;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef LayerLoader CCLayerLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef MenuLoader CCMenuLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Color3BWapper CCColor3BWapper;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ParticleSystemQuadLoader CCParticleSystemQuadLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef MenuItemImageLoader CCMenuItemImageLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlButtonLoader CCControlButtonLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef LayerGradientLoader CCLayerGradientLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Scale9SpriteLoader CCScale9SpriteLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef NodeLoaderLibrary CCNodeLoaderLibrary;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef MenuItemLoader CCMenuItemLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef LayerColorLoader CCLayerColorLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef LabelTTFLoader CCLabelTTFLoader;
|
||||
|
||||
|
||||
#if CC_ENABLE_BOX2D_INTEGRATION || CC_ENABLE_CHIPMUNK_INTEGRATION
|
||||
CC_DEPRECATED_ATTRIBUTE typedef PhysicsSprite CCPhysicsSprite;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef PhysicsDebugNode CCPhysicsDebugNode;
|
||||
#endif
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ComController CCComController;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ComAttribute CCComAttribute;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef InputDelegate CCInputDelegate;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ComAudio CCComAudio;
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE typedef HttpClient CCHttpClient;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef HttpResponse CCHttpResponse;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef HttpRequest CCHttpRequest;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Skin CCSkin;
|
||||
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AtlasFormat CCAtlasFormat;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AtlasFilter CCAtlasFilter;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AtlasWrap CCAtlasWrap;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AtlasPage CCAtlasPage;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AtlasRegion CCAtlasRegion;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Atlas CCAtlas;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AnimationStateData CCAnimationStateData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef SlotData CCSlotData;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AttachmentLoader CCAttachmentLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AnimationState CCAnimationState;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef SkeletonJson CCSkeletonJson;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef Timeline CCTimeline;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef CurveTimeline CCCurveTimeline;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef RotateTimeline CCRotateTimeline;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TranslateTimeline CCTranslateTimeline;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ScaleTimeline CCScaleTimeline;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ColorTimeline CCColorTimeline;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AttachmentTimeline CCAttachmentTimeline;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AtlasAttachmentLoader CCAtlasAttachmentLoader;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef VertexIndex CCVertexIndex;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef RegionAttachment CCRegionAttachment;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ScrollViewDirection CCScrollViewDirection;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef TableViewVerticalFillOrder CCTableViewVerticalFillOrder;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlStepperPart CCControlStepperPart;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlEvent CCControlEvent;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef ControlState CCControlState;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef NodeLoaderMap CCNodeLoaderMap;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef NodeLoaderMapEntry CCNodeLoaderMapEntry;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef EventRegistry CCEventRegistry;
|
||||
CC_DEPRECATED_ATTRIBUTE typedef AttachmentType CCAttachmentType;
|
||||
|
||||
#define kCCTableViewFillTopDown kTableViewFillTopDown
|
||||
#define kCCTableViewFillBottomUp kTableViewFillBottomUp
|
||||
#define kCCScrollViewDirectionNone kScrollViewDirectionNone
|
||||
#define kCCScrollViewDirectionHorizontal kScrollViewDirectionHorizontal
|
||||
#define kCCScrollViewDirectionVertical kScrollViewDirectionVertical
|
||||
#define kCCScrollViewDirectionBoth kScrollViewDirectionBoth
|
||||
#define kCCKeyboardReturnTypeDefault kKeyboardReturnTypeDefault
|
||||
#define kCCKeyboardReturnTypeDone kKeyboardReturnTypeDone
|
||||
#define kCCKeyboardReturnTypeSend kKeyboardReturnTypeSend
|
||||
#define kCCKeyboardReturnTypeSearch kKeyboardReturnTypeSearch
|
||||
#define kCCKeyboardReturnTypeGo kKeyboardReturnTypeGo
|
||||
|
||||
#define kCCEditBoxInputModeAny kEditBoxInputModeAny
|
||||
#define kCCEditBoxInputModeEmailAddr kEditBoxInputModeEmailAddr
|
||||
#define kCCEditBoxInputModeNumeric kEditBoxInputModeNumeric
|
||||
#define kCCEditBoxInputModePhoneNumber kEditBoxInputModePhoneNumber
|
||||
#define kCCEditBoxInputModeUrl kEditBoxInputModeUrl
|
||||
#define kCCEditBoxInputModeDecimal kEditBoxInputModeDecimal
|
||||
#define kCCEditBoxInputModeSingleLine kEditBoxInputModeSingleLine
|
||||
|
||||
#define kCCControlStepperPartMinus kControlStepperPartMinus
|
||||
#define kCCControlStepperPartPlus kControlStepperPartPlus
|
||||
#define kCCControlStepperPartNone kControlStepperPartNone
|
||||
|
||||
#define CCControlEventTouchDown ControlEventTouchDown
|
||||
#define CCControlEventTouchDragInside ControlEventTouchDragInside
|
||||
#define CCControlEventTouchDragOutside ControlEventTouchDragOutside
|
||||
#define CCControlEventTouchDragEnter ControlEventTouchDragEnter
|
||||
#define CCControlEventTouchDragExit ControlEventTouchDragExit
|
||||
#define CCControlEventTouchUpInside ControlEventTouchUpInside
|
||||
#define CCControlEventTouchUpOutside ControlEventTouchUpOutside
|
||||
#define CCControlEventTouchCancel ControlEventTouchCancel
|
||||
#define CCControlEventValueChanged ControlEventValueChanged
|
||||
|
||||
#define CCControlStateNormal ControlStateNormal
|
||||
#define CCControlStateHighlighted ControlStateHighlighted
|
||||
#define CCControlStateDisabled ControlStateDisabled
|
||||
#define CCControlStateSelected ControlStateSelected
|
||||
|
||||
#define kCCCreateFile kCreateFile
|
||||
#define kCCNetwork kNetwork
|
||||
#define kCCNoNewVersion kNoNewVersion
|
||||
#define kCCUncompress kUncompress
|
||||
|
||||
#define kCCHttpGet kHttpGet
|
||||
#define kCCHttpPut kHttpPut
|
||||
#define kCCHttpPost kHttpPost
|
||||
#define kCCHttpDelete kHttpDelete
|
||||
#define kCCHttpUnkown kHttpUnkown
|
||||
|
||||
NS_CC_EXT_END
|
||||
|
||||
#endif // COCOS2D_CCDEPRECATED_EXT_H__
|
|
@ -39,6 +39,8 @@
|
|||
#include "network/HttpRequest.h"
|
||||
#include "network/HttpResponse.h"
|
||||
#include "network/HttpClient.h"
|
||||
#include "network/WebSocket.h"
|
||||
#include "network/SocketIO.h"
|
||||
|
||||
// Physics integration
|
||||
#if CC_ENABLE_CHIPMUNK_INTEGRATION || CC_ENABLE_BOX2D_INTEGRATION
|
||||
|
@ -52,4 +54,6 @@
|
|||
#include "Components/CCComAudio.h"
|
||||
#include "Components/CCComController.h"
|
||||
|
||||
#include "CCDeprecated-ext.h"
|
||||
|
||||
#endif /* __COCOS2D_EXT_H__ */
|
||||
|
|
|
@ -28,12 +28,15 @@
|
|||
****************************************************************************/
|
||||
|
||||
#include "WebSocket.h"
|
||||
|
||||
#include <thread>
|
||||
#include <mutex>
|
||||
#include <queue>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "libwebsockets.h"
|
||||
|
||||
NS_CC_EXT_BEGIN
|
||||
|
||||
class WsMessage
|
||||
|
@ -444,7 +447,7 @@ void WebSocket::onSubThreadEnded()
|
|||
|
||||
int WebSocket::onSocketCallback(struct libwebsocket_context *ctx,
|
||||
struct libwebsocket *wsi,
|
||||
enum libwebsocket_callback_reasons reason,
|
||||
int reason,
|
||||
void *user, void *in, size_t len)
|
||||
{
|
||||
//CCLOG("socket callback for %d reason", reason);
|
||||
|
|
|
@ -32,9 +32,12 @@
|
|||
|
||||
#include "ExtensionMacros.h"
|
||||
#include "cocos2d.h"
|
||||
#include "libwebsockets.h"
|
||||
#include <list>
|
||||
|
||||
struct libwebsocket;
|
||||
struct libwebsocket_context;
|
||||
struct libwebsocket_protocols;
|
||||
|
||||
NS_CC_EXT_BEGIN
|
||||
|
||||
class WsThreadHelper;
|
||||
|
@ -132,7 +135,7 @@ private:
|
|||
friend class WebSocketCallbackWrapper;
|
||||
int onSocketCallback(struct libwebsocket_context *ctx,
|
||||
struct libwebsocket *wsi,
|
||||
enum libwebsocket_callback_reasons reason,
|
||||
int reason,
|
||||
void *user, void *in, size_t len);
|
||||
|
||||
private:
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
<meta-data android:name="QHOPENSDK_APPID" android:value="Your app_id" />
|
||||
<meta-data android:name="QHOPENSDK_APPKEY" android:value="Your app_key" />
|
||||
<meta-data android:name="QHOPENSDK_PRIVATEKEY" android:value="Your app_private_key" />
|
||||
<meta-data android:name="QHOPENSDK_CHANNEL" android:value="QH360" />
|
||||
</applicationCfg>
|
||||
<permissionCfg>
|
||||
<uses-permission android:name="android.permission.SEND_SMS" />
|
||||
|
|
|
@ -181,15 +181,15 @@ public class IAPOnlineQH360 implements InterfaceIAP {
|
|||
|
||||
// optional params : ext, app order id, pay type
|
||||
String ext1 = pInfo.get("QHExtra1");
|
||||
if (null == ext1 && ! TextUtils.isEmpty(ext1)) {
|
||||
if (null != ext1 && ! TextUtils.isEmpty(ext1)) {
|
||||
bundle.putString(ProtocolKeys.APP_EXT_1, ext1);
|
||||
}
|
||||
String ext2 = pInfo.get("QHExtra2");
|
||||
if (null == ext2 && ! TextUtils.isEmpty(ext2)) {
|
||||
if (null != ext2 && ! TextUtils.isEmpty(ext2)) {
|
||||
bundle.putString(ProtocolKeys.APP_EXT_2, ext2);
|
||||
}
|
||||
String appOrderId = pInfo.get("QHAppOrderID");
|
||||
if (null == appOrderId && ! TextUtils.isEmpty(appOrderId)) {
|
||||
if (null != appOrderId && ! TextUtils.isEmpty(appOrderId)) {
|
||||
bundle.putString(ProtocolKeys.APP_ORDER_ID, appOrderId);
|
||||
}
|
||||
|
||||
|
|
|
@ -63,13 +63,13 @@ public class QH360Wrapper {
|
|||
Configuration config = ctx.getResources().getConfiguration();
|
||||
int orientation = config.orientation;
|
||||
|
||||
if (orientation != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ||
|
||||
orientation != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
|
||||
if (orientation != Configuration.ORIENTATION_LANDSCAPE &&
|
||||
orientation != Configuration.ORIENTATION_PORTRAIT)
|
||||
{
|
||||
orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
|
||||
orientation = Configuration.ORIENTATION_PORTRAIT;
|
||||
}
|
||||
|
||||
return (orientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
||||
return (orientation == Configuration.ORIENTATION_LANDSCAPE);
|
||||
}
|
||||
|
||||
private static boolean mLogined = false;
|
||||
|
|
|
@ -109,13 +109,13 @@ public class UCWrapper {
|
|||
Configuration config = ctx.getResources().getConfiguration();
|
||||
int orientation = config.orientation;
|
||||
|
||||
if (orientation != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ||
|
||||
orientation != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
|
||||
if (orientation != Configuration.ORIENTATION_LANDSCAPE &&
|
||||
orientation != Configuration.ORIENTATION_PORTRAIT)
|
||||
{
|
||||
orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
|
||||
orientation = Configuration.ORIENTATION_PORTRAIT;
|
||||
}
|
||||
|
||||
return (orientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
||||
return (orientation == Configuration.ORIENTATION_LANDSCAPE);
|
||||
}
|
||||
|
||||
public static String getSDKVersion() {
|
||||
|
|
|
@ -89,8 +89,8 @@ bool TestAds::init()
|
|||
|
||||
Size visibleSize = Director::getInstance()->getVisibleSize();
|
||||
Point origin = Director::getInstance()->getVisibleOrigin();
|
||||
Point posMid = ccp(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2);
|
||||
Point posBR = ccp(origin.x + visibleSize.width, origin.y);
|
||||
Point posMid = Point(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2);
|
||||
Point posBR = Point(origin.x + visibleSize.width, origin.y);
|
||||
|
||||
/////////////////////////////
|
||||
// 2. add a menu item with "X" image, which is clicked to quit the program
|
||||
|
@ -99,7 +99,7 @@ bool TestAds::init()
|
|||
// add a "close" icon to exit the progress. it's an autorelease object
|
||||
MenuItemFont *pBackItem = MenuItemFont::create("Back", CC_CALLBACK_1(TestAds::menuBackCallback, this));
|
||||
Size backSize = pBackItem->getContentSize();
|
||||
pBackItem->setPosition(ccpAdd(posBR, ccp(- backSize.width / 2, backSize.height / 2)));
|
||||
pBackItem->setPosition(posBR + Point(- backSize.width / 2, backSize.height / 2));
|
||||
|
||||
// create menu, it's an autorelease object
|
||||
Menu* pMenu = Menu::create(pBackItem, NULL);
|
||||
|
@ -107,15 +107,15 @@ bool TestAds::init()
|
|||
|
||||
LabelTTF* label1 = LabelTTF::create("ShowAds", "Arial", 24);
|
||||
MenuItemLabel* pItemShow = MenuItemLabel::create(label1, CC_CALLBACK_1(TestAds::testShow, this));
|
||||
pItemShow->setAnchorPoint(ccp(0.5f, 0));
|
||||
pItemShow->setAnchorPoint(Point(0.5f, 0));
|
||||
pMenu->addChild(pItemShow, 0);
|
||||
pItemShow->setPosition(ccpAdd(posMid, ccp(-100, -120)));
|
||||
pItemShow->setPosition(posMid + Point(-100, -120));
|
||||
|
||||
LabelTTF* label2 = LabelTTF::create("HideAds", "Arial", 24);
|
||||
MenuItemLabel* pItemHide = MenuItemLabel::create(label2, CC_CALLBACK_1(TestAds::testHide, this));
|
||||
pItemHide->setAnchorPoint(ccp(0.5f, 0));
|
||||
pItemHide->setAnchorPoint(Point(0.5f, 0));
|
||||
pMenu->addChild(pItemHide, 0);
|
||||
pItemHide->setPosition(ccpAdd(posMid, ccp(100, -120)));
|
||||
pItemHide->setPosition(posMid + Point(100, -120));
|
||||
|
||||
// create optional menu
|
||||
// cases item
|
||||
|
@ -127,7 +127,7 @@ bool TestAds::init()
|
|||
{
|
||||
_caseItem->getSubItems()->addObject( MenuItemFont::create( s_aTestCases[i].c_str() ) );
|
||||
}
|
||||
_caseItem->setPosition(ccpAdd(posMid, ccp(-200, 120)));
|
||||
_caseItem->setPosition(posMid + Point(-200, 120));
|
||||
pMenu->addChild(_caseItem);
|
||||
|
||||
// type item
|
||||
|
@ -139,7 +139,7 @@ bool TestAds::init()
|
|||
{
|
||||
_typeItem->getSubItems()->addObject( MenuItemFont::create( s_aTestTypes[i].c_str() ) );
|
||||
}
|
||||
_typeItem->setPosition(ccpAdd(posMid, ccp(0, 120)));
|
||||
_typeItem->setPosition(posMid + Point(0, 120));
|
||||
pMenu->addChild(_typeItem);
|
||||
|
||||
// poses item
|
||||
|
@ -151,7 +151,7 @@ bool TestAds::init()
|
|||
{
|
||||
_posItem->getSubItems()->addObject( MenuItemFont::create( s_aTestPoses[i].c_str() ) );
|
||||
}
|
||||
_posItem->setPosition(ccpAdd(posMid, ccp(200, 120)));
|
||||
_posItem->setPosition(posMid + Point(200, 120));
|
||||
pMenu->addChild(_posItem);
|
||||
|
||||
// init options
|
||||
|
|
|
@ -89,7 +89,7 @@ bool TestAnalytics::init()
|
|||
|
||||
Size visibleSize = Director::getInstance()->getVisibleSize();
|
||||
Point origin = Director::getInstance()->getVisibleOrigin();
|
||||
Point posBR = ccp(origin.x + visibleSize.width, origin.y);
|
||||
Point posBR = Point(origin.x + visibleSize.width, origin.y);
|
||||
|
||||
/////////////////////////////
|
||||
// 2. add a menu item with "X" image, which is clicked to quit the program
|
||||
|
@ -98,7 +98,7 @@ bool TestAnalytics::init()
|
|||
// add a "close" icon to exit the progress. it's an autorelease object
|
||||
MenuItemFont *pBackItem = MenuItemFont::create("Back", CC_CALLBACK_1(TestAnalytics::menuBackCallback, this));
|
||||
Size backSize = pBackItem->getContentSize();
|
||||
pBackItem->setPosition(ccpAdd(posBR, ccp(- backSize.width / 2, backSize.height / 2)));
|
||||
pBackItem->setPosition(posBR + Point(- backSize.width / 2, backSize.height / 2));
|
||||
|
||||
// create menu, it's an autorelease object
|
||||
Menu* pMenu = Menu::create(pBackItem, NULL);
|
||||
|
@ -111,15 +111,15 @@ bool TestAnalytics::init()
|
|||
MenuItemLabel* pMenuItem = MenuItemLabel::create(label, CC_CALLBACK_1(TestAnalytics::eventMenuCallback, this));
|
||||
pMenu->addChild(pMenuItem, 0, s_EventMenuItem[i].tag);
|
||||
yPos = visibleSize.height - 35*i - 100;
|
||||
pMenuItem->setPosition( ccp(visibleSize.width / 2, yPos));
|
||||
pMenuItem->setPosition( Point(visibleSize.width / 2, yPos));
|
||||
}
|
||||
|
||||
std::string strName = _pluginAnalytics->getPluginName();
|
||||
std::string strVer = _pluginAnalytics->getSDKVersion();
|
||||
char ret[256] = { 0 };
|
||||
sprintf(ret, "Plugin : %s, Ver : %s", strName.c_str(), strVer.c_str());
|
||||
LabelTTF* pLabel = LabelTTF::create(ret, "Arial", 18, CCSizeMake(visibleSize.width, 0), kTextAlignmentCenter);
|
||||
pLabel->setPosition(ccp(visibleSize.width / 2, yPos - 80));
|
||||
LabelTTF* pLabel = LabelTTF::create(ret, "Arial", 18, Point(visibleSize.width, 0), kTextAlignmentCenter);
|
||||
pLabel->setPosition(Point(visibleSize.width / 2, yPos - 80));
|
||||
addChild(pLabel);
|
||||
|
||||
return true;
|
||||
|
|
|
@ -48,7 +48,7 @@ MyPurchase::~MyPurchase()
|
|||
}
|
||||
}
|
||||
|
||||
MyPurchase* MyPurchase::sharedPurchase()
|
||||
MyPurchase* MyPurchase::getInstance()
|
||||
{
|
||||
if (s_pPurchase == NULL) {
|
||||
s_pPurchase = new MyPurchase();
|
||||
|
|
|
@ -35,7 +35,7 @@ public:
|
|||
class MyPurchase
|
||||
{
|
||||
public:
|
||||
static MyPurchase* sharedPurchase();
|
||||
static MyPurchase* getInstance();
|
||||
static void purgePurchase();
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -70,28 +70,28 @@ bool TestIAP::init()
|
|||
return false;
|
||||
}
|
||||
|
||||
MyPurchase::sharedPurchase()->loadIAPPlugin();
|
||||
MyPurchase::getInstance()->loadIAPPlugin();
|
||||
|
||||
/////////////////////////////
|
||||
// 2. add a menu item with "X" image, which is clicked to quit the program
|
||||
// you may modify it.
|
||||
|
||||
EGLView* pEGLView = EGLView::getInstance();
|
||||
Point posBR = ccp(pEGLView->getVisibleOrigin().x + pEGLView->getVisibleSize().width, pEGLView->getVisibleOrigin().y);
|
||||
Point posTL = ccp(pEGLView->getVisibleOrigin().x, pEGLView->getVisibleOrigin().y + pEGLView->getVisibleSize().height);
|
||||
Point posBR = Point(pEGLView->getVisibleOrigin().x + pEGLView->getVisibleSize().width, pEGLView->getVisibleOrigin().y);
|
||||
Point posTL = Point(pEGLView->getVisibleOrigin().x, pEGLView->getVisibleOrigin().y + pEGLView->getVisibleSize().height);
|
||||
|
||||
// add a "close" icon to exit the progress. it's an autorelease object
|
||||
MenuItemFont *pBackItem = MenuItemFont::create("Back", CC_CALLBACK_1(TestIAP::menuBackCallback, this));
|
||||
Size backSize = pBackItem->getContentSize();
|
||||
pBackItem->setPosition(ccpAdd(posBR, ccp(- backSize.width / 2, backSize.height / 2)));
|
||||
pBackItem->setPosition(posBR + Point(- backSize.width / 2, backSize.height / 2));
|
||||
|
||||
// create menu, it's an autorelease object
|
||||
Menu* pMenu = Menu::create(pBackItem, NULL);
|
||||
pMenu->setPosition( Point::ZERO );
|
||||
this->addChild(pMenu, 1);
|
||||
|
||||
Point posStep = ccp(220, -150);
|
||||
Point beginPos = ccpAdd(posTL, ccpMult(posStep, 0.5f));
|
||||
Point posStep = Point(220, -150);
|
||||
Point beginPos = posTL + (posStep * 0.5f);
|
||||
int line = 0;
|
||||
int row = 0;
|
||||
for (int i = 0; i < sizeof(s_EventMenuItem)/sizeof(s_EventMenuItem[0]); i++) {
|
||||
|
@ -99,13 +99,13 @@ bool TestIAP::init()
|
|||
CC_CALLBACK_1(TestIAP::eventMenuCallback, this));
|
||||
pMenu->addChild(pMenuItem, 0, s_EventMenuItem[i].tag);
|
||||
|
||||
Point pos = ccpAdd(beginPos, ccp(posStep.x * row, posStep.y * line));
|
||||
Point pos = beginPos + Point(posStep.x * row, posStep.y * line);
|
||||
Size itemSize = pMenuItem->getContentSize();
|
||||
if ((pos.x + itemSize.width / 2) > posBR.x)
|
||||
{
|
||||
line += 1;
|
||||
row = 0;
|
||||
pos = ccpAdd(beginPos, ccp(posStep.x * row, posStep.y * line));
|
||||
pos = beginPos + Point(posStep.x * row, posStep.y * line);
|
||||
}
|
||||
row += 1;
|
||||
pMenuItem->setPosition(pos);
|
||||
|
@ -123,7 +123,7 @@ void TestIAP::eventMenuCallback(Object* pSender)
|
|||
pInfo["productPrice"] = "0.01";
|
||||
pInfo["productDesc"] = "100个金灿灿的游戏币哦";
|
||||
pInfo["Nd91ProductId"] = "685994";
|
||||
MyPurchase::sharedPurchase()->payByMode(pInfo, mode);
|
||||
MyPurchase::getInstance()->payByMode(pInfo, mode);
|
||||
}
|
||||
|
||||
void TestIAP::menuBackCallback(Object* pSender)
|
||||
|
|
|
@ -49,7 +49,7 @@ MyIAPOLManager::~MyIAPOLManager()
|
|||
}
|
||||
}
|
||||
|
||||
MyIAPOLManager* MyIAPOLManager::sharedManager()
|
||||
MyIAPOLManager* MyIAPOLManager::getInstance()
|
||||
{
|
||||
if (s_pIAPOnline == NULL) {
|
||||
s_pIAPOnline = new MyIAPOLManager();
|
||||
|
|
|
@ -36,7 +36,7 @@ public:
|
|||
class MyIAPOLManager
|
||||
{
|
||||
public:
|
||||
static MyIAPOLManager* sharedManager();
|
||||
static MyIAPOLManager* getInstance();
|
||||
static void purge();
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -74,7 +74,7 @@ bool TestIAPOnline::init()
|
|||
return false;
|
||||
}
|
||||
|
||||
MyIAPOLManager::sharedManager()->loadPlugins();
|
||||
MyIAPOLManager::getInstance()->loadPlugins();
|
||||
|
||||
/////////////////////////////
|
||||
// 2. add a menu item with "X" image, which is clicked to quit the program
|
||||
|
@ -153,7 +153,7 @@ void TestIAPOnline::eventMenuCallback(Object* pSender)
|
|||
// pInfo["QHAppOrderID"] = "Order ID in game"; // The order ID in game (Game defined this)
|
||||
}
|
||||
|
||||
MyIAPOLManager::sharedManager()->payByMode(pInfo, mode);
|
||||
MyIAPOLManager::getInstance()->payByMode(pInfo, mode);
|
||||
}
|
||||
|
||||
void TestIAPOnline::menuBackCallback(Object* pSender)
|
||||
|
|
|
@ -48,7 +48,7 @@ MyShareManager::~MyShareManager()
|
|||
}
|
||||
}
|
||||
|
||||
MyShareManager* MyShareManager::sharedManager()
|
||||
MyShareManager* MyShareManager::getInstance()
|
||||
{
|
||||
if (s_pManager == NULL) {
|
||||
s_pManager = new MyShareManager();
|
||||
|
|
|
@ -35,7 +35,7 @@ public:
|
|||
class MyShareManager
|
||||
{
|
||||
public:
|
||||
static MyShareManager* sharedManager();
|
||||
static MyShareManager* getInstance();
|
||||
static void purgeManager();
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -70,7 +70,7 @@ bool TestShare::init()
|
|||
return false;
|
||||
}
|
||||
|
||||
MyShareManager::sharedManager()->loadSharePlugin();
|
||||
MyShareManager::getInstance()->loadSharePlugin();
|
||||
|
||||
/////////////////////////////
|
||||
// 2. add a menu item with "X" image, which is clicked to quit the program
|
||||
|
@ -120,7 +120,7 @@ void TestShare::eventMenuCallback(Object* pSender)
|
|||
pInfo["SharedText"] = "Share message : HelloShare!";
|
||||
// pInfo["SharedImagePath"] = "Full/path/to/image";
|
||||
MyShareManager::MyShareMode mode = (MyShareManager::MyShareMode) (pMenuItem->getTag() - TAG_SHARE_BY_TWWITER + 1);
|
||||
MyShareManager::sharedManager()->shareByMode(pInfo, mode);
|
||||
MyShareManager::getInstance()->shareByMode(pInfo, mode);
|
||||
}
|
||||
|
||||
void TestShare::menuBackCallback(Object* pSender)
|
||||
|
|
|
@ -41,7 +41,7 @@ MySocialManager::~MySocialManager()
|
|||
unloadPlugins();
|
||||
}
|
||||
|
||||
MySocialManager* MySocialManager::sharedManager()
|
||||
MySocialManager* MySocialManager::getInstance()
|
||||
{
|
||||
if (s_pManager == NULL) {
|
||||
s_pManager = new MySocialManager();
|
||||
|
|
|
@ -29,7 +29,7 @@ THE SOFTWARE.
|
|||
class MySocialManager : public cocos2d::plugin::SocialListener
|
||||
{
|
||||
public:
|
||||
static MySocialManager* sharedManager();
|
||||
static MySocialManager* getInstance();
|
||||
static void purgeManager();
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -59,7 +59,7 @@ bool TestSocial::init()
|
|||
return false;
|
||||
}
|
||||
|
||||
MySocialManager::sharedManager()->loadPlugins();
|
||||
MySocialManager::getInstance()->loadPlugins();
|
||||
|
||||
Size visibleSize = Director::getInstance()->getVisibleSize();
|
||||
Point origin = Director::getInstance()->getVisibleOrigin();
|
||||
|
@ -119,7 +119,7 @@ bool TestSocial::init()
|
|||
void TestSocial::testSubmit(Object* pSender)
|
||||
{
|
||||
int nIdx = _caseItem->getSelectedIndex();
|
||||
MySocialManager::sharedManager()->submitScore((MySocialManager::MySocialMode)(nIdx + 1), "0", 30000);
|
||||
MySocialManager::getInstance()->submitScore((MySocialManager::MySocialMode)(nIdx + 1), "0", 30000);
|
||||
}
|
||||
|
||||
void TestSocial::testUnlock(Object* pSender)
|
||||
|
@ -129,19 +129,19 @@ void TestSocial::testUnlock(Object* pSender)
|
|||
info["AchievementID"] = "MyAchiID";
|
||||
info["NDDisplayText"] = "Fighter";
|
||||
info["NDScore"] = "100";
|
||||
MySocialManager::sharedManager()->unlockAchievement((MySocialManager::MySocialMode)(nIdx + 1), info);
|
||||
MySocialManager::getInstance()->unlockAchievement((MySocialManager::MySocialMode)(nIdx + 1), info);
|
||||
}
|
||||
|
||||
void TestSocial::testLeaderboard(Object* pSender)
|
||||
{
|
||||
int nIdx = _caseItem->getSelectedIndex();
|
||||
MySocialManager::sharedManager()->showLeaderboard((MySocialManager::MySocialMode)(nIdx + 1), "0");
|
||||
MySocialManager::getInstance()->showLeaderboard((MySocialManager::MySocialMode)(nIdx + 1), "0");
|
||||
}
|
||||
|
||||
void TestSocial::testAchievement(Object* pSender)
|
||||
{
|
||||
int nIdx = _caseItem->getSelectedIndex();
|
||||
MySocialManager::sharedManager()->showAchievement((MySocialManager::MySocialMode)(nIdx + 1));
|
||||
MySocialManager::getInstance()->showAchievement((MySocialManager::MySocialMode)(nIdx + 1));
|
||||
}
|
||||
|
||||
void TestSocial::menuBackCallback(Object* pSender)
|
||||
|
|
|
@ -49,7 +49,7 @@ MyUserManager::~MyUserManager()
|
|||
}
|
||||
}
|
||||
|
||||
MyUserManager* MyUserManager::sharedManager()
|
||||
MyUserManager* MyUserManager::getInstance()
|
||||
{
|
||||
if (s_pManager == NULL) {
|
||||
s_pManager = new MyUserManager();
|
||||
|
|
|
@ -36,7 +36,7 @@ public:
|
|||
class MyUserManager
|
||||
{
|
||||
public:
|
||||
static MyUserManager* sharedManager();
|
||||
static MyUserManager* getInstance();
|
||||
static void purgeManager();
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -60,7 +60,7 @@ bool TestUser::init()
|
|||
return false;
|
||||
}
|
||||
|
||||
MyUserManager::sharedManager()->loadPlugin();
|
||||
MyUserManager::getInstance()->loadPlugin();
|
||||
Size visibleSize = Director::getInstance()->getVisibleSize();
|
||||
Point origin = Director::getInstance()->getVisibleOrigin();
|
||||
Point posMid = Point(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2);
|
||||
|
@ -117,12 +117,12 @@ void TestUser::caseChanged(Object* pSender)
|
|||
|
||||
void TestUser::testLogin(Object* pSender)
|
||||
{
|
||||
MyUserManager::sharedManager()->loginByMode((MyUserManager::MyUserMode) (_selectedCase + 1));
|
||||
MyUserManager::getInstance()->loginByMode((MyUserManager::MyUserMode) (_selectedCase + 1));
|
||||
}
|
||||
|
||||
void TestUser::testLogout(Object* pSender)
|
||||
{
|
||||
MyUserManager::sharedManager()->logoutByMode((MyUserManager::MyUserMode) (_selectedCase + 1));
|
||||
MyUserManager::getInstance()->logoutByMode((MyUserManager::MyUserMode) (_selectedCase + 1));
|
||||
}
|
||||
|
||||
void TestUser::menuBackCallback(Object* pSender)
|
||||
|
|
|
@ -61,16 +61,16 @@ bool AppDelegate::applicationDidFinishLaunching()
|
|||
void AppDelegate::applicationDidEnterBackground()
|
||||
{
|
||||
Director::getInstance()->stopAnimation();
|
||||
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
|
||||
SimpleAudioEngine::sharedEngine()->pauseAllEffects();
|
||||
SimpleAudioEngine::getInstance()->pauseBackgroundMusic();
|
||||
SimpleAudioEngine::getInstance()->pauseAllEffects();
|
||||
}
|
||||
|
||||
// this function will be called when the app is active again
|
||||
void AppDelegate::applicationWillEnterForeground()
|
||||
{
|
||||
Director::getInstance()->startAnimation();
|
||||
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
|
||||
SimpleAudioEngine::sharedEngine()->resumeAllEffects();
|
||||
SimpleAudioEngine::getInstance()->resumeBackgroundMusic();
|
||||
SimpleAudioEngine::getInstance()->resumeAllEffects();
|
||||
}
|
||||
|
||||
UpdateLayer::UpdateLayer()
|
||||
|
@ -149,16 +149,16 @@ bool UpdateLayer::init()
|
|||
pItemEnter = MenuItemFont::create("enter", CC_CALLBACK_1(UpdateLayer::enter, this));
|
||||
pItemUpdate = MenuItemFont::create("update", CC_CALLBACK_1(UpdateLayer::update, this));
|
||||
|
||||
pItemEnter->setPosition(ccp(size.width/2, size.height/2 + 50));
|
||||
pItemReset->setPosition(ccp(size.width/2, size.height/2));
|
||||
pItemUpdate->setPosition(ccp(size.width/2, size.height/2 - 50));
|
||||
pItemEnter->setPosition(Point(size.width/2, size.height/2 + 50));
|
||||
pItemReset->setPosition(Point(size.width/2, size.height/2));
|
||||
pItemUpdate->setPosition(Point(size.width/2, size.height/2 - 50));
|
||||
|
||||
Menu *menu = Menu::create(pItemUpdate, pItemEnter, pItemReset, NULL);
|
||||
menu->setPosition(ccp(0,0));
|
||||
menu->setPosition(Point(0,0));
|
||||
addChild(menu);
|
||||
|
||||
pProgressLabel = LabelTTF::create("", "Arial", 20);
|
||||
pProgressLabel->setPosition(ccp(100, 50));
|
||||
pProgressLabel->setPosition(Point(100, 50));
|
||||
addChild(pProgressLabel);
|
||||
|
||||
return true;
|
||||
|
|
|
@ -51,7 +51,7 @@ fi
|
|||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
# ... use paths relative to current directory
|
||||
COCOS2DX_ROOT="../../../../"
|
||||
COCOS2DX_ROOT="$DIR/../../../.."
|
||||
APP_ROOT="$DIR/.."
|
||||
APP_ANDROID_ROOT="$DIR"
|
||||
BINDINGS_JS_ROOT="$APP_ROOT/../../../scripting/javascript/bindings/js"
|
||||
|
|
|
@ -26,9 +26,9 @@ $(TARGET).js: $(OBJECTS) $(STATICLIBS) $(COCOS_LIBS) $(CORE_MAKEFILE_LIST)
|
|||
|
||||
|
||||
ifeq ($(shell uname -s),Darwin)
|
||||
ARIEL_TTF := /Library/Fonts/Arial.ttf
|
||||
ARIAL_TTF := /Library/Fonts/Arial.ttf
|
||||
else
|
||||
ARIEL_TTF := $(COCOS_ROOT)/samples/Cpp/TestCpp/Resources/fonts/arial.ttf
|
||||
ARIAL_TTF := $(COCOS_ROOT)/samples/Cpp/TestCpp/Resources/fonts/arial.ttf
|
||||
endif
|
||||
|
||||
$(TARGET).data:
|
||||
|
@ -39,15 +39,16 @@ $(TARGET).data:
|
|||
(cd $(RESOURCE_PATH) && cp -a $(RESOURCES) $(RESTMP))
|
||||
(cd $(FONT_PATH) && cp -a * $(RESTMP)/fonts)
|
||||
# NOTE: we copy the system arial.ttf so that there is always a fallback.
|
||||
cp $(ARIEL_TTF) $(RESTMP)/fonts/arial.ttf
|
||||
cp $(ARIAL_TTF) $(RESTMP)/fonts/arial.ttf
|
||||
(cd $(RESTMP); python $(PACKAGER) $(EXECUTABLE).data $(patsubst %,--preload %,$(RESOURCES)) --preload fonts --pre-run > $(EXECUTABLE).data.js)
|
||||
mv $(RESTMP)/$(EXECUTABLE).data $@
|
||||
mv $(RESTMP)/$(EXECUTABLE).data.js $@.js
|
||||
rm -rf $(RESTMP)
|
||||
|
||||
$(BIN_DIR)/index.html: index.html
|
||||
$(BIN_DIR)/$(HTMLTPL_FILE): $(HTMLTPL_DIR)/$(HTMLTPL_FILE)
|
||||
@mkdir -p $(@D)
|
||||
cp index.html $(@D)
|
||||
@cp -Rf $(HTMLTPL_DIR)/* $(BIN_DIR)
|
||||
@sed -i -e "s/JS_APPLICATION/$(EXECUTABLE)/g" $(BIN_DIR)/$(HTMLTPL_FILE)
|
||||
|
||||
$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST)
|
||||
@mkdir -p $(@D)
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Emscripten-Generated Code</title>
|
||||
<style>
|
||||
.emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; }
|
||||
textarea.emscripten { font-family: monospace; width: 80%; }
|
||||
div.emscripten { text-align: center; }
|
||||
div.emscripten_border { border: 1px solid black; }
|
||||
/* the canvas *must not* have any border or padding, or mouse coords will be wrong */
|
||||
canvas.emscripten { border: 0px none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<hr/>
|
||||
<div class="emscripten" id="status">Downloading...</div>
|
||||
<div class="emscripten">
|
||||
<progress value="0" max="100" id="progress" hidden=1></progress>
|
||||
</div>
|
||||
<div class="emscripten_border">
|
||||
<canvas width="1024" height="768" class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="emscripten">
|
||||
<input type="checkbox" id="resize">Resize canvas
|
||||
<input type="checkbox" id="pointerLock" checked>Lock/hide mouse pointer
|
||||
|
||||
<input type="button" value="Fullscreen" onclick="Module.requestFullScreen(document.getElementById('pointerLock').checked,
|
||||
document.getElementById('resize').checked)">
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
<textarea class="emscripten" id="output" rows="8"></textarea>
|
||||
<hr>
|
||||
<script type='text/javascript'>
|
||||
// connect to canvas
|
||||
var Module = {
|
||||
preRun: [],
|
||||
postRun: [],
|
||||
print: (function() {
|
||||
var element = document.getElementById('output');
|
||||
element.value = ''; // clear browser cache
|
||||
return function(text) {
|
||||
text = Array.prototype.slice.call(arguments).join(' ');
|
||||
// These replacements are necessary if you render to raw HTML
|
||||
//text = text.replace(/&/g, "&");
|
||||
//text = text.replace(/</g, "<");
|
||||
//text = text.replace(/>/g, ">");
|
||||
//text = text.replace('\n', '<br>', 'g');
|
||||
element.value += text + "\n";
|
||||
element.scrollTop = 99999; // focus on bottom
|
||||
};
|
||||
})(),
|
||||
printErr: function(text) {
|
||||
text = Array.prototype.slice.call(arguments).join(' ');
|
||||
if (0) { // XXX disabled for safety typeof dump == 'function') {
|
||||
dump(text + '\n'); // fast, straight to the real console
|
||||
} else {
|
||||
console.log(text);
|
||||
}
|
||||
},
|
||||
canvas: document.getElementById('canvas'),
|
||||
setStatus: function(text) {
|
||||
if (Module.setStatus.interval) clearInterval(Module.setStatus.interval);
|
||||
var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
|
||||
var statusElement = document.getElementById('status');
|
||||
var progressElement = document.getElementById('progress');
|
||||
if (m) {
|
||||
text = m[1];
|
||||
progressElement.value = parseInt(m[2])*100;
|
||||
progressElement.max = parseInt(m[4])*100;
|
||||
progressElement.hidden = false;
|
||||
} else {
|
||||
progressElement.value = null;
|
||||
progressElement.max = null;
|
||||
progressElement.hidden = true;
|
||||
}
|
||||
statusElement.innerHTML = text;
|
||||
},
|
||||
totalDependencies: 0,
|
||||
monitorRunDependencies: function(left) {
|
||||
this.totalDependencies = Math.max(this.totalDependencies, left);
|
||||
Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
|
||||
}
|
||||
};
|
||||
Module.setStatus('Downloading...');
|
||||
</script>
|
||||
<script type="text/javascript" src="HelloCpp.data.js"></script>
|
||||
<script type="text/javascript" src="HelloCpp.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -57,9 +57,10 @@ $(TARGET).data:
|
|||
mv $(RESTMP)/$(EXECUTABLE).data.js $@.js
|
||||
rm -rf $(RESTMP)
|
||||
|
||||
$(BIN_DIR)/index.html: index.html
|
||||
$(BIN_DIR)/$(HTMLTPL_FILE): $(HTMLTPL_DIR)/$(HTMLTPL_FILE)
|
||||
@mkdir -p $(@D)
|
||||
cp index.html $(@D)
|
||||
@cp -Rf $(HTMLTPL_DIR)/* $(BIN_DIR)
|
||||
@sed -i -e "s/JS_APPLICATION/$(EXECUTABLE)/g" $(BIN_DIR)/$(HTMLTPL_FILE)
|
||||
|
||||
$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST)
|
||||
@mkdir -p $(@D)
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>SimpleGame</title>
|
||||
<style>
|
||||
.emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; }
|
||||
textarea.emscripten { font-family: monospace; width: 80%; }
|
||||
div.emscripten { text-align: center; }
|
||||
div.emscripten_border { border: 1px solid black; }
|
||||
/* the canvas *must not* have any border or padding, or mouse coords will be wrong */
|
||||
canvas.emscripten { border: 0px none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<hr/>
|
||||
<div class="emscripten" id="status">Downloading...</div>
|
||||
<div class="emscripten">
|
||||
<progress value="0" max="100" id="progress" hidden=1></progress>
|
||||
</div>
|
||||
<div class="emscripten_border">
|
||||
<canvas width="1024" height="768" class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas>
|
||||
</div>
|
||||
<hr/>
|
||||
<div class="emscripten">
|
||||
<input type="checkbox" id="resize">Resize canvas
|
||||
<input type="checkbox" id="pointerLock" checked>Lock/hide mouse pointer
|
||||
|
||||
<input type="button" value="Fullscreen" onclick="Module.requestFullScreen(document.getElementById('pointerLock').checked,
|
||||
document.getElementById('resize').checked)">
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
<textarea class="emscripten" id="output" rows="8"></textarea>
|
||||
<hr>
|
||||
<script type='text/javascript'>
|
||||
// connect to canvas
|
||||
var Module = {
|
||||
preRun: [],
|
||||
postRun: [],
|
||||
print: (function() {
|
||||
var element = document.getElementById('output');
|
||||
element.value = ''; // clear browser cache
|
||||
return function(text) {
|
||||
text = Array.prototype.slice.call(arguments).join(' ');
|
||||
// These replacements are necessary if you render to raw HTML
|
||||
//text = text.replace(/&/g, "&");
|
||||
//text = text.replace(/</g, "<");
|
||||
//text = text.replace(/>/g, ">");
|
||||
//text = text.replace('\n', '<br>', 'g');
|
||||
element.value += text + "\n";
|
||||
element.scrollTop = 99999; // focus on bottom
|
||||
};
|
||||
})(),
|
||||
printErr: function(text) {
|
||||
text = Array.prototype.slice.call(arguments).join(' ');
|
||||
if (0) { // XXX disabled for safety typeof dump == 'function') {
|
||||
dump(text + '\n'); // fast, straight to the real console
|
||||
} else {
|
||||
console.log(text);
|
||||
}
|
||||
},
|
||||
canvas: document.getElementById('canvas'),
|
||||
setStatus: function(text) {
|
||||
if (Module.setStatus.interval) clearInterval(Module.setStatus.interval);
|
||||
var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
|
||||
var statusElement = document.getElementById('status');
|
||||
var progressElement = document.getElementById('progress');
|
||||
if (m) {
|
||||
text = m[1];
|
||||
progressElement.value = parseInt(m[2])*100;
|
||||
progressElement.max = parseInt(m[4])*100;
|
||||
progressElement.hidden = false;
|
||||
} else {
|
||||
progressElement.value = null;
|
||||
progressElement.max = null;
|
||||
progressElement.hidden = true;
|
||||
}
|
||||
statusElement.innerHTML = text;
|
||||
},
|
||||
totalDependencies: 0,
|
||||
monitorRunDependencies: function(left) {
|
||||
this.totalDependencies = Math.max(this.totalDependencies, left);
|
||||
Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
|
||||
}
|
||||
};
|
||||
Module.setStatus('Downloading...');
|
||||
</script>
|
||||
<script type="text/javascript" src="SimpleGame.data.js"></script>
|
||||
<script type="text/javascript" src="SimpleGame.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -12,12 +12,12 @@ AnimationsTestLayer::~AnimationsTestLayer()
|
|||
CC_SAFE_RELEASE_NULL(mAnimationManager);
|
||||
}
|
||||
|
||||
SEL_MenuHandler AnimationsTestLayer::onResolveCCBMenuItemSelector(Object * pTarget, const char * pSelectorName)
|
||||
SEL_MenuHandler AnimationsTestLayer::onResolveCCBCCMenuItemSelector(Object * pTarget, const char * pSelectorName)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SEL_CCControlHandler AnimationsTestLayer::onResolveCCBControlSelector(Object *pTarget, const char*pSelectorName) {
|
||||
SEL_CCControlHandler AnimationsTestLayer::onResolveCCBCCControlSelector(Object *pTarget, const char*pSelectorName) {
|
||||
CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onControlButtonIdleClicked", AnimationsTestLayer::onControlButtonIdleClicked);
|
||||
CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onControlButtonWaveClicked", AnimationsTestLayer::onControlButtonWaveClicked);
|
||||
CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onControlButtonJumpClicked", AnimationsTestLayer::onControlButtonJumpClicked);
|
||||
|
|
|
@ -15,8 +15,8 @@ public:
|
|||
AnimationsTestLayer();
|
||||
virtual ~AnimationsTestLayer();
|
||||
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBMenuItemSelector(Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual bool onAssignCCBMemberVariable(cocos2d::Object * pTarget, const char * pMemberVariableName, cocos2d::Node * node);
|
||||
|
||||
void onControlButtonIdleClicked(cocos2d::Object * pSender, cocos2d::extension::ControlEvent pControlEvent);
|
||||
|
|
|
@ -12,11 +12,11 @@ ButtonTestLayer::~ButtonTestLayer()
|
|||
CC_SAFE_RELEASE(mControlEventLabel);
|
||||
}
|
||||
|
||||
SEL_MenuHandler ButtonTestLayer::onResolveCCBMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_MenuHandler ButtonTestLayer::onResolveCCBCCMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SEL_CCControlHandler ButtonTestLayer::onResolveCCBControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_CCControlHandler ButtonTestLayer::onResolveCCBCCControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onControlButtonClicked", ButtonTestLayer::onControlButtonClicked);
|
||||
|
||||
return NULL;
|
||||
|
|
|
@ -15,8 +15,8 @@ public:
|
|||
ButtonTestLayer();
|
||||
virtual ~ButtonTestLayer();
|
||||
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual bool onAssignCCBMemberVariable(cocos2d::Object * pTarget, const char * pMemberVariableName, cocos2d::Node * node);
|
||||
|
||||
void onControlButtonClicked(cocos2d::Object * pSender, cocos2d::extension::ControlEvent pControlEvent);
|
||||
|
|
|
@ -68,11 +68,11 @@ void HelloCocosBuilderLayer::onNodeLoaded(cocos2d::Node * node, cocos2d::extens
|
|||
}
|
||||
|
||||
|
||||
SEL_MenuHandler HelloCocosBuilderLayer::onResolveCCBMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_MenuHandler HelloCocosBuilderLayer::onResolveCCBCCMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SEL_CCControlHandler HelloCocosBuilderLayer::onResolveCCBControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_CCControlHandler HelloCocosBuilderLayer::onResolveCCBCCControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onMenuTestClicked", HelloCocosBuilderLayer::onMenuTestClicked);
|
||||
CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onSpriteTestClicked", HelloCocosBuilderLayer::onSpriteTestClicked);
|
||||
CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onButtonTestClicked", HelloCocosBuilderLayer::onButtonTestClicked);
|
||||
|
|
|
@ -28,8 +28,8 @@ class HelloCocosBuilderLayer
|
|||
|
||||
void openTest(const char * pCCBFileName, const char * nodeName = NULL, cocos2d::extension::NodeLoader * nodeLoader = NULL);
|
||||
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual bool onAssignCCBMemberVariable(cocos2d::Object * pTarget, const char * pMemberVariableName, cocos2d::Node * node);
|
||||
virtual bool onAssignCCBCustomProperty(Object* pTarget, const char* pMemberVariableName, cocos2d::extension::CCBValue* pCCBValue);
|
||||
virtual void onNodeLoaded(cocos2d::Node * node, cocos2d::extension::NodeLoader * nodeLoader);
|
||||
|
|
|
@ -12,7 +12,7 @@ MenuTestLayer::~MenuTestLayer()
|
|||
CC_SAFE_RELEASE(mMenuItemStatusLabelBMFont);
|
||||
}
|
||||
|
||||
SEL_MenuHandler MenuTestLayer::onResolveCCBMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_MenuHandler MenuTestLayer::onResolveCCBCCMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, "onMenuItemAClicked", MenuTestLayer::onMenuItemAClicked);
|
||||
CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, "onMenuItemBClicked", MenuTestLayer::onMenuItemBClicked);
|
||||
CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, "onMenuItemCClicked", MenuTestLayer::onMenuItemCClicked);
|
||||
|
@ -20,7 +20,7 @@ SEL_MenuHandler MenuTestLayer::onResolveCCBMenuItemSelector(Object * pTarget, co
|
|||
return NULL;
|
||||
}
|
||||
|
||||
SEL_CCControlHandler MenuTestLayer::onResolveCCBControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_CCControlHandler MenuTestLayer::onResolveCCBCCControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@ class MenuTestLayer
|
|||
MenuTestLayer();
|
||||
virtual ~MenuTestLayer();
|
||||
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual bool onAssignCCBMemberVariable(cocos2d::Object * pTarget, const char * pMemberVariableName, cocos2d::Node * node);
|
||||
|
||||
void onMenuItemAClicked(cocos2d::Object * pSender);
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
USING_NS_CC;
|
||||
USING_NS_CC_EXT;
|
||||
|
||||
SEL_MenuHandler TestHeaderLayer::onResolveCCBMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_MenuHandler TestHeaderLayer::onResolveCCBCCMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, "onBackClicked", TestHeaderLayer::onBackClicked);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SEL_CCControlHandler TestHeaderLayer::onResolveCCBControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_CCControlHandler TestHeaderLayer::onResolveCCBCCControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -12,8 +12,8 @@ class TestHeaderLayer
|
|||
public:
|
||||
CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(TestHeaderLayer, create);
|
||||
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual void onNodeLoaded(cocos2d::Node * node, cocos2d::extension::NodeLoader * nodeLoader);
|
||||
|
||||
void onBackClicked(cocos2d::Object * pSender);
|
||||
|
|
|
@ -14,11 +14,11 @@ TimelineCallbackTestLayer::~TimelineCallbackTestLayer()
|
|||
CocosDenshion::SimpleAudioEngine::end();
|
||||
}
|
||||
|
||||
SEL_MenuHandler TimelineCallbackTestLayer::onResolveCCBMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_MenuHandler TimelineCallbackTestLayer::onResolveCCBCCMenuItemSelector(Object * pTarget, const char * pSelectorName) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SEL_CCControlHandler TimelineCallbackTestLayer::onResolveCCBControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
SEL_CCControlHandler TimelineCallbackTestLayer::onResolveCCBCCControlSelector(Object * pTarget, const char * pSelectorName) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@ class TimelineCallbackTestLayer
|
|||
TimelineCallbackTestLayer();
|
||||
virtual ~TimelineCallbackTestLayer();
|
||||
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::Object * pTarget, const char * pSelectorName);
|
||||
virtual cocos2d::SEL_CallFuncN onResolveCCBCallFuncSelector(Object * pTarget, const char* pSelectorName);
|
||||
virtual bool onAssignCCBMemberVariable(cocos2d::Object * pTarget, const char * pMemberVariableName, cocos2d::Node * node);
|
||||
|
||||
|
|
|
@ -35,17 +35,18 @@ void EnemyController::onEnter()
|
|||
|
||||
|
||||
// Determine speed of the target
|
||||
int minDuration = (int)2.0;
|
||||
int maxDuration = (int)4.0;
|
||||
int minDuration = 2;
|
||||
int maxDuration = 4;
|
||||
int rangeDuration = maxDuration - minDuration;
|
||||
// srand( TimGetTicks() );
|
||||
int actualDuration = ( rand() % rangeDuration ) + minDuration;
|
||||
|
||||
// Create the actions
|
||||
FiniteTimeAction* actionMove = MoveTo::create( (float)actualDuration,
|
||||
FiniteTimeAction* actionMove = MoveTo::create( actualDuration,
|
||||
Point(0 - getOwner()->getContentSize().width/2, actualY) );
|
||||
FiniteTimeAction* actionMoveDone = CallFuncN::create(getOwner()->getParent()->getComponent("SceneController"),
|
||||
callfuncN_selector(SceneController::spriteMoveFinished));
|
||||
FiniteTimeAction* actionMoveDone = CallFuncN::create(
|
||||
CC_CALLBACK_1(SceneController::spriteMoveFinished, static_cast<SceneController*>( getOwner()->getParent()->getComponent("SceneController") )));
|
||||
|
||||
_owner->runAction( Sequence::create(actionMove, actionMoveDone, NULL) );
|
||||
}
|
||||
|
||||
|
|
|
@ -93,6 +93,10 @@ ProjectileController* ProjectileController::create(void)
|
|||
return pRet;
|
||||
}
|
||||
|
||||
void freeFunction( Node *ignore )
|
||||
{
|
||||
log("hello");
|
||||
}
|
||||
|
||||
void ProjectileController::move(float flocationX, float flocationY)
|
||||
{
|
||||
|
@ -121,19 +125,25 @@ void ProjectileController::move(float flocationX, float flocationY)
|
|||
float velocity = 480/1; // 480pixels/1sec
|
||||
float realMoveDuration = length/velocity;
|
||||
|
||||
// Move projectile to actual endpoint
|
||||
_owner->runAction( Sequence::create(
|
||||
MoveTo::create(realMoveDuration, realDest),
|
||||
CallFuncN::create(getOwner()->getParent()->getComponent("SceneController"),
|
||||
callfuncN_selector(SceneController::spriteMoveFinished)),
|
||||
NULL) );
|
||||
auto callfunc = CallFuncN::create(
|
||||
CC_CALLBACK_1(
|
||||
SceneController::spriteMoveFinished,
|
||||
static_cast<SceneController*>( getOwner()->getParent()->getComponent("SceneController")
|
||||
) ) );
|
||||
|
||||
// Move projectile to actual endpoint
|
||||
_owner->runAction(
|
||||
Sequence::create(
|
||||
MoveTo::create(realMoveDuration, realDest),
|
||||
callfunc,
|
||||
NULL)
|
||||
);
|
||||
}
|
||||
|
||||
void ProjectileController::die()
|
||||
{
|
||||
Component *com = _owner->getParent()->getComponent("SceneController");
|
||||
cocos2d::Array *_projectiles = ((SceneController*)com)->getProjectiles();
|
||||
cocos2d::Array *_projectiles = static_cast<SceneController*>(com)->getProjectiles();
|
||||
_projectiles->removeObject(_owner);
|
||||
_owner->removeFromParentAndCleanup(true);
|
||||
}
|
||||
|
|
|
@ -143,9 +143,10 @@ $(TARGET).data: $(CORE_MAKEFILE_LIST) $(patsubst %,$(RESOURCE_PATH)/%,$(RESOURCE
|
|||
cp -av $(RESOURCE_PATH)/* $(shell dirname $@)
|
||||
rm -rf $(RESTMP)
|
||||
|
||||
$(BIN_DIR)/index.html: index.html $(CORE_MAKEFILE_LIST)
|
||||
$(BIN_DIR)/$(HTMLTPL_FILE): $(HTMLTPL_DIR)/$(HTMLTPL_FILE) $(CORE_MAKEFILE_LIST)
|
||||
@mkdir -p $(@D)
|
||||
cp index.html $(@D)
|
||||
@cp -Rf $(HTMLTPL_DIR)/* $(BIN_DIR)
|
||||
@sed -i -e "s/JS_APPLICATION/$(EXECUTABLE)/g" $(BIN_DIR)/$(HTMLTPL_FILE)
|
||||
|
||||
####### Compile
|
||||
$(OBJ_DIR)/%.o: ../%.cpp $(CORE_MAKEFILE_LIST)
|
||||
|
|
|
@ -21,7 +21,7 @@ AppDelegate::AppDelegate()
|
|||
|
||||
AppDelegate::~AppDelegate()
|
||||
{
|
||||
ScriptEngineManager::purgeSharedManager();
|
||||
ScriptEngineManager::destroyInstance();
|
||||
}
|
||||
|
||||
bool AppDelegate::applicationDidFinishLaunching()
|
||||
|
|
|
@ -21,7 +21,7 @@ AppDelegate::AppDelegate()
|
|||
|
||||
AppDelegate::~AppDelegate()
|
||||
{
|
||||
ScriptEngineManager::purgeSharedManager();
|
||||
ScriptEngineManager::destroyInstance();
|
||||
}
|
||||
|
||||
bool AppDelegate::applicationDidFinishLaunching()
|
||||
|
|
|
@ -39,9 +39,7 @@ LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) \
|
|||
$(LOCAL_PATH)/generated
|
||||
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES := spidermonkey_static
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
|
||||
|
||||
LOCAL_LDLIBS := -landroid
|
||||
LOCAL_LDLIBS += -llog
|
||||
|
@ -49,6 +47,4 @@ LOCAL_LDLIBS += -llog
|
|||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
$(call import-module,scripting/javascript/spidermonkey-android)
|
||||
$(call import-module,cocos2dx)
|
||||
$(call import-module,extensions)
|
||||
$(call import-module,external/chipmunk)
|
||||
|
|
|
@ -22,14 +22,14 @@ static void removeSelector(std::string &str) {
|
|||
}
|
||||
}
|
||||
|
||||
SEL_MenuHandler CCBScriptCallbackProxy::onResolveCCBMenuItemSelector(cocos2d::Object * pTarget,
|
||||
SEL_MenuHandler CCBScriptCallbackProxy::onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget,
|
||||
const char * pSelectorName) {
|
||||
this->callBackProp = pSelectorName;
|
||||
removeSelector(this->callBackProp);
|
||||
return menu_selector(CCBScriptCallbackProxy::menuItemCallback);
|
||||
}
|
||||
|
||||
SEL_CCControlHandler CCBScriptCallbackProxy::onResolveCCBControlSelector(Object * pTarget,
|
||||
SEL_CCControlHandler CCBScriptCallbackProxy::onResolveCCBCCControlSelector(Object * pTarget,
|
||||
const char * pSelectorName) {
|
||||
|
||||
this->callBackProp = pSelectorName;
|
||||
|
@ -273,7 +273,7 @@ JSBool js_cocos2dx_CCBReader_createSceneWithNodeGraphFromFile(JSContext *cx, uin
|
|||
JSBool js_CocosBuilder_create(JSContext *cx, uint32_t argc, jsval *vp)
|
||||
{
|
||||
|
||||
NodeLoaderLibrary * ccNodeLoaderLibrary = NodeLoaderLibrary::sharedNodeLoaderLibrary();
|
||||
NodeLoaderLibrary * ccNodeLoaderLibrary = NodeLoaderLibrary::getInstance();
|
||||
|
||||
ccNodeLoaderLibrary->registerNodeLoader("", JSLayerLoader::loader());
|
||||
|
||||
|
|
|
@ -27,10 +27,10 @@ public:
|
|||
virtual ~CCBScriptCallbackProxy() {}
|
||||
|
||||
CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(CCBScriptCallbackProxy, create);
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBMenuItemSelector(cocos2d::Object * pTarget,
|
||||
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget,
|
||||
const char * pSelectorName);
|
||||
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBControlSelector(cocos2d::Object * pTarget,
|
||||
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::Object * pTarget,
|
||||
const char * pSelectorName);
|
||||
virtual bool onAssignCCBMemberVariable(cocos2d::Object * pTarget, const char * pMemberVariableName,
|
||||
cocos2d::Node * pNode);
|
||||
|
|
|
@ -125,9 +125,9 @@
|
|||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_LIB;DEBUG;COCOS2D_DEBUG=1;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_LIB;DEBUG;COCOS2D_DEBUG=1;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\CocosDenshion\include;$(ProjectDir)..;$(ProjectDir)..\..\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\extensions\LocalStorage;$(ProjectDir)..\..\..\..\extensions\network;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4068;4101;4800;4251;4996;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<DisableSpecificWarnings>4068;4101;4800;4251;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
</ClCompile>
|
||||
|
@ -148,9 +148,9 @@ xcopy /Y /Q "$(ProjectDir)..\..\..\..\external\sqlite3\libraries\win32\*.*" "$(O
|
|||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_LIB;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_LIB;XP_WIN;JS_HAVE___INTN;JS_INTPTR_TYPE=int;COCOS2D_JAVASCRIPT=1;CC_ENABLE_CHIPMUNK_INTEGRATION=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\cocos2dx;$(ProjectDir)..\..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\..\CocosDenshion\include;$(ProjectDir)..;$(ProjectDir)..\..\spidermonkey-win32\include;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;$(ProjectDir)..\..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\..\..\..\extensions;$(ProjectDir)..\..\..\..\extensions\LocalStorage;$(ProjectDir)..\..\..\..\extensions\network;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<DisableSpecificWarnings>4068;4101;4800;4251;4996;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<DisableSpecificWarnings>4068;4101;4800;4251;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
CCBReader* CCBProxy::createCCBReader()
|
||||
{
|
||||
NodeLoaderLibrary *ccNodeLoaderLibrary = NodeLoaderLibrary::sharedNodeLoaderLibrary();
|
||||
NodeLoaderLibrary *ccNodeLoaderLibrary = NodeLoaderLibrary::getInstance();
|
||||
|
||||
ccNodeLoaderLibrary->registerNodeLoader("", CCBLayerLoader::loader());
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\CocosDenshion\include;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\extensions\network;$(ProjectDir)..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\tolua;$(ProjectDir)..\luajit\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;COCOS2D_DEBUG=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
|
@ -75,7 +75,7 @@
|
|||
</PrecompiledHeaderOutputFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4996;4800;4267;4251;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<DisableSpecificWarnings>4800;4267;4251;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
|
@ -95,7 +95,7 @@ xcopy /Y /Q "$(ProjectDir)..\luajit\win32\*.*" "$(OutDir)"</Command>
|
|||
<Optimization>MaxSpeed</Optimization>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\cocos2dx;$(ProjectDir)..\..\..\cocos2dx\include;$(ProjectDir)..\..\..\cocos2dx\kazmath\include;$(ProjectDir)..\..\..\cocos2dx\platform\win32;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\OGLES;$(ProjectDir)..\..\..\cocos2dx\platform\third_party\win32\pthread;$(ProjectDir)..\..\..\CocosDenshion\include;$(ProjectDir)..\..\..\extensions;$(ProjectDir)..\..\..\extensions\network;$(ProjectDir)..\..\..\external\libwebsockets\win32\include;$(ProjectDir)..\tolua;$(ProjectDir)..\luajit\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;LIBLUA_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;LIBLUA_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader>
|
||||
|
@ -106,7 +106,7 @@ xcopy /Y /Q "$(ProjectDir)..\luajit\win32\*.*" "$(OutDir)"</Command>
|
|||
</PrecompiledHeaderOutputFile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<DisableSpecificWarnings>4996;4800;4267;4251;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<DisableSpecificWarnings>4800;4267;4251;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>TestCpp</title>
|
||||
<title>JS_APPLICATION</title>
|
||||
<style>
|
||||
.emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; }
|
||||
textarea.emscripten { font-family: monospace; width: 80%; }
|
||||
|
@ -101,7 +101,7 @@
|
|||
};
|
||||
Module.setStatus('Downloading...');
|
||||
</script>
|
||||
<script type="text/javascript" src="TestCpp.data.js"></script>
|
||||
<script type="text/javascript" src="TestCpp.js"></script>
|
||||
<script type="text/javascript" src="JS_APPLICATION.data.js"></script>
|
||||
<script type="text/javascript" src="JS_APPLICATION.js"></script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue