本文整理汇总了C#中Cocos2D.CCBReader.AddOwnerCallbackNode方法的典型用法代码示例。如果您正苦于以下问题:C# CCBReader.AddOwnerCallbackNode方法的具体用法?C# CCBReader.AddOwnerCallbackNode怎么用?C# CCBReader.AddOwnerCallbackNode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cocos2D.CCBReader
的用法示例。
在下文中一共展示了CCBReader.AddOwnerCallbackNode方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParsePropTypeBlockCcControl
protected virtual BlockCCControlData ParsePropTypeBlockCcControl(CCNode node, CCNode parent, CCBReader reader)
{
string selectorName = reader.ReadCachedString();
var selectorTarget = (CCBTargetType) reader.ReadInt(false);
var controlEvents = (CCControlEvent) reader.ReadInt(false);
if (selectorTarget != CCBTargetType.None)
{
if (!reader.IsJSControlled())
{
object target = null;
if (selectorTarget == CCBTargetType.DocumentRoot)
{
target = reader.AnimationManager.RootNode;
}
else if (selectorTarget == CCBTargetType.Owner)
{
target = reader.Owner;
}
if (target != null)
{
if (selectorName.Length > 0)
{
Action<object, CCControlEvent> selCCControlHandler = null;
var targetAsCCBSelectorResolver = target as ICCBSelectorResolver;
if (targetAsCCBSelectorResolver != null)
{
selCCControlHandler = targetAsCCBSelectorResolver.OnResolveCCBCCControlSelector(target,
selectorName);
}
if (selCCControlHandler == null)
{
ICCBSelectorResolver ccbSelectorResolver = reader.SelectorResolver;
if (ccbSelectorResolver != null)
{
selCCControlHandler = ccbSelectorResolver.OnResolveCCBCCControlSelector(target,
selectorName);
}
}
if (selCCControlHandler == null)
{
CCLog.Log("Skipping selector '{0}' since no CCBSelectorResolver is present.",
selectorName);
}
else
{
var blockCCControlData = new BlockCCControlData();
blockCCControlData.mSELCCControlHandler = selCCControlHandler;
blockCCControlData.mTarget = target;
blockCCControlData.mControlEvents = controlEvents;
return blockCCControlData;
}
}
else
{
CCLog.Log("Unexpected empty selector.");
}
}
else
{
CCLog.Log("Unexpected NULL target for selector.");
}
}
else
{
if (selectorTarget == CCBTargetType.DocumentRoot)
{
reader.AddDocumentCallbackNode(node);
reader.AddDocumentCallbackName(selectorName);
}
else
{
reader.AddOwnerCallbackNode(node);
reader.AddOwnerCallbackName(selectorName);
}
}
}
return null;
}
示例2: ParsePropTypeCcbFile
protected virtual CCNode ParsePropTypeCcbFile(CCNode node, CCNode parent, CCBReader pCCBReader)
{
string ccbFileName = pCCBReader.ReadCachedString();
/* Change path extension to .ccbi. */
string ccbFileWithoutPathExtension = CCBReader.DeletePathExtension(ccbFileName);
ccbFileName = ccbFileWithoutPathExtension + ".ccbi";
// Load sub file
string path = CCFileUtils.FullPathFromRelativePath(ccbFileName);
//long size = 0;
byte[] pBytes = CCFileUtils.GetFileBytes(path);
var reader = new CCBReader(pCCBReader);
reader.AnimationManager.RootContainerSize = parent.ContentSize;
reader._bytes = pBytes;
reader._currentByte = 0;
reader._currentBit = 0;
reader._owner = pCCBReader._owner;
reader.AnimationManager._owner = reader._owner;
CCNode ccbFileNode = reader.ReadFileWithCleanUp(false, pCCBReader.AnimationManagers);
if (ccbFileNode != null && reader.AnimationManager.AutoPlaySequenceId != -1)
{
// Auto play animations
reader.AnimationManager.RunAnimationsForSequenceIdTweenDuration(reader.AnimationManager.AutoPlaySequenceId, 0);
}
if (reader.IsJSControlled() && pCCBReader.IsJSControlled() && null != reader._owner)
{
//set variables and callback to owner
//set callback
var ownerCallbackNames = reader.OwnerCallbackNames;
var ownerCallbackNodes = reader.OwnerCallbackNodes;
if (null != ownerCallbackNames && ownerCallbackNames.Count > 0 &&
null != ownerCallbackNodes && ownerCallbackNodes.Count > 0)
{
Debug.Assert(ownerCallbackNames.Count == ownerCallbackNodes.Count);
int nCount = ownerCallbackNames.Count;
for (int i = 0; i < nCount; i++)
{
pCCBReader.AddOwnerCallbackName(ownerCallbackNames[i]);
pCCBReader.AddOwnerCallbackNode(ownerCallbackNodes[i]);
}
}
//set variables
var ownerOutletNames = reader.OwnerOutletNames;
var ownerOutletNodes = reader.OwnerOutletNodes;
if (null != ownerOutletNames && ownerOutletNames.Count > 0 &&
null != ownerOutletNodes && ownerOutletNodes.Count > 0)
{
Debug.Assert(ownerOutletNames.Count == ownerOutletNodes.Count);
int nCount = ownerOutletNames.Count;
for (int i = 0; i < nCount; i++)
{
pCCBReader.AddOwnerOutletName(ownerOutletNames[i]);
pCCBReader.AddOwnerOutletNode(ownerOutletNodes[i]);
}
}
}
return ccbFileNode;
}
示例3: ParsePropTypeBlock
protected virtual BlockData ParsePropTypeBlock(CCNode node, CCNode parent, CCBReader reader)
{
string selectorName = reader.ReadCachedString();
var selectorTarget = (CCBTargetType) reader.ReadInt(false);
if (selectorTarget != CCBTargetType.None)
{
object target = null;
if (!reader.IsJSControlled())
{
if (selectorTarget == CCBTargetType.DocumentRoot)
{
target = reader.AnimationManager.RootNode;
}
else if (selectorTarget == CCBTargetType.Owner)
{
target = reader.Owner;
/* Scripting specific code because selector function is common for all callbacks.
* So if we had 1 target and 1 selector function, the context (callback function name)
* would get lost. Hence the need for a new target for each callback.
*/
if (reader._hasScriptingOwner)
{
var proxy = (ICCBScriptOwnerProtocol) reader.Owner;
if (proxy != null)
{
target = proxy.CreateNew() as object;
}
}
}
if (target != null)
{
if (selectorName.Length > 0)
{
Action<object> selMenuHandler = null;
var targetAsCCBSelectorResolver = target as ICCBSelectorResolver;
if (targetAsCCBSelectorResolver != null)
{
selMenuHandler = targetAsCCBSelectorResolver.OnResolveCCBCCMenuItemSelector(target,
selectorName);
}
if (selMenuHandler == null)
{
ICCBSelectorResolver ccbSelectorResolver = reader.SelectorResolver;
if (ccbSelectorResolver != null)
{
selMenuHandler = ccbSelectorResolver.OnResolveCCBCCMenuItemSelector(target,
selectorName);
}
}
if (selMenuHandler == null)
{
CCLog.Log("Skipping selector '{0}' since no CCBSelectorResolver is present.",
selectorName);
}
else
{
var blockData = new BlockData();
blockData.mSELMenuHandler = selMenuHandler;
blockData.mTarget = target;
return blockData;
}
}
else
{
CCLog.Log("Unexpected empty selector.");
}
}
else
{
CCLog.Log("Unexpected NULL target for selector.");
}
}
else
{
if (selectorTarget == CCBTargetType.DocumentRoot)
{
reader.AddDocumentCallbackNode(node);
reader.AddDocumentCallbackName(selectorName);
}
else
{
reader.AddOwnerCallbackNode(node);
reader.AddOwnerCallbackName(selectorName);
}
}
}
return null;
}