ссылка на имена экземпляров из связанного класса в AS3 - PullRequest
0 голосов
/ 28 июня 2011

У меня есть связанный класс с внешним файлом .as, привязанным к мувиклипу «Меню» во всеобъемлющем флаконе.В этом файле ActionScript я пытаюсь извлечь некоторую информацию из нескольких вещей, которые я сделал с помощью инструмента разработки Flash.На сцене в fla есть несколько символов, которые я нарисовал с именами экземпляров "greensboro" и "birmingham", и я хочу получить их положение в некоторых функциях связанного класса.Я попытался вернуть значение из "greensboro.x", но, конечно, в нем говорится, что переменная greensboro не существует, потому что я не определил ее в классе.Конечно, есть какой-то способ получить эту информацию в переменной моего связанного класса!

Редактировать: вот код, показывающий, что я пробовал (вырезая все остальное).Это в файле .as связанного класса:

package {

    import flash.display.*;
    import flash.net.URLRequest;
    import flash.events.*;
    import flash.net.URLLoader;
    import fl.transitions.Tween;


    public class Menu extends MovieClip {

        public function Menu() {
        trace(birmingham.x);
        }

        public function get birmingham() : MovieClip {
        return root.getChildByName("birmingham") as MovieClip;
        }
    }
}

Ответы [ 3 ]

0 голосов
/ 28 июня 2011
xValue = this['greensboro'].x;

ИЛИ

xValue = this['birmingham'].x;
0 голосов
/ 29 июня 2011

Хорошо, парни. Просто понял ... Я использовал код Бьорнсона в связанном классе, но заменил this на parent. Вот оно:

package {

    import flash.display.*;


    public class Menu extends MovieClip {

        public function Menu() {
        trace(birmingham.x);
        }

        public function get birmingham() : MovieClip {
        return parent.getChildByName("birmingham") as MovieClip;
        }
    }
}

Как магия! Теперь я извлекаю значение x из объектов MovieClip на сцене основного fla и возвращаю их для использования внутри моего связанного класса! Супер полезно

0 голосов
/ 28 июня 2011

вы можете сделать публичную переменную внутри класса следующим образом:

public var birmingham : MovieClip;

и впоследствии использовать ее или создать такой метод получения, чтобы считывать информацию:

public function get birmingham() : MovieClip
{
   return this.getChildByName("birmingham") as MovieClip;
}

inв обоих случаях вы сможете использовать birmingham.x

...