Как назначить родительскую переменную от родительского ребенка? - PullRequest
0 голосов
/ 07 ноября 2011

Я хочу передать переменную от родителя к ребенку. Как я могу передать переменную. Здесь я вставляю свой код. Любой, пожалуйста, помогите мне. Спасибо заранее!

Мой родительский класс

public class PlayerStrobe_domaincheck extends Sprite
{
    private var myService:NetConnection = new NetConnection();
    private var _loader:Loader;

    public function PlayerStrobe_domaincheck()
    {
        _loader = new Loader();
        var sourceId:String = loaderInfo.parameters.src;// I want to pass This Variable
        var some:StrobeMediaPlayback = new StrobeMediaPlayback(parentObject);// Access of undefined property parentObject(Error Message).
        some = new StrobeMediaPlayback(this);

}}

Мой детский класс

public class StrobeMediaPlayback extends Sprite
{
    private var _loader:Loader;
    private var sourceId:String; //i want to access the the parent  variable(sourceId) here
    parentClass = parent;
    function Test():void
        {
                mediaContainer.addMediaElement(alert);
                            alert.alert("Error",parentClass.sourceId);
                 }

Ответы [ 3 ]

0 голосов
/ 07 ноября 2011

Yoc может передать родительский класс дочернему классу

public class StrobeMediaPlayback extends Sprite
{
    private var _loader:Loader;
    private var sourceId:String; //i want to access the the parent  variable(sourceId) here
    private var parentClass:PlayerStrobe_domaincheck;

    public function StrobeMediaPlayback(parent:PlayerStrobe_domaincheck)
    {
        parentClass = parent;
        trace("welcome");
    }   
    public function Test():void
    {
        trace(parentClass.sourceId);
    }
}

, а когда вы создаете своего ребенка из родительского (например), передать родительский объект как параметр типа

var some:StrobeMediaPlayback = new StrobeMediaPlayback(parentObject)

, и вы определитеродитель должен быть таким

public class PlayerStrobe_domaincheck extends Sprite
{
    private var myService:NetConnection = new NetConnection();
    private var _loader:Loader;
    private var some:StrobeMediaPlayback; //update
    public var sourceId:String;

    public function PlayerStrobe_domaincheck()
    {
        _loader = new Loader();
        sourceId = loaderInfo.parameters.src;// I want to pass This Variable
        some = new StrobeMediaPlayback(this) //update
    }
}

вы можете дефилировать свой дочерний объект в конструкторе родителей

0 голосов
/ 07 ноября 2011
public class PlayerStrobe_domaincheck extends Sprite
{
    private var myService:NetConnection = new NetConnection();
    private var _loader:Loader;


    public function PlayerStrobe_domaincheck()
    {
        _loader = new Loader();
        var sourceId:String = loaderInfo.parameters.src;

        var some:StrobeMediaPlayback = new StrobeMediaPlayback(sourceId);

        new StrobeMediaPlayback(this);
    }
}



public class StrobeMediaPlayback extends Sprite
{
    private var _loader:Loader;
    private var sourceId:String;
    parentClass = parent;

   public function StrobeMediaPlayback(sourceIdVariablePassed:String):void
    {
                mediaContainer.addMediaElement(alert);
                trace("Source ID "+sourceIdVariablePassed);
    }
}
0 голосов
/ 07 ноября 2011

Вы не можете сделать это напрямую, если ваша переменная в родительском элементе не является public

С другой стороны, это не очень хороший код, чтобы сделать это, потому что тогда ребенок вынужден быть добавлен только к вашемуродительский класс и ничего больше.

Лучший способ - отправить событие и заставить его прослушать родительский объект.Обработчик события в родительском объекте должен изменить переменную в родительском объекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...