关于cocos2dx中onExitTransitionDidStart、onExit和onEnter、onEnterTransitionDidFinish处理机制的问题就给大家分享到这里,感谢你花时间
关于cocos2dx中onExitTransitionDidStart、onExit和onEnter、onEnterTransitionDidFinish处理机制的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.、android – ActivityOptions.makeSceneTransitionAnimation似乎不存在、android – `setEnterTransition`仅适用于`ActivityCompat.startActivity`、android-如何在ActionBarSherlock中将“ setOnEditorActionListener”设置为EditText?等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- cocos2dx中onExitTransitionDidStart、onExit和onEnter、onEnterTransitionDidFinish处理机制
- .jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
- android – ActivityOptions.makeSceneTransitionAnimation似乎不存在
- android – `setEnterTransition`仅适用于`ActivityCompat.startActivity`
- android-如何在ActionBarSherlock中将“ setOnEditorActionListener”设置为EditText?
cocos2dx中onExitTransitionDidStart、onExit和onEnter、onEnterTransitionDidFinish处理机制
进入Node::addChildHelper定义发现如下代码
if( _running )
{
child->onEnter();
// prevent onEnterTransitionDidFinish to be called twice when a node is added in onEnter
if (_isTransitionFinished) {
child->onEnterTransitionDidFinish();
}
}
也就是说,只有父节点已经在running的情况下,添加子节点时才会调用子节点的onEnter,由此可见,在scene中的添加的子节点,如果scene没有被渲染,那么之前在scene中添加的子节点(包括layer,sprite)时不会立刻调用子节点的onEnter。那么scene的onEnter()在什么时候调用呢?查看Director中的DrawScene()定义,发现如下代码:
/* to avoid flickr,nextScene MUST be here: after tick and before draw.
XXX: Which bug is this one. It seems that it can't be reproduced with v0.9 */
if (_nextScene)
{
setNextScene();
}
查看setNextScene定义发现
void Director::setNextScene()
{
bool runningIsTransition = dynamic_cast<TransitionScene*>(_runningScene) != nullptr;
bool newIsTransition = dynamic_cast<TransitionScene*>(_nextScene) != nullptr;
// If it is not a transition,call onExit/cleanup
if (! newIsTransition)
{
if (_runningScene)
{
_runningScene->onExitTransitionDidStart();
_runningScene->onExit();
}
// issue #709. the root node (scene) should receive the cleanup message too
// otherwise it might be leaked.
if (_sendCleanupToScene && _runningScene)
{
_runningScene->cleanup();
}
}
if (_runningScene)
{
_runningScene->release();
}
_runningScene = _nextScene;
_nextScene->retain();
_nextScene = nullptr;
if ((! runningIsTransition) && _runningScene)
{
_runningScene->onEnter();
_runningScene->onEnterTransitionDidFinish();
}
}
在场景类型不是TransitionScene类型时,当当前场景不为null时,先退出当前场景,先调用当前场景的onExitTransitionDidStart、onExit并释放当前场景,接着讲下一个场景赋值给当前场景_runningScene = _nextScene;接着调用当前场景的onEnter()、onEnterTransitionDidFinish(),进行自身以及已添加子节点的onEnter调用,每个节点会在自身的onEnter中设置_running = true;这样后续在已有场景中添加子节点时,会直接调用子节点的onEnter。
在已渲染场景中,子节点动态从父类中移除时,会调用onExitTransitionDidStart以及onExit
void Node::detachChild(Node *child,ssize_t childindex,bool doCleanup)
{
// IMPORTANT:
// -1st do onExit
// -2nd cleanup
if (_running)
{
child->onExitTransitionDidStart();
child->onExit();
}
#if CC_USE_PHYSICS
child->removeFromPhysicsWorld();
#endif
// If you don't do cleanup,the child's actions will not get removed and the
// its scheduledSelectors_ dict will not get released!
if (doCleanup)
{
child->cleanup();
}
// set parent nil at the end
child->setParent(nullptr);
_children.erase(childindex);
}
.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.GeneratedConstructorAccessor65.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1311)
at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1303)
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2683)
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2665)
at security.view.util.SqlUtils.insert(SqlUtils.java:315)
at security.view.util.SqlUtils.processKill(SqlUtils.java:109)
at security.view.util.SqlUtils.sql(SqlUtils.java:148)
at security.view.util.SqlUtils.sqlJsonObj(SqlUtils.java:418)
at security.view.util.SqlUtils.processKill(SqlUtils.java:97)
at security.view.util.SqlUtils.sql(SqlUtils.java:148)
android – ActivityOptions.makeSceneTransitionAnimation似乎不存在
我曾尝试使用ActivityOptions.makeSceneTransitionAnimation,但它似乎在SDK中(或在jar中看不到),所以我尝试使用反射,它返回一个空值.
有没有其他人得到它的工作?
解决方法
似乎现在完全忽略了设置styles.xml中的值.
您需要在每个Activity的onCreate中执行此操作,直到修复为止
getwindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); Transition transition = // load transition here. getwindow().setSharedElementEnterTransition(transition); getwindow().setSharedElementExitTransition(transition);
根据ViewAnimationUtils所遇到的相同错误,你会在Android Studio中看到错误,但它会编译并运行正常.
android – `setEnterTransition`仅适用于`ActivityCompat.startActivity`
所以我做了:
getwindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS); window.setEnterTransition(new Slide());
这似乎不起作用.在做了一些试验和错误之后(因为我将这个转换用于其他活动)我发现它在调用后确实有效
ActivityOptionsCompat activityOptionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(activity,view,"some_name"); ActivityCompat.startActivity(activity,new Intent(TourAndLoginActivity.this,LoginActivity.class),activityOptionsCompat.toBundle());
但我没有共享元素(我添加了一个视图来测试它).
无法将“null”添加为共享元素.
这样做真的是强制性的吗?我的解决方法是添加一个不可见的共享元素.
解决方法
Start an activity using transitions
If you enable transitions and set an exit transition for an activity,the transition is activated when you launch another activity as follows:startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());If you have set an enter transition for the second activity,the transition is also activated when the activity starts. To disable transitions when you start another activity,provide a null options bundle.
https://developer.android.com/training/material/animations.html
因此,首先启用转换,如下所示:
getwindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS); window.setEnterTransition(new Slide());然后开始活动如下:
startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
android-如何在ActionBarSherlock中将“ setOnEditorActionListener”设置为EditText?
我已使用此代码在ActionBarSherlock中放置可折叠视图(EditText):
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
//Used to put dark icons on light action bar
boolean isLight = false;
menu.add("Search")
.setIcon(isLight ? R.drawable.ic_search_inverse : R.drawable.ic_search)
.setActionView(R.layout.collapsible_edittext)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
return true;
}
当我尝试在视图上通过其ID设置setonEditorActionListener时,应用程序崩溃:
EditText editText = (EditText) findViewById(R.id.search);
editText.setonEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
performSearch(v.getText().toString(), 3);
return true;
}
return false;
}
});
我需要在ActionBar中具有SearchField并在用户按下键盘上的“搜索”键时执行搜索,但是我不知道如何将setonEditorActionListener绑定到视图.
解决方法:
我假设R.id.search在您的R.layout.collapsible_edittext布局内?您在哪里调用findViewById()?例如,您是在onCreate()还是onResume()中调用它?您确定此时已创建菜单吗?
我建议将其包含在onCreateOptionsMenu()中.这样的事情可能会起作用:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
boolean isLight = false;
int menuItemId =
menu.add("Search")
.setIcon(isLight ? R.drawable.ic_search_inverse : R.drawable.ic_search)
.setActionView(R.layout.collapsible_edittext)
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS |
MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW)
.getItemId();
EditText editText =
(EditText) menu.findItem(menuItemId).getActionView().findViewById(R.id.search);
editText.setonEditorActionListener(...);
}
另一个选择是在调用MenuItem.setActionView(actionView)之前,扩大视图并附加侦听器.
(顺便说一句,如果您希望人们确定崩溃原因,则包含异常和堆栈跟踪会很有帮助.)
关于cocos2dx中onExitTransitionDidStart、onExit和onEnter、onEnterTransitionDidFinish处理机制的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.、android – ActivityOptions.makeSceneTransitionAnimation似乎不存在、android – `setEnterTransition`仅适用于`ActivityCompat.startActivity`、android-如何在ActionBarSherlock中将“ setOnEditorActionListener”设置为EditText?等相关知识的信息别忘了在本站进行查找喔。
本文标签: