Beispiel #1
0
void BalloonItemClick::initClickMenu(CCSprite* pSpriteIcon)
{
    // 加载按钮图形
    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("texture/items/items.plist");
    // 创建按钮
    CCMenuItemImage* pMenuItemImage = CCMenuItemImage::create();
    // 设置按钮的图片
    // pMenuItemImage->setNormalImage(CCSprite::create("texture/items/item_btn_normal.png"));
    pMenuItemImage->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("item_btn_normal.png"));
    // pMenuItemImage->setSelectedSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("item_btn_normal.png"));
    
    // 顺便这里更新下控件的大小
    setContentSize(pMenuItemImage->getContentSize());
    
    // 设置按下后的回调函数
    pMenuItemImage->setTarget(this, menu_selector(BalloonItemClick::onPressMenuClick));
    // 设置按钮
    m_pMenuClick = CCMenu::create();
    m_pMenuClick->addChild(pMenuItemImage);
    CC_SAFE_RETAIN(m_pMenuClick);
    // 设置按钮居中对齐
    m_pMenuClick->setPosition(ccpMult(ccpFromSize(getContentSize()), 0.5f));
    
    // 设置按下后的图片放大效果
    ControlUtil::sharedControlUtil()->SetMenuItemSelectedImageWithNormalImage(m_pMenuClick, 1.2f);
    // 添加到界面上
    addChild(m_pMenuClick);
    
    m_pSpriteIcon = pSpriteIcon;
    m_pSpriteIcon->setPosition(ccpMult(ccpFromSize(getContentSize()), 0.5f));
    CC_SAFE_RETAIN(m_pSpriteIcon);
    addChild(m_pSpriteIcon);
    
}
Beispiel #2
0
void CCMenuItemSprite::setAnchorPoint(cocos2d::CCPoint const & anchorPoint) {
    CCMenuItem::setAnchorPoint(anchorPoint);
    if (m_pNormalImage) {
        m_pNormalImage->setAnchorPoint(anchorPoint);
        m_pNormalImage->setPosition(ccpCompMult(ccpFromSize(this->getContentSize()), this->getAnchorPoint()));
    }
    if (m_pSelectedImage) {
        m_pSelectedImage->setAnchorPoint(anchorPoint);
        m_pSelectedImage->setPosition(ccpCompMult(ccpFromSize(this->getContentSize()), this->getAnchorPoint()));
    }
    if (m_pDisabledImage) {
        m_pDisabledImage->setAnchorPoint(anchorPoint);
        m_pDisabledImage->setPosition(ccpCompMult(ccpFromSize(this->getContentSize()), this->getAnchorPoint()));
    }
}
Beispiel #3
0
void CompanyPage::onEnter()
{
	CCLayerColor::onEnter();

	// 得到中心点坐标
	CCSize sizeVisible = CCDirector::sharedDirector()->getVisibleSize();
	CCPoint posCenter = ccpMult(ccpFromSize(sizeVisible), 0.5f);

	// 右边进入
	m_pSpriteLogo->setPosition(ccp(sizeVisible.width, posCenter.y));
	m_pSpriteLogo->runAction(CCEaseBounceOut::create(CCMoveTo::create(1.3f, posCenter)));

	// 左边进入
	m_pSpriteEnglishName->setAnchorPoint(ccp(0.5f, 0));
	m_pSpriteEnglishName->setPosition(ccp(0, m_pSpriteLogo->getPositionY() + m_pSpriteLogo->getContentSize().height*1.0f));
	m_pSpriteEnglishName->runAction(CCEaseBounceOut::create(CCMoveTo::create(1.1f, ccp(posCenter.x, m_pSpriteEnglishName->getPositionY()))));

	// 左边进入
	m_pSpriteChineseName->setAnchorPoint(ccp(0.5f, 1.0f));
	m_pSpriteChineseName->setPosition(ccp(0, m_pSpriteLogo->getPositionY() - m_pSpriteLogo->getContentSize().height*1.0f));
	m_pSpriteChineseName->runAction(CCEaseBounceOut::create(CCMoveTo::create(1.5f, ccp(posCenter.x, m_pSpriteChineseName->getPositionY()))));

	// 整体变暗
	m_pLayerColorMask->runAction(CCSequence::create(CCFadeOut::create(3.0f),
			   CCDelayTime::create(1.0f),
			   CCFadeIn::create(3.0f),
		   	   CCCallFunc::create(this, callfunc_selector(CompanyPage::showGameScene)), NULL));

	addChild(m_pSpriteEnglishName);
	addChild(m_pSpriteChineseName);
	addChild(m_pSpriteLogo);
	addChild(m_pLayerColorMask);
}
void PhotonLoadBalancingTest::onEnter()
{
    CCLayer::onEnter();

    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    CCPoint winCenter = ccpMult( ccpFromSize( winSize ), 0.5f );
    //_listener = new StdIO_UIListener();
    this->setContentSize(winSize);
    
    CCLobbyView* lobbyView = CCLobbyView::create( new CCNetworkLogic(), winSize );
    this->addChild( lobbyView );
    /*ConnectButton* connect = ConnectButton::create();
    CCPoint position = ccpMult( ccpFromSize( winSize ), 0.5f );
    position.x -= 100;
    position.y -= 100;
    connect->setPosition( position );
    this->addChild( connect );
    
    SendButton* send = SendButton::create();
    position.x += 200;
    send->setPosition( position );
    this->addChild( send );*/
    
    this->scheduleUpdate();
}
void DreamSpaceTest::onEnter()
{
    CCLayer::onEnter();

    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    CCPoint winCenter = ccpMult( ccpFromSize( winSize ), 0.5f );
    //_listener = new StdIO_UIListener();
    this->setContentSize(winSize);
    
    PMSGameScene* lobbyView = PMSGameScene::create();
    this->addChild( lobbyView );
    /*ConnectButton* connect = ConnectButton::create();
    CCPoint position = ccpMult( ccpFromSize( winSize ), 0.5f );
    position.x -= 100;
    position.y -= 100;
    connect->setPosition( position );
    this->addChild( connect );
    
    SendButton* send = SendButton::create();
    position.x += 200;
    send->setPosition( position );
    this->addChild( send );*/
    
    this->scheduleUpdate();
}
Beispiel #6
0
void RawStencilBufferTest6::setup()
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
    CCPoint winPoint = ccpFromSize(CCDirector::sharedDirector()->getWinSize());
    unsigned char bits = 0;
    glStencilMask(~0);
    glClearStencil(0);
    glClear(GL_STENCIL_BUFFER_BIT);
    glFlush();
    glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &bits);
    CCLabelTTF *clearToZeroLabel = CCLabelTTF::create(CCString::createWithFormat("00=%02x", bits)->getCString(), "Arial", 20);
    clearToZeroLabel->setPosition( ccp((winPoint.x / 3) * 1, winPoint.y - 10) );
    this->addChild(clearToZeroLabel);
    glStencilMask(0x0F);
    glClearStencil(0xAA);
    glClear(GL_STENCIL_BUFFER_BIT);
    glFlush();
    glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &bits);
    CCLabelTTF *clearToMaskLabel = CCLabelTTF::create(CCString::createWithFormat("0a=%02x", bits)->getCString(), "Arial", 20);
    clearToMaskLabel->setPosition( ccp((winPoint.x / 3) * 2, winPoint.y - 10) );
    this->addChild(clearToMaskLabel);
