Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   onLoad??? (http://www.flasher.ru/forum/showthread.php?t=56937)

as_68 12.04.2004 18:02

onLoad???
 
Почему не грузится переменная txt в a1?

Timeline:
слой action
1 кадр
a1.onLoad=function(){
this.txt = "188";
}
слой mov
лежит a1

2 кадр
слой action
stop();
слой mov
лежит a1

Dindin 12.04.2004 20:33

Дело в том, что событие onLoad доступно только для мувиклипов, созданных динамическим путем, то есть с помощью attachMovie() или duplicateMovieClip ();
И даже в случае с loadMovie () рекомендуется использовать onClipEvent(load);

Dimonius 12.04.2004 21:13

2 Dindin
Бред написал.

2 as_68

А почему ты уверен, что

this .txt = "188";

это ссылка на нужный объект.

Dindin 12.04.2004 21:27

2Dimonius по поводу события onLoad:

This handler can be used only with movie clips for which you have a symbol in the library that is associated with a class . If you want an event handler to be invoked when a specific movie clip loads, for example when you use MovieClip.loadMovie() to load a SWF file dynamically, you must use onClipEvent(load) instead of this handler. The latter handler is invoked when any movie clip loads.

Не я придумал :)

Dimonius 12.04.2004 21:35

Вопрос внимательно прочитал?

Dindin 12.04.2004 21:46

:) Внимательно. Она не грузиться потому, что событие onLoad для мувиклипа не созданного динамическим путем НЕ НАСТУПАЕТ НИКОГДА.
(Вывод, о том, что a1 - объект не динамический я делаю из того, что он ЛЕЖИТ НА СЛОЕ, то есть помещен на Stage до компиляции MovieClip'a)

:)
;)

Dimonius 12.04.2004 21:51

Надо меньше пить :D
Это я лоханулся. Сорри.

Но this не факт что обращается туда куда надо.

Штрек 13.04.2004 01:34

Re: onLoad???
 
Цитата:

Оригинал написал(а) as_68
Почему не грузится переменная txt в a1?

Timeline:
слой action
1 кадр
a1.onLoad=function(){
this.txt = "188";
}
слой mov

Вместо этой хрени, напиши
a1.txt = "188";

as_68 13.04.2004 11:01

Про a1.txt="188" я в курсе.
Просто ситуация следующаяя:
В _rootе лежат 10 мувиков (a1....a10), которым присваивается по 20 значений (txt1...txt20). Так вот чтобы не писать для каждого a1.txt1=....a1.txt20, хотелось написать
a1.onLoad=function(){
this.txt1 = "188";
...
this.txt20 = "388";
}
и менять имя мувика и значения txt для каждого .
Как этот процесс упростить если onLoad не работает? :confused:

для Dimonius
Цитата:

А почему ты уверен, что this .txt = "188";это ссылка на нужный объект.
a1.txt = "188";
a1.onRollOver = function() {
txt=this.txt; trace(txt);
}

РАБОТАЕТ!!!

Dindin 13.04.2004 13:30

Читай ответы внимательнее. Событие onLoad в твоем случае не наступает. А кроме того - какая тебе разница где передавать двадцать значений - в функции или вне ее. (разве что когда ты это делаешь в функции - кода получается больше)
Если у тебя значения статические, то тебе в любом случае придется присваивать их вручную. Двадцать раз. Вот если динамические - совсем другое дело.

Dindin 13.04.2004 13:38

Если я тебя правильно понял (ох, тяжкий это труд домысливать то, что неточно выразили), то дебе нужно задать двадцать переменных для объектов, которые называются a1,a2...a20. Причем первая переменная имеет значение 188, вторая - 198 (188+10), третья - 208 (198+10) и т.д с шагом 10.
тогда делаешь так
numObjects = 20;
currentVar = 188;
step =10;
for (var i=0;i<numObjects;i++)
{
_root['a'+i].txt = currentVar;
currentVar +=step;
}

as_68 13.04.2004 17:17

Цитата:

Если я тебя правильно понял (ох, тяжкий это труд домысливать то, что неточно выразили), то дебе нужно задать двадцать переменных для объектов, которые называются a1,a2...a20. Причем первая переменная имеет значение 188, вторая - 198 (188+10), третья - 208 (198+10) и т.д с шагом 10.
Увы шага никакого нет. :(

Цитата:

Читай ответы внимательнее. Событие onLoad в твоем случае не наступает.
Я уже понял, просто хотел объяснить чего хочу получить.
Пришлось набивать ручками. :D
А хотелось побыстрее - скопировал, поменял только в одном месте имя мувика, и перебил значения переменных.

sergwizard 13.04.2004 22:31

Вложений: 1
Цитата:

Внимательно. Она не грузиться потому, что событие onLoad для мувиклипа не созданного динамическим путем НЕ НАСТУПАЕТ НИКОГДА.
(Вывод, о том, что a1 - объект не динамический я делаю из того, что он ЛЕЖИТ НА СЛОЕ, то есть помещен на Stage до компиляции MovieClip'a)
О, как категорически: "НЕ НАСТУПАЕТ НИКОГДА "!
Ну, это если плохо попросить… А, вот если попросить хорошо, умеючи, - то наступает. Эту фичу надо бы знать. :)

sergwizard 13.04.2004 22:58

Вложений: 1
2as_68
Посмотри этот пример. Надеюсь, он поможет. В том случае, если значения текстовых полей рэндомны, то их сначала надо загнать в массивы, а потом выдергивать их оттуда.

Dindin 13.04.2004 23:48

sergwizard, уел :)


Часовой пояс GMT +4, время: 08:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.