![]() |
Чего тебе всё таки нужно то? Скажи конкретно, чем тебя не устраивает onMouseUp и т.п.?
|
Nucer,
у нас есть mc1 у mc1 есть onMouseUp где-то в коде ниже есть mc1.onMouseUp второй раз. При такой схеме второй onMouseUp замещает первый. Отсюда 2 выхода: 1. Прописывать в первом onMouseUp функции второго (либо аналогично во второй первого). 2. Сделать так, чтобы они не замещались. Вот я и хочу узнать реален ли второй выход? |
Ты не понял. Твою проблему проанализировали ипришли к выводу, что ты что-то непл\равильно спланировал. И хотят тебе помочь. Для этого спрашивают - чего ты таким образом хочешь добиться...
|
Вложений: 1
хорошо..... :)
В ролях: - приложение "для чего -- непонятно" - клип "mc1" - событие "onMouseUp" - разработчик "я" - пользователь-программист "нет пока такого" Санкт-Петербург. Наши дни. Разработчик создал приложение с mc1 "для чего -- непонятно". Для его работы требуется обрабатывать событие "onMouseUp". Потом разработчик дал это приложение пользователь-программисту для его супер-приложения как управляющий модуль и сказал: "пользуйся им как своим этим". Отступление: Возьмем файлы file.swf и superfile.swf. В последнем напишем fileSwf.loadMovie("file.swf") либо аналогичный метод. Если в файле file.swf содержится строчка вида _root["mc1"].onMouseUp = function (){... она будет назначать обработчик для клипа по соответстсующему адресу. (смотри аттач) Далее: А пользователь-программист захотел повесить на mc1 обработчик onMouseUp... тут и возникла проблема. Либо пользователю давать какие-то специальные функции надеясь, что он не запутается и не будет боятся написать лишнюю строчку. Либо разработчику использовать нестандартные вызовы для стандартных событий, чтобы не случилась перезагрузка (Нео, ты слышал?) обработчика. Dindin, так, думаю, ясней. :) |
если разработчику обработчика позарез надо вешать обработку на объекты принимающего мувика, при этом они с разрабочиком-програмистом (я уже запутался кто из них кто :rolleyes: ) никак не смогут договорится, то ясень день надо ' использовать нестандартные вызовы для стандартных событий'
вариант (правда тока для 6-ки): в подгружаемом мувике Mouse.addListener(Mouse); Mouse.onMouseUp=function(){this.broadcastMessage("onMyMouseUp")} _root.mc1.onMyMouseUp = function (){trace("i'm working, " + this);} Mouse.addListener(_root.mc1); |
А ведь можно, только извращённым методом. Вот, на вскидку:
Код:
function addMovieListener( MC:MovieClip , func:Function ):Void |
silin, Nucer, спасибо :)
сейчас попробую.... |
Или лучше так:
Код:
function addNewListener ( MC:MovieClip , event:String , func:Function ):Void |
Вложений: 1
Заработало! :D
Теперь осталось разобраться почему. |
когда ты по своему сценарию применишь это добро в подгружаемом мувике
(типа addNewListener(_root.mc1, "onMouseDown", alterEvent);) ссылка на _root.mc1["onMouseDown"] будет null (мс1 появится тока после загрузки) соответсвенно такой ход не пройдет а почему работает: сравни: var tmp=mc1.onMouseDown; mc1.onMouseDown=function(){ tmp(); trace("alternative event"); } |
| Часовой пояс GMT +4, время: 16:36. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.