When using the "tell target" Action, which "Notation" is best to use, Dots or Slashes?
When using the "tell target" Action, which "Notation" is best to use, Dots or Slashes?
phdsigns
The problem is caused by the use of _root in my movie.Originally Posted by phdsigns
What happens is the preloader loads my movie into
_root.ptgt
so what was once _root in my movie is not at _root.ptgt
I was advised to use relative paths using _parent
instead, how do I do this?
phdsigns
Hi,
tellTarget is a depricated command. Dot notation is the easiest way to access paths....
_root = main timeline
_root.mcName = main timeline of "mcName"
_root.mcName.otherMC = main timeline of "otherMC"
When loading external movies the use of relative paths is one approach...
_parent.mcName = main timeline (in this case, of the main movie)
You can also just add the holder movieclip to the path with dot notation. Say your loading into a movieclip called "holderMC". In the external movie to be loaded, the path would need to reflect the name of the movieclip being loaded into.........
external movie
_root.gotoAndPlay("frameLabel");
once loaded into the "holderMC" movieclip, the path would look like...
_root.holderMC.gotoAndPlay("frameLabel");
Another option with FlashMX 2004 is the lockRoot command....
MovieClip._lockroot
Availability
Flash Player 7.
Usage
my_mc._lockroot:Boolean
Description
Property; specifies what _root refers to when a SWF file is loaded into a movie clip. The _lockroot property is undefined by default. You can set this property within the SWF file that is being loaded or in the handler that is loading the movie clip.
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 co***icts. 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("");
The lockroot.swf file has _lockroot applied to it, and nolockroot.swf does not. After the files are loaded, each file dumps variables from their _root scopes. Place the following ActionScript on the main Timeline of a FLA document:
this.createEmptyMovieClip("lockroot_mc", this.getNextHighestDepth());
lockroot_mc.loadMovie("lockroot.swf");
this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth());
nolockroot_mc.loadMovie("nolockroot.swf");
function dumpRoot() {
trace("from current SWF file");
for (i in _root) {
trace(" "+i+" -> "+_root[i]);
}
trace("");
}
dumpRoot();
which traces the following information:
from current SWF file
dumpRoot -> [type Function]
$version -> WIN 7,0,19,0
nolockroot_mc -> _level0.nolockroot_mc
lockroot_mc -> _level0.lockroot_mc
from nolockroot.swf
myVar -> 1
i -> lockroot_mc
dumpRoot -> [type Function]
$version -> WIN 7,0,19,0
nolockroot_mc -> _level0.nolockroot_mc
lockroot_mc -> _level0.lockroot_mc
from lockroot.swf
myOtherVar -> 2
myVar -> 1
The file with no _lockroot applied contains all of the other variables contained in the root SWF as well. If you don’t have access to the nolockroot.fla, then you can change the _lockroot in the main FLA document above using the following ActionScript added to the main Timeline:
this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth());
nolockroot_mc._lockroot = true;
nolockroot_mc.loadMovie("nolockroot.swf");
which would then trace the following:
from current SWF file
dumpRoot -> [type Function]
$version -> WIN 7,0,19,0
nolockroot_mc -> _level0.nolockroot_mc
lockroot_mc -> _level0.lockroot_mc
from nolockroot.swf
myOtherVar -> 2
myVar -> 1
from lockroot.swf
myOtherVar -> 2
myVar -> 1
A mind once stretched by a new idea never regains its original dimensions.
- Oliver Wendell Holmes
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks