Форум 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)
-   -   конфликт обработчиков в клипах (http://www.flasher.ru/forum/showthread.php?t=68668)

EWG 02.09.2005 12:59

конфликт обработчиков в клипах
 
день добрый.

описываю ситуацию... создется пустой клип (sc1), в него пихается еще два (sc2 и sc3), один, естественно над другим... в тот что ниже (sc2) - пихается изображение, в тот что выше (sc3) - расставляются лэйблы через создание, опять-таки маленьких клипов(sc3_1,2,3,...), содержащих нарисованную точку и текстовое поле... почему именно так - чтобы изначальный слой потом можно было "таскать" и, соответственно, таскалось и изображение и лэйблы... все это - сделано и работает... но вот суть в том что обработчик "таскания" повешен на sc2, что логично... а в sc3 где создаются лэйблы, мне надо сделать чтобы надписи тоже были интерактивными, чтобы с них getURL-ом вызывлись функции перенаправляющие... так вот этого добиться не могу, не срабатывают на этих sc3_x никакие события...

подскажите, куда копнуть, ежели не туманно объяснил...

EWG 02.09.2005 13:53

поэкспериментировал, поставил html-ссылку в текст, не пашет... убрал текст-поле из sc3_x в _root - заработало... то есть ссылки не будут работать если текстовое поле не в руте ?...

Nео 02.09.2005 13:57

все должно работать, исходник выложи...

EWG 02.09.2005 14:19

как-то так... для цитирования убирал лишнее, может убрал чего важное... посмотрите...

Код:

initialize('primary');


function initialize(step){
        switch(step){
                case 'primary':
                        _root.createEmptyMovieClip("Map2",49);
                        map = _root.Map2;
                        map.createEmptyMovieClip("surface",51);
                        map.surface.createEmptyMovieClip("container",53);
                        map.createEmptyMovieClip("titles",52);
       
                        loadMap(map.surface.container, '1.jpg');
                break;
               
                case 'after_map_load':
                        map.onPress = function(){
                                setPoint(id, title, Cursor._x, Cursor._y);                // _root.Cursor - собственный курсор
                        }
                break;
        }
}


function loadMap(mc, swf){
        var my_mcl = new MovieClipLoader();
        myListener = new Object();
        myListener.onLoadComplete = function (target_mc){
                mainInterval = setInterval(initialize, 1000, 'after_map_load');
        }
        my_mcl.addListener(myListener);
        my_mcl.loadClip(swf, mc);
}

points_id = 0;
point_size = 10;

function setPoint(id, title, crsx, crsy){

        map.titles.createEmptyMovieClip("title_"+id,100+points_id);
        obj = eval('_root.Map2.titles.title_'+id);
        points_id = points_id+2;
        obj._x = crsx;
        obj._y = crsy;
        crsx = 0;
        crsy = 0;

        obj.createTextField("str",200+points_id,0,0,300,20);
        with(obj.str) {

                listTxtStyle = new TextFormat();
                with (listTxtStyle) {
                        font = "Verdana";
                        size = 13;
                        color = 0x000000;
                }

                selectable= false;
                _highquality = 1;
                html = true;
                hid = id;
                htmlText = "<a href='javascript:gotoHotel("+id+")'>"+title+"</a>";
               
                setTextFormat(listTxtStyle);
        }

        obj.onPress = function(){
                trace(this);
        }
        obj.onRelease = obj.onReleaseOutside = function(){
        }
       
}


stop();


Nео 02.09.2005 15:04

и че,
obj.onPress = function(){
trace(this);
}
не работает?

EWG 02.09.2005 15:06

нифига...
может потому что на surface поставлен свой онпресс и в нем, собственно вызывается setPoint()?

Nео 02.09.2005 15:10

ну после того, как запустили setPoint() обработчики должны работать, мы ж их не удаляли... а _root.Map2.titles.title_'+id реально существует, ты проверял?

EWG 02.09.2005 15:14

да, потому что если перенести текст в рут, то джаваскриптовская функция вызывается с правильным id...

Nео 02.09.2005 15:22

не пойму, где ты id берешь!
у мення trace(obj);
выводит: _level0.Map2.titles.title_undefined

EWG 02.09.2005 15:40

id я передаю во флэш из html...
поставь в тесте просто в лоб и id и title чемунть равный, в начале...


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

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