#endif
    glStencilMask(~0);
    RawStencilBufferTest::setup();
}
bool ControlEngine::init( const char* backgroundName, const char* progressIndicatorName, const char* demandIndicatorName )
{
    if( super::init() )
    {
        this->setBackgroundName( backgroundName );
        this->setProgressIndicatorName( progressIndicatorName );
        this->setDemandIndicatorName( demandIndicatorName );
        
        CCSprite* background = CCSprite::create( backgroundName );
        CCSize size = background->getContentSize();
        CCPoint sizePoint = ccpFromSize(size);
        CCPoint center = ccpMult( sizePoint, 0.5f );
        this->setContentSize( size );
        this->ignoreAnchorPointForPosition( false );
        
        background->setPosition( center );
        this->addChild( background, Child::Z::background, Child::CCSprite_background );
        
        this->initProgressIndicator( Child::CCProgressTimer_foreProgressIndicator, center, ccp( 0.5f, 0 ) );
        this->initProgressIndicator( Child::CCProgressTimer_aftProgressIndicator, center, ccp( 0.5f, 1 ) );
        
        CCSprite* demandIndicator = CCSprite::create( demandIndicatorName );
        demandIndicator->setPosition( ccp( size.width * 0.5f, 0.0f ) );
        this->addChild( demandIndicator, Child::Z::demandIndicator, Child::CCSprite_demandIndicator );
        
        return true;
    }
    return false;
}
Beispiel #8
0
void BalloonItemClick::updateLeftCntsLabel()
{
    if (!m_pLabelBMFontCnts)
    {
        m_pLabelBMFontCnts = CCLabelBMFont::create("", "texture/fonts/font.fnt");
        m_pLabelBMFontCnts->setPosition(ccpFromSize(m_pSpriteIcon->getContentSize()));
        m_pSpriteIcon->addChild(m_pLabelBMFontCnts);
    }
    m_pLabelBMFontCnts->setCString(CCString::createWithFormat("%lu", m_ulClickCounts)->getCString());
}
void Pull2RefreshTableView::updateFooterNodePosition()
{
	// update the footer node position
	if (m_pNodeFooter && m_pNodeFooter->getParent())
	{
		// set anchor point to center
		m_pNodeFooter->setAnchorPoint(ccp(0.5f, 0.5f));
		// set middle of parent node
		m_pNodeFooter->setPosition(ccpMult(ccpFromSize(m_pNodeFooter->getParent()->getContentSize()), 0.5f));
	}
}
Beispiel #10
0
bool CPKDlg::init()
{
    CCLayer::init();
    m_pLeftPhoto = m_pRightPhoto = NULL ;
    m_pDelegate = NULL ;
    
    CCNodeLoaderLibrary* plib = CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary();
    CCBReader* pReader = new CCBReader(plib);
    CCNode* pnode =  pReader->readNodeGraphFromFile("PkDlg.ccbi",this);
    pnode->setPosition(ccpMult(ccpFromSize(getContentSize()), 0.5)) ;
    addChild(pnode) ;
    m_pAnimate = pReader->getAnimationManager() ;
    m_pAnimate->setDelegate(this);
    pReader->autorelease() ;
    return true ;
}
bool MainMenu::init()
{
    if( CCMenu::init() && this->initPassAndPlay() && this->initQuit() )
    {
        CCDirector* director = CCDirector::sharedDirector();
        CCSize winSize = director->getWinSize();
        CCPoint winSizePoint = ccpFromSize( winSize );
        CCPoint center = ccpMult( winSizePoint, 0.5f );
        /*char str[128] = { '\0' };
        sprintf( str, "width %lf, height %lf", winSize.width, winSize.height );
        CCLabelTTF* label = CCLabelTTF::create( str, "American Typewriter.ttf",  16 );
        label->setPosition( center );
        this->getChildByTag( Child::CCMenuItem_playOnline )->addChild( label );*/
        this->alignItemsVertically();
        return true;
    }
    return false;        
}
Beispiel #12
0
void RawStencilBufferTest::draw()
{    
    CCPoint winPoint = ccpFromSize(CCDirector::sharedDirector()->getWinSize());
    
    CCPoint planeSize = ccpMult(winPoint, 1.0 / _planeCount);
    
    glEnable(GL_STENCIL_TEST);
    CHECK_GL_ERROR_DEBUG();
        
    for (int i = 0; i < _planeCount; i++) {
        
        CCPoint stencilPoint = ccpMult(planeSize, _planeCount - i);
        stencilPoint.x = winPoint.x;
        
        CCPoint spritePoint = ccpMult(planeSize, i);
        spritePoint.x += planeSize.x / 2;
        spritePoint.y = 0;
        m_pSprite->setPosition( spritePoint );

        this->setupStencilForClippingOnPlane(i);
        CHECK_GL_ERROR_DEBUG();

        ccDrawSolidRect(CCPointZero, stencilPoint, ccc4f(1, 1, 1, 1));
        
        kmGLPushMatrix();
        this->transform();
        m_pSprite->visit();
        kmGLPopMatrix();
        
        this->setupStencilForDrawingOnPlane(i);
        CHECK_GL_ERROR_DEBUG();
        
        ccDrawSolidRect(CCPointZero, winPoint, _planeColor[i]);
        
        kmGLPushMatrix();
        this->transform();
        m_pSprite->visit();
        kmGLPopMatrix();
    }
    
    glDisable(GL_STENCIL_TEST);
    CHECK_GL_ERROR_DEBUG();
}
Beispiel #13
0
void CCMenuItemSprite::setDisabledImage(CCNode* pImage)
{
    if (pImage != m_pNormalImage)
    {
        if (pImage)
        {
            addChild(pImage, 0, kDisableTag);
            pImage->setAnchorPoint(this->getAnchorPoint());
            pImage->setPosition(ccpCompMult(ccpFromSize(this->getContentSize()), this->getAnchorPoint()));
        }

        if (m_pDisabledImage)
        {
            removeChild(m_pDisabledImage, true);
        }

        m_pDisabledImage = pImage;
        this->updateImagesVisibility();
    }
}
Beispiel #14
0
bool RotationTest::init()
{
    if(!TestLayer::init())
        return false;

    m_title = "Rotation Test";

    CCSize winSize = CCDirector::sharedDirector()->getWinSize();

    MovableObject* object = MovableObject::create();
    object->addChild(CCSprite::spriteWithFile("TestObject.png"));
    object->setLocation(ccpFromSize(winSize)/2);
    addChild(object);
     
    RotateBy* actRot = RotateBy::create(2.0f, 360.0f);
    CCDelayTime* actDelay = CCDelayTime::actionWithDuration(1.0f);
    object->runAction(Sequence::create(actRot, actDelay, NULL));

    return true;
}
bool ControlDualEngine::init( const char* background, const char* progressIndicator, const char* demandIndicator )
{
    if( super::init() )
    {
        this->setBackgroundName( background );
        this->setProgressIndicatorName( progressIndicator );
        this->setDemandIndicatorName( demandIndicator );
        
        CCDirector* director = CCDirector::sharedDirector();
        CCSize winSize = director->getWinSize();
        CCPoint winSizePoint = ccpFromSize( winSize );
        CCPoint center = ccpMult( winSizePoint, 0.5f );
        this->setContentSize( winSize );
        
        this->initEngine( Child::ControlEngine_left, ccp( 0, center.y ), ccp( 0, 0.5f ) );
        this->initEngine( Child::ControlEngine_right, ccp( winSize.width, center.y ), ccp( 1, 0.5f ) );
        return true;
    }
    return false;
}
Beispiel #16
0
void HoleDemo::setup()
{
    CCSprite *target = CCSprite::create(s_pPathBlock);
    target->setAnchorPoint(CCPointZero);
    target->setScale(3);
    
    m_pOuterClipper = CCClippingNode::create();
    m_pOuterClipper->retain();
    CCAffineTransform tranform = CCAffineTransformMakeIdentity();
    tranform = CCAffineTransformScale(tranform, target->getScale(), target->getScale());

    m_pOuterClipper->setContentSize( CCSizeApplyAffineTransform(target->getContentSize(), tranform));
    m_pOuterClipper->setAnchorPoint( ccp(0.5, 0.5) );
    m_pOuterClipper->setPosition( ccpMult(ccpFromSize(this->getContentSize()), 0.5f) );
    m_pOuterClipper->runAction(CCRepeatForever::create(CCRotateBy::create(1, 45)));
    
    m_pOuterClipper->setStencil( target );
    
    CCClippingNode *holesClipper = CCClippingNode::create();
    holesClipper->setInverted(true);
    holesClipper->setAlphaThreshold( 0.05f );
    
    holesClipper->addChild(target);
    
    m_pHoles = CCNode::create();
    m_pHoles->retain();
    
    holesClipper->addChild(m_pHoles);
    
    m_pHolesStencil = CCNode::create();
    m_pHolesStencil->retain();
    
    holesClipper->setStencil( m_pHolesStencil);
    
    m_pOuterClipper->addChild(holesClipper);
    
    this->addChild(m_pOuterClipper);
        
    this->setTouchEnabled(true);
}
Beispiel #17
0
void RawStencilBufferTest6::setupStencilForClippingOnPlane(GLint plane)
{
    GLint planeMask = 0x1 << plane;
    glStencilMask(planeMask);
    glStencilFunc(GL_NEVER, 0, planeMask);
    glStencilOp(GL_REPLACE, GL_KEEP, GL_KEEP);
    ccDrawSolidRect(CCPointZero, ccpFromSize(CCDirector::sharedDirector()->getWinSize()), ccc4f(1, 1, 1, 1));
    glStencilFunc(GL_NEVER, planeMask, planeMask);
    glStencilOp(GL_REPLACE, GL_KEEP, GL_KEEP);
    glDisable(GL_DEPTH_TEST);
    glDepthMask(GL_FALSE);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
    glEnable(GL_ALPHA_TEST);
    glAlphaFunc(GL_GREATER, _alphaThreshold);
#else
    CCGLProgram *program = CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColorAlphaTest);
    GLint alphaValueLocation = glGetUniformLocation(program->getProgram(), kCCUniformAlphaTestValue);
    program->setUniformLocationWith1f(alphaValueLocation, _alphaThreshold);
    m_pSprite->setShaderProgram(program);
