ChangeHistoryService
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Les développeurs de plugins doivent utiliser Class.ChangeHistoryService pour dire à Studio comment annuler et restaurer les modifications que leurs plugins apportent aux expériences en enregistrant. Avant de faire des modifications, un plugin appelle ChangeHistoryService, en mémorisant l'identifiant qu'il attribue, puis après avoir fait des modifications, le plugin appelle Class.Change
Les plugins peuvent également invoquer programmiquement un annuler ou restaurer via ChangeHistoryService:Undo() ou ChangeHistoryService:Redo() .
ChangeHistoryService n'est pas activé au moment de l'exécution, donc l'appeler dans une expérience en cours n'a aucun effet.
Résumé
Méthodes
- FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):void
Communiquez à Studio que la prise de son identifiée est terminée et pour prendre l'opération finale pour terminer la prise de son.
Renvoie si il y a des actions qui peuvent être annulées, et, si elles sont annulées, renvoie la dernière d'entre elles.
Renvoie si il y a des actions qui peuvent être annulées, et, si elles sont là, renvoie la dernière d'entre elles.
Exécute la dernière action qui a été annulée.
Efface l'historique, ce qui supprime tous les points d'ancrage/défaire.
Définit si oui ou non le ChangeHistoryService est activé.
Définit un nouveau point d'ancrage qui peut être utilisé comme point d'annulation ou de redo.
Commence à suivre les modifications apportées au modèle de données dans un enregistrement.
Annule la dernière action prise, pour laquelle il existe un point d'ancrage.
Évènements
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operationn : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Activé lorsque l'utilisateur termine une action. Les paramètres viennent de TryBeginRecording() et FinishRecording() .
Fired when the user begins an action. Les paramètres viennent de TryBeginRecording() .
Feu quand l'utilisateur annule la commande annuler. Waypoint décrit le type d'action qui a été redéfini.
Feu quand l'utilisateur annule une action dans le studio. Waypoint décrit le type d'action qui a été annulé.
Propriétés
Méthodes
FinishRecording
Paramètres
Identifie la capture à partir de l'appel précédent à TryBeginRecording() . Si l'opération est Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, cette valeur est ignorée et la capture est déterminée par le contexte.
Spécifiez l'opération à prendre.
Table facultative des valeurs à passer à OnFinishRecording .
Retours
Échantillons de code
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
GetCanRedo
Renvoie si il y a des actions qui peuvent être annulées, et, si elles sont annulées, renvoie la dernière d'entre elles.
Retours
GetCanUndo
Renvoie si il y a des actions qui peuvent être annulées, et, si elles sont là, renvoie la dernière d'entre elles.
Retours
Redo
Exécute la dernière action qui a été annulée.
Retours
ResetWaypoints
Efface l'historique, ce qui supprime tous les points d'ancrage/défaire.
Retours
SetEnabled
Définit si oui ou non le ChangeHistoryService est activé. Lorsqu'il est réglé sur false, la liste dérou/refaire est vidé et ne se réplique pas. Lorsqu'il est réglé sur true de nouveau, la liste originale n'est pas restaurée, mais des opérations supplémentaires sont ajoutées à la liste une fois de plus
Paramètres
Retours
SetWaypoint
Cette méthode sera bientôt obsolète au profit de TryBeginRecording().
ChangeHistoryService suit l'historique des plugins comme un flux de modifications de propriété. SetWaypoint() crée un coup dans cet flux de modifications de propriété afin que les annulations et les redo actions sachent où s'arrêter.
Par convention, les actions invoquées par l'utilisateur dans Studio doivent appeler Class.ChangeHistoryService:SetWaypoint()|SetWaypoint() après avoir terminé leur ensemble de modifications dans l'expérience. L'appeler SetWaypoint() un ensemble de modifications peut nettoyer un autre plugin qui a échoué à définir un point d'arrêt, mais c'est une mauvaise raison de justifier un tel
Paramètres
Retours
Échantillons de code
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts > 0 then
-- Calling SetWaypoint before the work will not cause any issues, however
-- it is redundant, only the call AFTER the work is needed.
--ChangeHistoryService:SetWaypoint("Setting selection to neon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Call SetWaypoint AFTER completing the work
ChangeHistoryService:SetWaypoint("Set selection to neon")
else
-- Nothing to do. You do not need to call SetWaypoint in the case where
-- the action did not end up making any changes to the experience.
end
end)
TryBeginRecording
Cette méthode commence une enregistrement pour suivre les modifications du modèlisationde données. Vous devez l'appeler avant de faire des modifications pour éviter les avertissements ou les erreurs futures.
Lorsque l'enregistrement est terminé, vous appelez FinishRecording() avec l'identifiant de l'enregistrement renvoyé pour terminer l'enregistrement et mettre à jour le pilier annuler/refaire.
Cette méthode renverra nil si elle ne peut pas commencer une enregistrement. Les enregistrements échouent si le plugin a déjà un enregistrement en cours, ou si l'utilisateur est dans le Mode d'exécution ou Mode de lecture .
Vous pouvez utiliser IsRecordingInProgress() pour vérifier le statut d'enregistrement du plugin.
Paramètres
Nom de l'action à exécuter pour des fins de journalisation et de codage appropriées.
Nom de l'action à exécuter pour afficher à l'utilisateur.
Retours
Échantillons de code
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)
Undo
Annule la dernière action prise, pour laquelle il existe un point d'ancrage.
Retours
Évènements
OnRecordingFinished
Paramètres
Nom de l'action à exécuter pour des fins de journalisation et de codage appropriées.
Nom de l'action à exécuter pour afficher à l'utilisateur.
L'identifiant de l'enregistrement.
Table optionnelle de FinishOperation() .
OnRecordingStarted
Paramètres
Nom de l'action à exécuter pour des fins de journalisation et de codage appropriées.
Nom de l'action à exécuter pour afficher à l'utilisateur.
OnRedo
Feu quand l'utilisateur annule la commande annuler. Waypoint décrit le type d'action qui a été redéfini.
Paramètres
OnUndo
Feu quand l'utilisateur annule une action dans le studio. Waypoint décrit le type d'action qui a été annulé.