![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2008
Сообщений: 29
|
Помогите, плз! Чтото не пашет...
есть мувик, где грузятся фотки в объекты с названиями "ph"+i Подскажите, как в цикле обратиться к очередному такому объекту с загруженной в него фоткой с целью узнать/задать какие-либо его свойства? Пробовал так: и так: и так: один фиг- undefended(( а если пишу так: то всё отлично. но, необходимо чтоб в цикле ВСЕ объекты перебирались.. |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 29
|
не помогает.. всё также undefended((
непойму почему.. а если я исходник залью, поглядите что там нетак? |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 29
|
вобщем вот он исходник. если ктонибудь найдет время его глянуть и посоветовать чтонибудь дельное, я буду очень признателен!
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Честно говоря, у вас там ошибка на ошибке и стиль написания кода ужасный:
1. грузите в num, который является строкой! Наверно в s собирались грузить? 2. Бросайте писать и начинайте так особенно когда работаете с массивами, у них индексация начинается с нуля 3. Переменным давайте осмысленные названия, и вам легче будет помнить, что вы там храните, и другим (типа помогающим как я) будет понятнее, что у вас происходит. 4. Локальные переменные начинайте писать с var. Типизация тоже желательна. 5. onLoadInit вещается на слушатель (с помощью addListener), а не на экземпляр MovieClipLoader, причем MovieClipLoader нужен один. 6. onLoadInit срабатывает для каждой картинки, поэтому цикл там не нужен. Должно получится примерно следущее on (release) {
//s = new Array();
var s1 = new Array ();
var N = 4;
mcl = new MovieClipLoader ();
mcl.addListener (this);
for (var i = 0; i < N; i++) {
f = 0;
z = 1;
rot = 0;
coef = 1;
num = "ph" + i;
s = pic.duplicateMovieClip (num, 999 - i);
if (i < 10) {
var adress = "concert/concert_0" + i + ".jpg";
} else {
var adress = "concert/concert_" + i + ".jpg";
}
mcl.loadClip (adress, s);
this.onLoadInit = function (target:MovieClip) {
var phw = (736 - target._width) / 2;
var phh = (572 - target._height) / 2;
target._x = 72 + phw;
target._y = 62 + phh;
target._rotation = rot;
var rot2 = rot;
if (rot >= 14) {
z = -1;
}
if (rot <= -2) {
z = 1;
}
if (coef == -1) {
rot = (rot) * coef;
} else {
rot = ((-1) * rot + 2 * z);
}
target._x += 2 * rot2;
target._y -= 2 * rot2;
coef = (-1) * coef;
trace (this[num2] + " " + this);
};
}
}
|
|
|||||
|
Регистрация: Oct 2008
Сообщений: 29
|
iNils, большое спасибо за советы! для меня они действительно очень ценные. я теперь понял свои ошибки. Благодарю!
Добавлено через 10 минут Только ещё один вопрос появился. в onLoadInit элементы обрабатывабтся с конца, т.е. например ph4, ph3, ph2, ph1? покрайней мере у в данном выше коде так получается. а как можно сделать, чтоб элементы обрабатывались в прямом порядке их загрузки, т.е. первым ph1, потом ph2 и т.д. ? Последний раз редактировалось Cha; 01.11.2008 в 04:05. Причина: Добавлено сообщение |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Файлы обрабатываются после их загрузки во флешку. И в каком порядке они загрузятся, зависит от их веса. Если хотите обрабатывать в строго определенном порядке, то загружать их надо не все скопом, а сначала одну, после onLoadInit другую, после второго onLoadInit третью и тд.
|
|
|||||
|
Регистрация: Oct 2008
Сообщений: 29
|
а.. понял, спасибо! попробую так сделать.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 04:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|