![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 7
|
посмотрите код внизу...
программно создаю мувиклип mc1... внитри mc1 программно создаю клип test... внутри mc1["test"] присваиваю переменной slovo значение "Hello world!"... в test подгружаю картинку через loadMovie... функция myDraw просто должна значение mc1["test"].slovo через trace... при прямом вызове myDraw выводит значение, а при вызове myDraw из другой функции пишет undefined... в чем проблема? import flash.display.BitmapData;
var mc1:MovieClip = _root.createEmptyMovieClip('mc1',_root.getNextHighestDepth());
mc1.createEmptyMovieClip("test",mc1.getNextHighestDepth());
mc1["test"].slovo='Hello world!'; //можно ли так делать??????
mc1["test"].loadMovie("img.jpg");
function myDraw(mc:MovieClip) {
mc._x+=10;
trace(mc["test"].slovo);
}
myDraw(mc1); // Hello world!
_root.onMouseDown = function() {
myDraw(mc1); // undefined
}
Последний раз редактировалось zeus_sk; 22.02.2008 в 19:17. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 7
|
Цитата:
а если серьезно???мне нужно туда подгрузить картинку )) просто необходимо... ) |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Очень напоминает:
Цитата:
Не в том месте вставляете. Для начала используйте MovieClipLoader для загрузки картинки. Если у Вас большие вложения, используйте ссылку: var test:MovieClip = mc1.createEmptyMovieClip("test",mc1.getNextHighestDepth());
test._id=someThing;
И как то странно, что Вы пытаетесь строковую константу присвоить динамически созданному св-ву мувика.
__________________
john |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Создайте в mc1["test"] контейнер и грузите картинку туда.
|
|
|||||
|
Регистрация: Apr 2007
Сообщений: 1,369
|
Так он же test в mc1 создал, что бы в test грузить.
__________________
john |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 7
|
люди... помогите мне просто понять, почему при вызве функции myDraw из другой функции происходит так?
причем trace(mc["test"]) выводит _level0.map.test.. пробовал MovieClipLoader... не помогло |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Смысл общий такой.
Все содержимое мувиклипа: графика, свойства и методы определенный пользователем, сразу после инициализации загрузки удаляется. Но сама загрузка происходит асинхронно выполнению кода. И именно поэтому, хотя вы и вызвали loadMovie, он не сразу удалил свойство slovo, а через некоторое время, поэтому прямой вызов myDraw дал результат, а вызов при нажатии уже нет. Есть два варианта: 1. Использовать MovieClipLoader и назначать slovo после окончания загрузки в событии onLoadInit 2. Загружать не в mc1.test, а создать клип-контейнер mc1.img и грузить туда, а slovo хранить в том же mc1.test (хотя что мешает грузить в mc1.test, а slovo хранить в mc1?) |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 7
|
iNils
а вот так? напрямую mc1["test"].slovo доступно и через 3 секунды и через 10.... а вот при вызове из другой функции undefined |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Весь код полностью приведите. А то вот такой вариант, везде дает Hello world!
var mc1:MovieClip = _root.createEmptyMovieClip ('mc1', _root.getNextHighestDepth ());
mc1.createEmptyMovieClip ("test", mc1.getNextHighestDepth ());
mc1["test"].slovo = 'Hello world!';
function myDraw (mc:MovieClip) {
mc._x += 10;
trace (mc["test"].slovo);
}
myDraw (mc1);
setTimeout (trace, 1000, mc1["test"].slovo);
setTimeout (myDraw, 2000, mc1);
setTimeout (trace, 3000, mc1["test"].slovo);
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|