Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как получить доступ из класса к свойствам контейнера экземпляра? (http://www.flasher.ru/forum/showthread.php?t=127343)

Avid 11.07.2009 16:49

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

Код AS1/AS2:

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

Добавлю: имя класса нужно писать с прописной, вот так:
Код AS1/AS2:

class Aclip extends MovieClip {

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

Avid 12.07.2009 16:43

Спасибо, проблема решена.

Код AS1/AS2:

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 это основной мувик загруженной в сцену флешки, понятно, что фактические размеры этого мувика могут быть любыми


Часовой пояс GMT +4, время: 16:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.