![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
1.Скажите this.cityProto имеет точку регистрации в центре мува или левый верхний угол (или иное)?
2.Мне необходимо посмотреть текст класса CSity поскольку именно он отвечает за формирование самих надписей Последний раз редактировалось Alex_beginner; 26.05.2008 в 19:16. |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 204
|
А такой вариант чем плох - брать _x и _y объекта (в зависимости от того где надо отступо по высоте или ширине, прибавлять _width или _height объекта + определенный отступ, тогда можно выдержать четкое расстояние между всеми
|
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
DJ Baton!Curizor!
Все бы хорошо! Вот только ширина то, текущего клипа, а не предыдущего! Поэтому, давайте подробно рассмотрим вот этот кусочек кода: var resultMC = this.cityProto.duplicateMovieClip("city_" + index, this.getNextHighestDepth());
resultMC._y = 0;
resultMC._x = index * resultMC._width;
resultMC.__proto__ = new CSity();
resultMC.init(caption, href, this);
1. Создается дубликат некоего клипа this.cityProto; 2. Ширина вновь созданного дубликата имеет то же значение, что и дублируемого клипа; 3. Координату левого-верхнего угла клипа-дубликата мы определяем как произведение счетчика цикла (см. ниже) и ширины текущего созданного дубликата; 4. Создаем потомок класса CSity; 5. Вызываем метод init() объекта класса-потомка от CSity. Проанализируем п.2 и п.3, совместно. Если, ширина всех создаваемых дубликатов одинакова, строчка: безусловно корректна. Поскольку, ее можно представить как сложение i равных значений. Ситуация в корне меняется, если эти расстояния неравны между собой. Тогда указанная выше формула для расчета положения клипа-названия некорректна, и будет давать искажения положения клипа-названия на родительской временной шкале. Надейюсь объяснил понятно. Если не понятно, спрашивайте, объясню на примерах. Теперь, как решить данную проблему. Необходиму создать некоторую буфферную глобальную переменную в которую на текщей итерации - i, Вы будете записывать сумму ширин всех созданных на предыдущих итерациях дубликатов (клипов-названий). Тогда, позиция левого-верхнего угла текущего клипа-названия-дубликата будет определяться суммой ширин предыдущих. А после установки текущей позциии клипа, прибавив к ней ширину текущего клипа, мы получим позицию для клипа на следующей итерации. В принципе, можно обойтись и без создания дополнительной глобальной переменной, а рассчитывать положение текущего клипа, как сумму двух значении - позиции _x предыдущего (на итерации i-1) созданного клипа-дубликата и его же ширины. Это первый возможный вариант. Если он не поможет, то необходимо посмотреть текст реализации класса CSity, потому как именно он отвечает за формирование клипа-названия. Тест класса CSity здесь непредставлен. Последний раз редактировалось Alex_beginner; 27.05.2008 в 09:53. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|