PDA

Просмотр полной версии : Как получить доступ из класса к свойствам контейнера экземпляра?


Avid
11.07.2009, 16:49
у меня есть класс aclip, он является потомком MovieClip.
В классе переопределено свойство _x=_root._xmouse;(я так пытался получить доступ к координате курсора относительно внешнего клипа, содержащего экземпляр объекта aclip.
но в _x возвращается значение _xmouse относительно точки привязки экземпляра aclip, то же самое со свойствами _parent._width, _parent._height - я вызываю их из конструктора класса и они возвращают для экземпляров, созданных на основе этого класса собственную ширину и высоту , а мне нужны ширина и Высота того клипа , в котором находится экземпляр, как мне поступить?

class aclip extends MovieClip{

var position:Number;

function aclip(){
}

function xmov( doc_x, speed) {
position = (doc_x/2-_root._xmouse)*speed/doc_x;
return position;}

function onEnterFrame(){_x+=xmov(_root._width,75);}
}

silin
11.07.2009, 20:44
если ролик не подгружается никуда, то размеры это Stage.width/height
непонятки с локальными координатами можно решить через localToGlobal и globalToLocal или getBounds

dmitriev
11.07.2009, 23:50
Добавлю: имя класса нужно писать с прописной, вот так:
class Aclip extends MovieClip {

И лучше давать осмысленные имена классам.

Avid
12.07.2009, 16:43
Спасибо, проблема решена.

class Aclip extends MovieClip{

var position,doc_x:Number;

function Aclip(){

}

function xmov( doc_x, speed) {
position = (doc_x/2-_root._xmouse)*speed/doc_x;
return position;}


function onEnterFrame(){_x+=xmov(Stage.width,75);
}}
нужно было просто исползовать свойство класса сцены (Stage.width) вместо _root._width , _root._xmouse нормально обрабатывается.
Теперь все работает, но вот тогда какой вопрос: _root._width тоже возвращает значение типа Number, несмотря на то , что сцена не имеет свойства _width
откуда оно берется? видимо берет это значение из единственного клипа в сцене но компилятор не ругается...странно..

silin
12.07.2009, 16:54
_root и Stage не одно и тоже, сцена это объект плеера, а _root это основной мувик загруженной в сцену флешки, понятно, что фактические размеры этого мувика могут быть любыми