Adobe 65011817 Extended User Guide - Page 306

Switch statements

Page 306 highlights

Last updated 12/8/2009 EXTENDING FIREWORKS 302 Auto Shapes Function BeginDragControlPoint() Description Tells Fireworks what to do when the user clicks and holds the mouse button on a control point. Fireworks can change the object as the user moves the mouse (for example, using the RegisterMove method of the SmartShape object; for more information about how to get the properties of a smartShape object, see "ContourNode object" on page 239), or wait until after a mouse event to change the object. The following example uses the RegisterMove method to set the properties for the object on the mouse-down event so that the user can preview changes during the drag operation: DragControlPoint() EndDragControlPoint() SmartShapeEdited() function BeginDragControlPoint() { switch (smartShape.currentControlPointIndex) { case 0: var parms = smartShape.GetDefaultMoveParms(); smartShape.elem.controlPoints[0].RegisterMove(parms); smartShape.elem.elements[0].contours[0].nodes[0].RegisterMove(parms); break; } } This function is called every time the mouse moves during a drag operation. Fireworks can change the object as the user moves the mouse or wait until the mouse event ends to change the object. If the BeginDragControlPoint() function specifies control points or other points, Fireworks will not call the DragControlPoint() function. Tells Fireworks how to draw the final Auto Shape, after a drag operation is complete. If Fireworks handled shape changes through the BeginDragControlPoint() function, then you can use the end result of that function as a starting point. In that case, the code need not reflect every change in shape, but just the changes that aren't handled by BeginDragControlPoint(). This function is called when any changes have been made to the Auto Shape that might change the shape's behavior (such as removing a node inside an Auto Shape object). These functions correspond directly with the messages listed in "Fireworks messages" on page 300. To invoke your own function names in response to Fireworks messages, you need to write a switch() statement. Switch statements If you take a look at some existing Auto Shapes (in the Configuration/Auto Shapes folder and in the Configuration/Auto Shape Tools folders), you'll notice a switch() statement near the beginning of the file. The Auto Shape JavaScript code in these files uses a switch() statement as the initial message handler in the file. The switch() statement sorts the messages sent by Fireworks so each message (that is useful to the particular Auto Shape) invokes a corresponding function. You can see this switch statement in each of the Auto Shape JavaScript files. Again, a single Auto Shape object may not need to process every message Fireworks sends, so only the useful messages are written into the JavaScript file using the case qualifier. Effectively, the JavaScript file states in case of a certain message, or messages, perform the following function. In the Frame Auto Shape, this code is used to call PlaceControlPoints() when Fireworks sends a "SmartShapeEdited" message:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336

302
EXTENDING FIREWORKS
Auto Shapes
Las
t
up
d
a
ted
12/8/2009
These functions correspond directly with the messages listed in “
Fireworks messages
” on page
300. To invoke your
own function names in response to Fireworks messages, you need to write a
switch()
statement.
Switch statements
If you take a look at some existing Auto Shapes (in the Configuration/Auto Shapes folder and in the
Configuration/Auto Shape Tools folders), you’ll notice a
switch()
statement near the beginning of the file. The Auto
Shape JavaScript code in these files uses a
switch()
statement as the initial message handler in the file. The
switch()
statement sorts the messages sent by Fireworks so each message (that is useful to the particular Auto Shape) invokes a
corresponding function.
You can see this
switch
statement in each of the Auto Shape JavaScript files. Again, a single Auto Shape object may
not need to process every message Fireworks sends, so only the useful messages are written into the JavaScript file
using the
case
qualifier. Effectively, the JavaScript file states in case of a certain message, or messages, perform the
following function.
In the Frame Auto Shape, this code is used to call
PlaceControlPoints()
when Fireworks sends a
"SmartShapeEdited"
message:
BeginDragControlPoint()
Tells Fireworks what to do when the user clicks and holds the mouse button on a control point.
Fireworks can change the object as the user moves the mouse (for example, using the
RegisterMove method of the SmartShape object; for more information about how to get the
properties of a smartShape object, see “
ContourNode object
” on page
239), or wait until after a
mouse event to change the object.
The following example uses the RegisterMove method to set the properties for the object on
the mouse-down event so that the user can preview changes during the drag operation:
function BeginDragControlPoint()
{
switch (smartShape.currentControlPointIndex) {
case 0:
var parms = smartShape.GetDefaultMoveParms();
smartShape.elem.controlPoints[0].RegisterMove(parms);
smartShape.elem.elements[0].contours[0].nodes[0].RegisterMove(parms);
break;
}
}
DragControlPoint()
This function is called every time the mouse moves during a drag operation. Fireworks can
change the object as the user moves the mouse or wait until the mouse event ends to change
the object.
If the
BeginDragControlPoint()
function specifies control points or other points, Fireworks
will not call the
DragControlPoint()
function.
EndDragControlPoint()
Tells Fireworks how to draw the final Auto Shape, after a drag operation is complete. If Fireworks
handled shape changes through the
BeginDragControlPoint()
function, then you can use
the end result of that function as a starting point. In that case, the code need not reflect every
change in shape, but just the changes that aren’t handled by
BeginDragControlPoint()
.
SmartShapeEdited()
This function is called when any changes have been made to the Auto Shape that might change
the shape’s behavior (such as removing a node inside an Auto Shape object).
Function
Description