Форум 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)
-   -   Ошибка с onRelease на загружаемом мувике (http://www.flasher.ru/forum/showthread.php?t=134298)

_rev 25.12.2009 19:29

Ошибка с onRelease на загружаемом мувике
 
Есть вот такой код:

Код AS1/AS2:

var n:Number = 1;
var current_x:Number = 0;
var current_y:Number = 0;
for (var i:Number = 1; i < 150; i++) {
        n = randRange(1, 12);
        this.createEmptyMovieClip("mcImage"+i, this.getNextHighestDepth());
        var my_Loader:MovieClipLoader = new MovieClipLoader()
        my_Loader.loadClip("sq_swf/"+n+".swf", "mcImage"+i);
        _root["mcImage"+i]._x=current_x;
        _root["mcImage"+i]._y=current_y;
        _root["mcImage"+i].onRelease = function() {
                  trace("YEAH!");
        };

Мувики загружаются случайно, при этом на каждого должно вешатся событие, но почему-то не работает. WHY? :confused:

Zik. 25.12.2009 19:39

Потому что вы вышаете онРелиз не дождавшись, когда клип загружится

mooncar 25.12.2009 19:46

1. В цикле оставьте только создание пустого мувика и loadClip
2. Используйте один экземпляр MCL. У вас их 150 штук - безумие.
3. Для решения вашей проблемы используйте один общий метод onLoadInit.
Внутри этого метода и координаты меняйте и обработчики назначайте.

Добавлено через 14 минут
Код AS1/AS2:

var n:Number = 1;
var current_x:Number = 0;
var current_y:Number = 0;
 
this.onLoadInit = function  (target_mc:MovieClip) {
        target_mc._x = current_x;
        target_mc._y = current_y;
        target_mc.onRelease = mcOnRelease;       
};
 
function mcOnRelease () {
          trace('Я  - контейнер с загруженным мувиком, я зовусь ' + this);
}
 
var my_Loader:MovieClipLoader = new MovieClipLoader();
my_Loader.addListener(this);
 
for (var i:Number = 1; i < 150; i++) {
        n = randRange(1, 12);
        this.createEmptyMovieClip('mcImage' + i, this.getNextHighestDepth());
        my_Loader.loadClip('sq_swf/' + n + '.swf', 'mcImage' + i);
}

В данном случае в роли слушателя выступает объект с текущим таймлайном, например, _root).
Только поскольку координаты контейнерам у вас присваиваются одинаковые, они у вас лепиться один на другой будут.


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

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