MovieClip._lockroot
593
For example, suppose you have a document called Games.fla that lets a user choose a game to
play, and loads the game (for example, Chess.swf ) into the
game_mc
movie clip. You want to make
sure that, if
_root
is used in Chess.swf, it still refers to
_root
in Chess.swf after being loaded into
Games.swf. If you have access to Chess.fla and publish it to Flash Player 7 or later, you can add
this statement to Chess.fla on the main Timeline:
this._lockroot = true;
If you don’t have access to Chess.fla (for example, if you are loading Chess.swf from someone
else’s site into
chess_mc
), you can set its
_lockroot
property when you load it, as shown below.
In this case, Chess.swf can be published for any version of Flash Player, as long as Games.swf is
published for Flash Player 7 or later. Place the following ActionScript on the main Timeline:
chess_mc._lockroot = true;
When calling
loadMovie()
, set the
MovieClip._lockroot
property to
true
in the loader
movie, as shown in the following code. If you don’t set
_lockroot
to
true
in the loader movie,
the loader has access only to its own library, but not the library in the loaded movie:
myMovieClip._lockroot = true;
Example
In the following example, lockroot.fla has
_lockroot
applied to the main SWF file. If it is loaded
into another FLA document,
_root
will always refer to the scope of lockroot.swf, which helps
prevent conflicts. Place the following ActionScript on the main Timeline of lockroot.fla.
this._lockroot = true;
_root.myVar = 1;
_root.myOtherVar = 2;
trace("from lockroot.swf");
for (i in _root) {
trace(" "+i+" -> "+_root[i]);
}
trace("");
Which traces the following information:
from lockroot.swf
myOtherVar -> 2
myVar -> 1
_lockroot -> true
$version -> WIN 7,0,19,0
The following example loads two SWF files, lockroot.swf and nolockroot.swf. The lockroot.fla
document contains the previous ActionScript. The nolockroot FLA file has the following code
placed on Frame 1 of the Timeline:
_root.myVar = 1;
_root.myOtherVar = 2;
trace("from nolockroot.swf");
for (i in _root) {
trace(" "+i+" -> "+_root[i]);
}
trace("");
Summary of Contents for FLEX-FLEX ACTIONSCRIPT LANGUAGE
Page 1: ...Flex ActionScript Language Reference...
Page 8: ......
Page 66: ...66 Chapter 2 Creating Custom Classes with ActionScript 2 0...
Page 76: ......
Page 133: ...break 133 See also for for in do while while switch case continue throw try catch finally...
Page 135: ...case 135 See also break default strict equality switch...
Page 146: ...146 Chapter 5 ActionScript Core Language Elements See also break continue while...
Page 808: ...808 Chapter 7 ActionScript for Flash...
Page 810: ...810 Appendix A Deprecated Flash 4 operators...
Page 815: ...Other keys 815 Num Lock 144 186 187 _ 189 191 192 219 220 221 222 Key Key code...
Page 816: ...816 Appendix B Keyboard Keys and Key Code Values...
Page 822: ...822 Index...