#endif
    glFlush();
}
bool CCLobbyView::init( CCNetworkLogic* network, const CCSize& mySize )
{
    if( CCLayer::init() )
    {
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
        const CCPoint& center = ccpMult( ccpFromSize( mySize ), 0.5f );
        CCPoint position = CCPointZero;
        CCSize size = CCSizeZero;
        int length = 0;
        int fontSize = 0;
        
        this->setNetwork( network );
        
        CCSprite* s = CCSprite::create("Images/r1.png");
        s->retain();
        CCRect rect = CCRectZero;
        rect.size = s->getContentSize();
        s->release();
        
        fontSize = 12;
        CCLabelTTF* label = CCLabelTTF::create( "Connect", "fonts/American Typewriter.ttf", fontSize );
        label->setColor( ccc3( 0, 0, 0 ) );
        CCScale9Sprite* sprite = CCScale9Sprite::create("Images/r1.png", rect, rect );
        sprite->setScaleX( 1.4f );
        sprite->setScaleY( 0.8f );
        CCControlButton* button = CCControlButton::create( label, sprite );
        button->addTargetWithActionForControlEvents( this, cccontrol_selector( CCLobbyView::connectButtonCallback ), CCControlEventTouchUpInside);
        button->setPreferredSize( rect.size );
        position = center;
        position.y -= 136;
        position.x -= 100;
        button->setPosition( position );
        this->setConnectButton( button );
        
        label = CCLabelTTF::create( "Create Room", "fonts/American Typewriter.ttf", fontSize );
        label->setColor( ccc3( 0, 0, 0 ) );
        sprite = CCScale9Sprite::create("Images/r1.png", rect, rect );
        sprite->setScaleX( 1.4f );
        sprite->setScaleY( 0.8f );
        button = CCControlButton::create( label, sprite );
        button->addTargetWithActionForControlEvents( this, cccontrol_selector( CCLobbyView::createGameButtonCallback ), CCControlEventTouchUpInside);
        button->setPreferredSize( rect.size );
        position = center;
        position.y -= 136;
        //position.x += 0;
        button->setPosition( position );
        this->setCreateGameButton( button );
        
        label = CCLabelTTF::create( "Random Room", "fonts/American Typewriter.ttf", fontSize );
        label->setColor( ccc3( 0, 0, 0 ) );
        sprite = CCScale9Sprite::create("Images/r1.png", rect, rect );
        sprite->setScaleX( 1.6f );
        sprite->setScaleY( 0.8f );
        button = CCControlButton::create( label, sprite );
        button->addTargetWithActionForControlEvents( this, cccontrol_selector( CCLobbyView::joinGameButtonCallback ), CCControlEventTouchUpInside);
        button->setPreferredSize( rect.size );
        position = center;
        position.y -= 136;
        position.x += 100;
        button->setPosition( position );
        this->setRandomGameButton( button );
        
        this->_lobbyViewDataSource = new CCLobbyViewDataSource( this );

        fontSize = 16;
        length = mySize.width;
        size = this->_lobbyViewDataSource->cellSizeForTable( NULL );
        size.height *= 3;
        CCTableView* table = CCTableView::create( this->_lobbyViewDataSource, size );
        table->setContentOffset( CCPointZero );
        table->setDirection(kCCScrollViewDirectionVertical);
        position = center;
        position.x -= size.width * 0.5f;
        position.y -= fontSize + ( size.height * 0.17f );
        table->setPosition( position );
        table->setDelegate( this );
        table->setVerticalFillOrder(kCCTableViewFillTopDown);
        this->setRoomTable( table );
        table->reloadData();
        
        fontSize = 16;
        label = CCLabelTTF::create("Running games:", "fonts/American Typewriter.ttf", fontSize,
                                                 winSize, kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
        position = center;
        position.x -= size.width * 0.4f;
        position.y += size.height - ( fontSize * 0.5f );
        label->setPosition( position );
        //label->setAnchorPoint( CCPointZero );
        this->setRoomTableLabel( label );
        
        fontSize = 16;
        CCLabelTTF* console = CCLabelTTF::create("disconnected", "fonts/American Typewriter.ttf", fontSize,
                                             winSize, kCCTextAlignmentCenter, kCCVerticalTextAlignmentCenter);
        
            
        console->setColor( ccc3(255, 255, 255) );
        console->setContentSize(winSize);
        position = center;
        position.y += 100;
        console->setPosition( position );
        this->setConsole( console );
        
        label = CCLabelTTF::create( "localhost:5055", "fonts/American Typewriter.ttf", fontSize );
        position.y += fontSize;
        label->setPosition( position );
        this->setDisplayAddress( label );
        
        // top
        fontSize = 24;
        length = 19;
        size = CCSize( length * fontSize * 0.7f, fontSize * 1.7f );
        CCEditBox* edit = CCEditBox::create( size, CCScale9Sprite::create( "extensions/green_edit.png" ) );
        edit->setPosition( center );
        edit->setFontColor(ccBLACK);
        edit->setPlaceHolder("ip:port");
        edit->setMaxLength( 19 );
        edit->setReturnType(kKeyboardReturnTypeDone);
        edit->setDelegate(this);
        position.y -= fontSize * 2;
        edit->setPosition( position );
        this->setEditAddress( edit );
        
        //CCChatRoom* chatroom = CCChatRoom::create(this->getNetwork());
        //this->setChatRoom( chatroom );
        
        this->scheduleUpdate();

        return true;
    }
    
    return false;
}
Beispiel #19
0
bool SFVideo::perform(CCDictionary * pDict, cocos2d::CCNode * pTarget)
{
	if (!pDict)
	{
		CNLog("error");
		return false;
	}
	
	CCString * pTask = (CCString *)pDict->objectForKey("Task");
	if (!pTask)
	{
		CNLog("invalid video task");
		return false;
	}
	const char * task = pTask->getCString();
	CNLog("SFVideo: ******************************** %s", task);
	
	if (strlen(task) == 0)
	{
		CNLog("invalid task");
	}
	else if (strcasecmp(task, "Init") == 0 || strcasecmp(task, "InitPlayer") == 0)
	{
		CNLog("init video player");
		if (pTarget)
		{
			CCNode * pParent = pTarget->getParent();
			if (pParent)
			{
				CCPoint position = ccpSub(pTarget->getPosition(), pTarget->getAnchorPointInPoints());
				CCPoint p2 = ccpAdd(position, ccpFromSize(pTarget->getContentSize()));
				
				position = pParent->convertToWorldSpace(position);
				p2 = pParent->convertToWorldSpace(p2);
				
				SFVideo_initPlayer(position.x, position.y, p2.x - position.x, p2.y - position.y);
			}
			else
			{
				CNLog("error");
			}
		}
		else
		{
			CNLog("error");
		}
	}
	else if (strcasecmp(task, "play") == 0 || strcasecmp(task, "playMovie") == 0)
	{
		CCString * pFilename = (CCString *)pDict->objectForKey("File");
		const char * filename = pFilename ? pFilename->getCString() : "";
		CNLog("playing video: %s", filename);
		SFVideo_playMovie(filename);
	}
	else if (strcasecmp(task, "stop") == 0 || strcasecmp(task, "stopMovie") == 0)
	{
		CNLog("stop video");
		SFVideo_stopMovie();
	}
	
	return true;
}