Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Затык с LoadMovie и адресациями... (http://www.flasher.ru/forum/showthread.php?t=84481)

WILD CAT 31.08.2006 22:32

Затык с LoadMovie и адресациями...
 
Ребят, нужна помощь. Ошибка, как всегда, лежит на поверхности, но я ее в упор не вижу.

Есть один *.swf файл (назовем ф1_1). В него нормально загружается другой свф (ф1_2 - он загружается с помощью LoadMovie непосредственно в мувиклип, который расположен на сцене ф1_1). И есть еще один файл ф1_3 который таким же гаком загружается в мувиклип, расположенный на сцене ф1_2. В ф1_2 есть мувиклип, который дублируется и именуется (дубликат) dplayer. Ему я вот этим кодом присваиваю значение targ="playa" и потом загружаю в него файл (назовем ф2).
Код:

duplicateMovieClip(dupl_box, "dplayer", this.getNextHighestDepth());
        dplayer.targ= "playa";
        loadMovie("data/models/players/1/code.swf", dplayer);

Ф2 имеет на первом кадре всего одну строку
Код:

_parent.map[targ].stop();
Теоретически эта строка должна останавливать анимацию мувиклипа, который находится на сцене ф1_3 и имя ему - playa.
Дело как раз в том, что не останавливает.
Если вместо [targ] поставить .playa то все работает. Значение targ в трейсе ф2 пишется undefined. Но координаты ф2 меняются спокойно.
Помогите плиз!

WILD CAT 31.08.2006 23:26

Или stop не работает с динамической адресацией?

WILD CAT 31.08.2006 23:30

Хотя нет...
Код:

targ="playa";
_parent.map[targ].stop();

Так то работает...

wvxvw 01.09.2006 00:12

Из всего написанного не понятно почему присвоив dplayer.targ какое-то значение ты ждешь, что то же значение будет и у targ в любом месте откуда ни обратись...

WILD CAT 01.09.2006 00:17

Я присваиваю значение targ только что отдублированному мувиклипу dplayer. Потом я в dplayer загружаю *.swf файл с кодом на первом кадре, который по идее должен использовать это значение нормально, вот и все... если я правильно понял вашу мысль.

wvxvw 01.09.2006 02:31

Код:

var _l1:MovieClip = _root.attachMovie("holder_01", "h_mc", 0);
_l1.b_txt.text = "stopped";
_l1._targ = "h_mc";
_l1.stop();
var _l2:MovieClip = _l1.duplicateMovieClip("h1_mc", 5, {_targ:"h1_mc", _x:200});
_l2.b_txt.text = "unstopable";
var _l3:MovieClip = _root.attachMovie("bt", "b_mc", 10, {_x:150, _y:200});
_l3.onRelease = function(){
        var _l1:MovieClip = _root._l2.createEmptyMovieClip("tgt", 15);
        _l1.loadMovie("test.swf");
        _l1._x = _l1._parent._width;
        _l1._y = _l1._parent._height;
        _l1._parent.onRelease = function(){
                trace(this["_targ"]+" "+this._parent._l1["_targ"]);
                this._parent[this["_targ"]].stop();
                this._parent[this["_targ"]].b_txt.text = "stopped";
                this._parent[this._parent._l1["_targ"]].play();
                this._parent[this._parent._l1["_targ"]].b_txt.text = "unstopable";
        }
}

Всяко извращался, - ничего с переменными не происходит, где были заданы, там и остались... %)

WILD CAT 01.09.2006 03:14

Да честно говоря я уже много раз использовал сий финт, но сейчас просто нечто. Вообще даже идей нету почему оно так. Ну просто нету.

WILD CAT 01.09.2006 20:36

Самое глюкное, что вот так не работает (принимает):
Код:

dplayer.targ= "playa";
А вот так работает
Код:

dplayer._x= 50;

wvxvw 03.09.2006 00:54

да нет, ты просто присваиваешь в одном месте, а спрашиваешь в другом, вот упрощенный пример твоей ошибки:
Код:

my_mc._myProp = "My Property";
trace(my_mc[_myProp]); //undefined;

Потому что значение переменной внутри квадратных скобок не было определено в том месте откуда делается вызов.
Если сделаешь так:
Код:

my_mc._myProp = "My Property";
trace(my_mc["_myProp"]); //My Property;

То значение прочитается, т.как понятно, что ты передаешь значение, а не пытаешся подставить значение пустой (несуществующей переменной).

WILD CAT 03.09.2006 02:53

Я не думаю, что ошибка в этом, ибо я проверил уже всеми известными мне способами. И пришел к якобывыводу, что дело в некой фиче duplicate. Пришлось данный лаг обходить. В подтверждение скажу, что если dplayer.targ="playa" забить в enterframe то все прекрасно работает. Другой вопрос, что enterframe мне в общем то не нужен, ну да ладно. Каким гаком я обошел сказать не могу, ибо тогда рубанули свет и ничего не сохранилось...
100% адресация и синтаксис (типа как в примере выше) у меня правильные, ведь с энтерфрамом работает все толково и как надо... убицца в первый раз встречаюсь с таким, учитывая, что я ужо неоднократно использовал это св-во.


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

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