Wenn ich einen Eingangsstecker zum Beispiel mFileAttr
verschmutze, wird der setDependentsDirty()
richtig aufgerufen, aber der Wert von fileName
Stecker ist immer noch der alte Wert! Ich sehe nur, dass es aktualisiert wird, sobald es durch compute()
geht. Wie kann ich auf den neuen Wert in setDependentsDirty()
Funktion zugreifen, da es tatsächlich durch das Plug-Wert-Update ausgelöst wird? Verschmutzter Stecker hat immer noch den alten Wert während setDependentsDirty()
MStatus FNode::setDependentsDirty(const MPlug& plug, MPlugArray& plugArray) {
if (plug == mFileAttr)
{
MPlug fileNamePlug(thisMObject(), plug);
MString fileName = fileNamePlug.asString();
}
return MPxNode::setDependentsDirty(plug, plugArray); }
Edit: Nur um zu klären, Lesen Stecker Wert selbst, plug.asString()
, es hält immer noch den alten Wert.
Ich hatte das eigentlich gelesen. Die Sache ist, ich habe keine Möglichkeit, dies während compute() zu tun, weil ich versuche, verschiedene Stecker Verbindung zu trennen/zu verbinden und es scheint, als wäre das nicht möglich compute() es sei denn, es gibt eine Möglichkeit, die mir nicht bewusst ist. Schau dir das an für weitere Erklärungen http://stackoverflow.com/questions/38721084/disconnecting-connecting-plugs-gives-internal-failure-in-compute – Yasin