Adobe 38039927 Extended User Guide - Page 271

A simple RPC example

Page 271 highlights

ADOBE FIREWORKS CS3 267 Extending Guide RPCMethods.CreateAutoReleasePool(); var selObject = fw.selection.get(0); RPCMethods.DestroyAutoReleasePool(); Calling the CreateAutoReleasePool() function marks the beginning of the auto-release block, and calling the DestroyAutoReleasePool() function marks the end. Any object allocated between these two calls is released by calling DestroyAutoReleasePool(). Using these two functions, you can write ActionScript code and not worry about memory management. Accessing proxy objects If you want to access a proxy object outside of an auto-release block, you must use the RemoveFromAutoReleasePool() function. The RemoveFromAutoReleasePool() function manually removes an object reference from the auto-release pool before exiting the auto-release block. In this example, the reference to the object defined as selObject is removed: RPCMethods.CreateAutoReleasePool(); var selObject = fw.selection.get(0); RPCMethods.RemoveFromAutoReleasePool(selObject); RPCMethods.DestroyAutoReleasePool(); Now you can use the selObject object outside the auto-release block. Note: You must remember to release the selObject object when you are done with it. Additionally, you can nest auto-release blocks, that is, you can create an auto-release block and then call a function that creates its own auto-release block. The ReleaseObject() function iterates through an object's properties and releases any proxy objects it finds. A simple RPC example This example creates a 200 x 200 pixel rectangle in Fireworks when a button in a Flash application is clicked. To build a Flash application that uses RPC to create a Fireworks object: 1 Download the supporting ActionScript stub files (a series of supporting ActionScript files) from the Adobe website, you need to put them in your working directory (where the new FLA file will reside). 2 Open a new document in Flash. 3 In the first frame, add the following in the Actions panel to link the general fireworks stub file to the movie when it is published: #include "fwstubs.as" 4 Create a simple button which will activate the RPC script. 5 Insert the button in the first frame, in the middle of the Stage. 6 Attach the following ActionScript code to the button to activate the RPC code when the button is clicked: on(press){ RPCMethods.CreateAutoReleasePool(); var fw = new Fireworks();

  • 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

ADOBE FIREWORKS CS3
Extending Guide
267
RPCMethods.CreateAutoReleasePool();
var selObject = fw.selection.get(0);
RPCMethods.DestroyAutoReleasePool();
Calling the
CreateAutoReleasePool()
function marks the beginning of the auto-release block, and calling the
DestroyAutoReleasePool()
function marks the end. Any object allocated between these two calls is released by
calling
DestroyAutoReleasePool()
. Using these two functions, you can write ActionScript code and not worry
about memory management.
Accessing proxy objects
If you want to access a proxy object outside of an auto-release block, you must use
the
RemoveFromAutoReleasePool()
function. The
RemoveFromAutoReleasePool()
function manually removes
an object reference from the auto-release pool before exiting the auto-release block.
In this example, the reference to the object defined as
selObject
is removed:
RPCMethods.CreateAutoReleasePool();
var selObject = fw.selection.get(0);
RPCMethods.RemoveFromAutoReleasePool(selObject);
RPCMethods.DestroyAutoReleasePool();
Now you can use the selObject
object outside the auto-release block.
Note:
You must remember to release the selObject object when you are done with it.
Additionally, you can nest auto-release blocks, that is, you can create an auto-release block and then call a function
that creates its own auto-release block. The
ReleaseObject()
function iterates through an object’s properties and
releases any proxy objects it finds.
A simple RPC example
This example creates a 200 x 200 pixel rectangle in Fireworks when a button in a Flash application is clicked.
To build a Flash application that uses RPC to create a Fireworks object:
1
Download the supporting ActionScript stub files (a series of supporting ActionScript files) from the Adobe
website, you need to put them in your working directory (where the new FLA file will reside).
2
Open a new document in Flash.
3
In the first frame, add the following in the Actions panel to link the general fireworks stub file to the movie when
it is published:
#include "fwstubs.as"
4
Create a simple button which will activate the RPC script.
5
Insert the button in the first frame, in the middle of the Stage.
6
Attach the following ActionScript code to the button to activate the RPC code when the button is clicked:
on(press){
RPCMethods.CreateAutoReleasePool();
var fw = new Fireworks();