disableSerialization: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "<dd class="note">([^}]*)<code>([^<]*)<\/code>" to "<dd class="note">$1<sqf>$2</sqf>") |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
Line 21: | Line 21: | ||
-->giving a [[Display]] or [[Control]] to [[spawn]]ed code would raise an error due to the usage of the then non-serializable {{hl|[[Magic Variables#this|_this]]}} variable. <!-- | -->giving a [[Display]] or [[Control]] to [[spawn]]ed code would raise an error due to the usage of the then non-serializable {{hl|[[Magic Variables#this|_this]]}} variable. <!-- | ||
-->Using [[disableSerialization]] or [[uiNamespace]] wouldn't help; the trick here is to pass the argument inside an array: | -->Using [[disableSerialization]] or [[uiNamespace]] wouldn't help; the trick here is to pass the argument inside an array: | ||
< | <sqf> | ||
_display = findDisplay 46; | |||
_display spawn { hint str _this; }; // would raise a serialization error | |||
[_display] spawn { hint str (_this select 0); }; // OK</sqf> | |||
}} | |||
|s1= [[disableSerialization]] | |s1= [[disableSerialization]] | ||
Line 29: | Line 31: | ||
|r1= [[Nothing]] | |r1= [[Nothing]] | ||
|x1= <sqf>disableSerialization; | |x1= <sqf> | ||
private _display = findDisplay 46;</sqf> | disableSerialization; | ||
private _display = findDisplay 46; | |||
</sqf> | |||
|seealso= [[Display]] [[displayAddEventHandler]] [[displayRemoveAllEventHandlers]] [[displayRemoveEventHandler]] [[uiSleep]] | |seealso= [[Display]] [[displayAddEventHandler]] [[displayRemoveAllEventHandlers]] [[displayRemoveEventHandler]] [[uiSleep]] | ||
Line 56: | Line 60: | ||
This code will require [[disableSerialization]]: | This code will require [[disableSerialization]]: | ||
<sqf>disableSerialization; | <sqf> | ||
disableSerialization; | |||
_display = findDisplay 123; | _display = findDisplay 123; | ||
_ctrl = _display displayCtrl -1; | _ctrl = _display displayCtrl -1; | ||
_ctrl ctrlSetText "LOL";</sqf> | _ctrl ctrlSetText "LOL"; | ||
</sqf> | |||
This code will not: | This code will not: | ||
<sqf>findDisplay 123 displayCtrl -1 ctrlSetText "LOL";</sqf> | <sqf>findDisplay 123 displayCtrl -1 ctrlSetText "LOL";</sqf> | ||
<dt><dt> | <dt><dt> | ||
<dd class="notedate">Posted on July 25, 2017 - 18:15 (UTC)</dd> | <dd class="notedate">Posted on July 25, 2017 - 18:15 (UTC)</dd> | ||
Line 68: | Line 75: | ||
In Arma 3 1.74, a scripted FSM does somehow not work with [[disableSerialization]]. As a workaround, store a display inside an array. | In Arma 3 1.74, a scripted FSM does somehow not work with [[disableSerialization]]. As a workaround, store a display inside an array. | ||
Example: | Example: | ||
< | <sqf>_display = [findDisplay idd];</sqf> | ||
</dl> | </dl> |
Revision as of 14:29, 13 May 2022
Description
- Description:
- Disable saving of script containing this command. After this, the script can work with data types which do not support serialization (UI types). See Namespace serialization for more information.
- Groups:
- NamespacesGUI Control
Syntax
- Syntax:
- disableSerialization
- Return Value:
- Nothing
Examples
- Example 1:
Additional Information
- See also:
- Display displayAddEventHandler displayRemoveAllEventHandlers displayRemoveEventHandler uiSleep
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
- Posted on 19 June, 2010
- Str
-
Can be used to detecting load. Scope with disabled serialization is discontinued after load, even if there's endless loop inside.
Works for all possible load types - loading user save, loading autosave and resuming mission from main menu. Use with caution, as it handles two threads in memory, having impact at overall scripting time.
- Posted on 23 October, 2013
- Killzone_Kid
-
If you do not store UI elements (Display, Control) in variables, you do not need disableSerialization; UI elements are usually returned by scripting commands such as findDisplay or passed as params in UI event handler scripts (displayAddEventHandler, ctrlAddEventHandler).
This code will require disableSerialization:
This code will not:disableSerialization; _display = findDisplay 123; _ctrl = _display displayCtrl -1; _ctrl ctrlSetText "LOL";
- Posted on July 25, 2017 - 18:15 (UTC)
- IT07
-
In Arma 3 1.74, a scripted FSM does somehow not work with disableSerialization. As a workaround, store a display inside an array.
Example: