[32]: Родительские и дочерние объекты

Приветствую вас, друзья, сегодня решил рассказать ещё об одной важной штуке, это – родственные связи во флеш :) При разработке игр мы частенько будем писать ActionScript внутри клипов, внутри клипов клипов, и т.д. И при всём этом нужно уметь обращаться к этим вложенным объектам, и наоборот, обращаться из объектов к другим объектам или к основному коду ActionScript.

Допустим у нас есть клип коробка “box“, в нем клип машинка “car“, а в машинке клип колесо “wheel“.
- – -
Для того чтобы со сцены обратиться к клипу с колесом нам нужно написать:
box.car.wheel
Это довольно просто и понятно.
- – -
Теперь ситуация наоборот, нам нужно из клипа с колесом обратиться к клипу с машиной, тогда нам нужно написать:
MovieClip(parent)
В этом случае запись “MovieClip(parent)” будет ссылаться на клип “car”.
- – -
Чтобы из клипа с колесом обратиться к клипу с подарком, нам нужно написать:
MovieClip(parent.parent)
- – -
Чтобы из клипа с колесом обратиться к главной сцене, нам нужно написать:
MovieClip(parent.parent.parent)
- – -

Давайте разберем клип с машинкой.
Чтобы из клипа с машиной “car” обратиться к клипу с колесом и поменять его координату по х на 50, нам нужно написать:

wheel.х = 50

Чтобы из клипа с машиной ”car” обратиться к клипу с подарком и поменять его координату по х на 50, нам нужно написать:

MovieClip(parent).х = 50

Чтобы из клипа с машиной ”car” обратиться к САМОМУ СЕБЕ и поменять свою координату по х на 50, нам нужно написать:

this.х = 50

Если же из клипа с машиной ”car”  вы напишете:

MovieClip(parent.parent).х=50 то вы передвинете ВСЁ!, что есть на сцене в координату по х = 50 :)

Подробнее обо всём этом смотрите в видео ниже:

Исходник: yadi.sk/d/N-xxd5VrBsa9n
Код ActionScript 3.0 из урока:

В данном примере сначала создается клип с именем “oblako” с 10 картинками в каждом кадре. Далее создается мувиклип с именем ”kvadrat”, и внутри него клип с анимацией с названием “krug“.

Всё подробно рассказано в видео :) Если будут какие-либо вопросы, пишите в комментариях к видео. Надеюсь, данный урок по реализации скорости в action script 3.0 в программе adobe flash, поможет вам в разработке игр. :)

Комментарии
  1. Alexandrn

    Приветствую, друзья!
    А как прописать команду в клипе облако, чтобы когда облако проиграет все свои 10 кадров, оно самоудалилось? Или такое только с главной сцены возможно?
    Благодарю за внимание!

    • admin

      Привет.) В последнем кадре облака напиши:
      parent.removeChild(MovieClip(parent).oblako);

  2. Alexandrn

    Спасибоооо, друг!!! А я как только не пробовал. Сам бы я до такого не до пёр )))
    А описать это можно так: Родитель, удали ребёнка(я клип обращаюсь с просьбой(к родителю) моё имя Облако) ))))

    • admin

      что-то типа того :D
      т.к. облако у нас на сцене то и удалять надо со сцены. а сцена у нас на 1 уровень выше. т.е. parent.removeChild будет удалять всё что находиться на сцене. Ну и т.к. удалить нужно облако, то путь к нему из самого облака MovieClip(parent).oblako
      Возможно можно удалить и так:
      parent.removeChild(this);
      хотя не факт) в as3 он как-то криво реализован, как и root…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">