![]() |
Двойной щелчок и правая кнопка.
Подскажите, как программируется двойной щелчок левой кн. мыши и как щелчок правой?
|
здесь есть это под N10 и N16.
А, впрочем, поиск рулит. |
кстати вот подправленный исходник для даблклика
в АС2 почему-о сменили названия в шестёрке было: ASBroadcaster в семёрке стало: AsBroadcaster разница всего лишь в одной заглавной букве - а ничего под семёрку не будет работать иначе. Код:
// ________________________________________________ |
Вложений: 1
эх прям горе с вами)))
вот вам дабл клик при помощи гет таймера , пашет хоть в семерке хоть в шестерке да везде блин ))) |
Цитата:
|
Цитата:
но воспользоваться тем что у тебя намного сложнее чем просто скопировать код и создать события. по поводу того что нужно править объявление исходного класса - так это... мне просто лень переписать это на другой объект какой-нить :)) кому надо, и кто поймёт что тут за код написан - тот поймёт как это легко и просто исправить. разве нет? :) |
Цитата:
хи ))) хи )))) ну да ) да ))) поймут )вздохнут ) и начнут юзать поиск за готовым результатом))))))))))))) ощущая) всю прелесть этого поиско-метода)))) и как это легко и просто )))))))))))))))))))))))))))))) чем см. выше)))) ну разве нет? :) P.S. хи) хи) хи) хи) хи) хи) хи) хи) хи))))) |
Цитата:
|
вы занудствуете, товарисчи.
исправил. евриуан из хэппи нау? :) |
Цитата:
за ето нуна выпить )))) открывашка есть???)))) |
На-а-аливай!
............................................................................................ Э-э-й ухне-е-ем, еще ра-а-аз, э-э-эй ухнем! :D |
а как для правой ?
Цитата:
Код:
_root.createEmptyMovieClip("ass", 1); |
Цитата:
В шестерке тоже было AsBroadcaster, просто было пофиг ;) |
ээ... правда?
а я вроде видел в инициализационном коде шестёрки АСБроадкастер... но вобщем ты прав - в шестёрке не актуально канеш :) |
меня опять игнорируют :(
|
Re: а как для правой ?
Цитата:
mc.menu = new ContextMenu(function(){trace("Right Click");}); |
:(
:( мне это для диреткора МХ так что нужно на 6-ке...
|
2 fiot
Цитата:
Код:
**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 12: There is no property with the name 'rightState'. |
Цитата:
поэтому попытка записать в класс Mouse то, чего там нет, приведет к ошибке. если только не залезть ручками в класс Mouse и не добавить в заголовок его объявления спецификатор dynamic. собсно свой вариант даблклика я именно поэтому и переделал. |
Re: :(
Цитата:
|
ну так напиши на директоре :)) в чем печаль-то вообще тогда? :)
|
печать в том, что нужно по событию из флеша что-то делать с директором... и это событие на правый клик мыши... я спросил... может можно что-то сделать с кодом который я постил выше... а то ломает писать постоянно - хиттест.
|
Вложений: 1
Ну сделай вот так :)
|
По идее в Дире можно посылать по событию rightMouseDown запрос (getVariable) геттер-сеттеру во флеше и тут же возвращать значение мувика на который кликнули или null, ну и в зависимости от имени мува делать что-то ...
|
А вообще я балда :), нафиг нам еще что-то писать во флеше если можно прямо в дире? ;)
Код:
global _root |
Цитата:
|
вот класс на AS1. очень легко переделать в AS2.
Код:
this.setDoubleClickClass = function() { |
Нидл будь другом не пори чуши.
|
Цитата:
- я не юзаю свои старые, а так-же чужие, а тем более чужие старые исходники. всегда интересно написать самому. - количество кода не показатель его качества. это я не к тому, что у d12 (или даже d24) он лучше или хуже, просто это не аргумент. - смею утверждать, что d28 далеко не единственный кто решил проблему на корню. но решений много и привычки и пристрастия у всех разные. вот |
ОК ...
P.S. Делай что хочешь революционер... небуду спорить ... из уважения к форуму . P.S.2. Nirth ты ведь нас учил верить в новые технологии , для данного случая на AS3 есть "MouseEvent.DOUBLE_CLICK,onDouble" за этим завтрашний день , а смотреть как люди делают 1001й анологичный пример и еще удивляются где аплодисменты , тогда я вообще непонимаю зачем делать "Блейзер". P.S.3. Иван незнаю как вас по батюшке , но если бы вы предложили что то новенькое , я бы вам аплодировал стоя ... P.S.4. D12 Пишется с большой , это значит имя - Денис . P.S.5. И D12 не перво-открыватель , он просто дал пользователям пример , когда он был нужен , моряк ты слишком долго плавал ... |
AS3 не существует. Это миф.
99% занимающихся флэшом не знают что такое AS2. из оставшегося процента половина до AS3 еще не добралась. к тому же люди, которые знают AS2 и выше не задают вопросы "как отловить даблклик". Данный топик помещен в раздел FAQ и предназначен для тех, у кого этот вопрос вызывает сложности. Иванович по батюшке... Новое... хм... я очень стараюсь, поверь. Но новое у меня получается в среднем раз в год. Впрочем, и это считаю неплохим показателем. D12... а... Тебе бы статейку на эту тему написать, типа "онтология ников". - Откуда ты знаешь, что я моряк? И почему не знаешь, что моряки не плавают, а ходят? :) |
2Ив, ну я бы не сказал что 99% не знают, может ты о России\СНГ говоришь =) ?
Код:
к тому же люди, которые знают AS2 и выше не задают вопросы "как отловить даблклик".2 Д12 Тут мне кажется не откат назад, а откат просто демонстрация своего стиля, у меня например отрабатывание дабл клика вложенно в два базовых компонента(один из них для "легких" флэшек, реализует аналог IEventDispatcher из AS3, другой там где юзаются компоненты, наследует UIComponent ) тебе просто показали как делают это по другому. Насчет кол-ва кода, я бы к нему не придерался, иногда я пишу Код:
createEmptyMovieClip("mc",1).createTextField("txt",1,0,0,100,20).text = "hello"; |
[...]99%[...] - отчего же... везде так. и Россия не исключение из правил.
просто flash, в отличие, скажем, от C# по определению юзает много людей не имеющих программерского образования да и желания плотно влезать в программинг. Им достаточно знать некоторые основы типа gotoAndStop и onMouseUp... и это нормально. Выделять в этом смысле Россию/СНГ я бы не стал. |
Цитата:
|
Код:
_root.z = 0;P.S.2. А вот Король другое дело , давно руки чешутся по короне врезать так чтоб все рубины осыпались ... |
- наконец-то мы вступили на твердую почву скрипта.
в общем, вместо твоего кода достаточно было воткнуть мой класс и написать вот это: Код:
org.dembicki.DoubleClick.addListener(_root.mc);а теперь предлагаю сравнить результаты. прошу принять это не за пузомерку, а за дружественное обсуждение различных подходов. итак, 1. - твой код для работы использует две долбилки: onEnterFrame и setInterval. это откровенно плохо. т.е. каждый кадр и каждые 10 миллисекунд нагружается комп расчетами вне зависимости от того нужны они или нет. причем одну их них никак не остановить, если не вносить в твой код изменений. - в моем коде нет долбилок. ни одной. 2. - твой код использует рутовые переменные, что совсем плохо, давай заглянем в листинг переменных после выполнения твоего кода: Код HTML:
Variable _level0.DoubleClic = [function 'DoubleClic']- что в этом плохого? по-порядку: Читая код, обнаруживаю DoubleClic и с удивлением вижу, что это не класс, а рутовая функция. Почему с удивлением? Если вы задаете этот вопрос, то вам срочно нужно купить книжку по программингу. Есть такая штука: правила именования. Имена классов задаются с большой буквы. Имена методов с маленькой. Если есть конструкции, в которых можно поступать двояко, например, именовать переменные вот так: my_variable или так: myVariable, то именование классов с большой буквы, а методов с маленькой - просто аксиома, давно не подлежащая никакой ревизии и обсуждению. помимо прочего наличие данного метода в руте нарущает принципы сокрытия реализации, об этом в следующем пункте. и твой DoubleClic я бы всё-таки переименовал в doubleClick. - переменные z, zz, zzz. Имена переменных ничего не скажут человеку, который заглянет в листинг переменных. Зачем они нужны? Где и как используются? Что они делают в руте? Откуда они там взялись? Есть такое понятие - универсальность и реюзабельность кода. Это когда ты пишешь код один раз и затем юзаешь его в различных проектах. Это правильно, писать реюзабельный код. Ты экономишь собственное время, а следовательно можешь сделать (заработать) больше. Но, чтобы писать такой код, нужно знать и понимать, какие требования предъявляются к такому коду. Ести в коде ты используешь рутовые переменные, то другой код, также использующий рутовые переменные, снесет твой проект напрочь. Отсюда принцип: код должен быть самодостаточным, сам в себе. Наружу должно торчать только то, что ты хочешь, то, что действительно необходимо. Всё остальное должно быть скрыто и недоступно для случайного изменения. - _root.onEnterFrame. я уже лет пять не использовал такую конструкцию. Она противоречит всему, чему только можно. И предыдущему пункту - ее может снести любой и требованиям производительности и... ну это трудно объяснить... короче если я вижу такую конструкцию в проекте кандидата на вакансию, то у него нет шансов. - _root.mc.onMouseDown может быть самая правильная конструкция в твоем коде, но она тоже неправильна. Ты навешиваешь на мувик обработку стандартного события, соответственно, при этом, ты занимаешь ее и нет никакой возможности иначе обработать это событие в дальнейшем, если это понадобится. Это по листингу кратенько прошлись. Самое же неприятное кроется в том, чего в листинге нет: задан setInterval, который долбит и долбит и, твой код, будучи однажды запущеным не остановить ничем и никак. давай теперь посмотрим, что живет у меня: Код HTML:
Global Variables:Код:
org.dembicki.DoubleClick._time = "hello world";хехе... кстати, он не пропустит вообще ничего, потому, что я вместо addProperty написал setProperty. поправлю ща... Да, так вот... Несмотря на то, что я намеренно не использовал типизацию данных, это вовсе не значит, что значения и типы данных не проверяются. Время даблклика можно задать только через setter и нет возможности случайно переопределить переменную interval_time. Я говорил, что этот класс легко переделать в AS2, давай глянем: Код:
class org.dembicki.DoubleClick {Это, собственно, был разбор отличий представленных вариантов. Если уж и приходится писать код, даже "чисто для себя" (правда мне этот подход совсем непонятен - за что себя так люди ненавидят, что пишут для себя плохой код, а для других хороший...), так даже чисто для себя стоит писать хорошо. Это выгодно. А уж если возникает необходимость код показать кому-то, то тем более стоит обращать внимание как на правила хорошего тона при написании кода, так и на универсальность и объективность. PS: Возможно, многое из того, что я сейчас пишу тебе не так понятно как мне или не кажется таким важным. Это нормально. Но. Маленькая история: Когда я только начинал программить, я, первый в мире, написал функцию skew (неделю бился над ней) и тут же на радостях запостил ее во flashcoders. Роберт Пеннер её слегка переписал и запостил в эху, в ответ мне, с комментом, что вот в таком виде эта функция будет более ООП-истой. Я тогда даже не догнал о чем речь. Догнал значительно позже, когда начал встречать в сети исходники и эффеекты построенные на моей математике, в которых люди горячо благодарили Роберта за функцию skew. Ну и что мне было делать? Бегать по сети и орать, что на самом деле автор я? Бред. А вот если бы я сразу написал правильно, в соответствии с принципами OOP, то эта волна пошла бы под моим именем. И я бы был известен как Роберт, работал бы в Майкрософте, на работу ходил бы с охраной, потому, что поклонницы не давали бы проходу, ездил бы на феррари... во размечтался.. аа.. :yahoo: |
Перед классом skew у тебя был класс tween =) ты еще на форуме его показывал )
Iv я еще и раньше знал что до твоего уровня мне еще нужно время =) "Долбилка" и у тебя есть , иначе ты бы несмог управлять временным участком за интервал которого необходимо кликнуть 2 раза =) P.S. а вообще я незнаю кого слушать , одни говорят _root плохо другие стараются избегать _global , во всяком случае ясно одно необходимо знание что-бы понимать что когда и где лутше =) |
_root и _global плохо.
все что можно хранить в global это классы. все что должно быть в _root Это мувиклипы и текстовые поля. |
если это плохо то остается только this и _parent , эх...тяжело жить дальше =)
постараюсь запомнить : классы в _global ах... все равно я их делать неумею =) мувики и текстовые поля в _root Ааа остальное то куда ? |
_parent я бы тоже не назвал хорошей OOП практикой. остается только this =) но поверь мне этого совсем не мало.
|
| Часовой пояс GMT +4, время: 11:49. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.