webForumDet fria alternativet

Få ut _root._x och _root._y?

Flash

4 svar · 550 visningar · startad av saturday

Medlem sedan jan. 2007133 inlägg
Frågan#1

Kortfattat, jag har ett movieclip som ligger innanför några movieclip. På detta movieclip har jag följande kod:
--

onClipEvent(enterFrame){
// Tar ut nollpunkten för y och x
this._x = _root._x
this._y = _root._y
// Gör movieclipet till fullscreen
this._width = Stage.width
this._height = Stage.height
}

--

"this._width = Stage.width" och "this._height = Stage.height" ser ut att fungera perfekt men "this._x = _root._x" och "this._y = _root._y" fungerar inte. Vad som händer är att den hämtar ändå ut nollpunkten i movieclipet jag befinner mig i och inte nollpunkten från _root. Det verkar alltså som att scriptet inte går ned till _root fast att jag adresserar dit. Vad är det som inte stämmer? Hur lyckas jag hämta ut nollpunkten från _root? Se bifogad bild för att se hur det blir just nu. Det är alltså den mörkade ytan som är detta movieclip,

Ps. Om jag lyfter ned movieclipet till _root och kör med...

onClipEvent(enterFrame){
// Tar ut nollpunkten för y och x
this._x = _x
this._y = _y
// Gör movieclipet till fullscreen
this._width = Stage.width
this._height = Stage.height
}

... så fungerar det som jag vill. Men nu ska inte movieclipet ligga direkt under _root...

exempel.jpg
Medlem sedan dec. 200384 inlägg
#2

Då du har en hierarki av movieclips som troligen inte är positionerade på x=0 och y=0 så får du använda dig av hårdkodade värden i detta fall.

Tex

this._x = -100;

Medlem sedan jan. 2007133 inlägg
#3

Jag förstår nog inte vad du menar riktigt, jag vill ju inte ta ut nollpunkten från ett movieclip utan från _root, och den är väl alltid densamma?. Ditt alternativ fungerar ej då jag kör fullscreen och allt innehåll centreras. Jag kan inte sätta "this._x = -100;" då innehållet centreras då du förändrar storleken på webbläsaren, så "this._x" måste vara relativ till nollpunkten av _root.

Det måste väl finnas ett fungerande sätt att hämta ut nollpunkten från roten via?

Ps. Jag prövade med "this._x = Stage.width - Stage.width", men det resulterade i samma fel.

Medlem sedan maj 2003750 inlägg
#4

_root._x och _root._y är 0 per default och därför så placerar den sig på förälderns 0-punkt.

För att hitta var i ett filmklipp som en punkt på _root finns i ett filmklipp så använd metoden globalToLocal().

// Placera filmklippet på position (0, 0) på _root
var point = {x:0, y:0}
_parent.globalToLocal(point)
this._x = point.x;
this._y = point.y

Slå upp MovieClip.globalToLocal() i Actionscript referensen för mer information.

/Mirandir

Medlem sedan jan. 2007133 inlägg
#5

Perfekt. Tack för hjälpen!

285 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
153 ms — ändringar (db)