|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
|
|
|||||
Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
|
Тогда из твоего примера:
private function initApp():void { this.doubleClickEnabled = true; this.pic.addEventListener(MouseEvent.MOUSE_DOWN, this.startDragHandler); this.pic.addEventListener(MouseEvent.MOUSE_UP, this.stopDragHandler); this.pic.addEventListener(MouseEvent.DOUBLE_CLICK, this.doubleClickHandler); } . . . Только длинее и сложнее для исполнения (лишняя команда в байткоде). Получается так. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
|
|
|||||
Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
|
Теоретически, скорее всего так, практически пока проверить сложно, из-за отсутствия декомпиляторов АС3 (а в RAW коде я не силен).
Т.е. вставка this. там где он не нужен обусловлен: 1. Проще набирать названия методов и свойств во Flex 2. Уберечь себя от ошибок если в коде встретятся локальная переменная и свойство/метод класса с одинаковым названием 3. При чтении кода видно четкое различие между локальными переменными и свойствами/методами класса ok, принято, спасибо за комментарии |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
MerlinTwi, да, именно это имелось ввиду. Спасибо, что собрал из нашего бреда нормальный вывод
А про добавление this — так ведёт себя компилятор AS2, как там в AS3 — не знаю, скорее всего также. |
|
|||||
Регистрация: Jun 2009
Сообщений: 6
|
DOUBLE_CLICK не работает? ни:д хелп
всем привет. у меня такая проблемка не работает DOUBLE_CLICK. почитал посты что выше, попробывал не вышло. кто может подсказать(указать) где я ошибся
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
А вы документацию по DOUBLE_CLICK открывали?
|
|
|||||
Регистрация: Jun 2009
Сообщений: 6
|
да открывал и читал, но все же не получается, или до меня просто что-то не доходит
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Плохо открывали, значит.
|
|
|||||
Регистрация: Jun 2009
Сообщений: 6
|
ну и на этом спасибо...
а кто нибудь может помочь? я же просто указать на ошибку в коде, неужели это так трудно? package { import flash.display.*; import flash.events.*; import flash.geom.ColorTransform; import fl.transitions.*; import fl.transitions.easing.*; public class CreateObj extends Sprite { private var target = null; private static var XminSize:int = 300; private static var YminSize:int = 350; private static var useMinStageSize:Boolean = false; public function CreateObj ():void { // Create obl var obl1:MovieClip = new obl_mc1(); addChild(obl1); obl1.x=86.2; obl1.y=98.2; var obl2:MovieClip = new obl_mc2(); addChild(obl2); obl2.x=94.5; obl2.y=183.6; var obl3:MovieClip = new obl_mc3(); addChild(obl3); obl3.x=110.4; obl3.y=262.6; var obl4:MovieClip = new obl_mc4(); addChild(obl4); obl4.x=218.4; obl4.y=161; this.doubleClickEnabled = true; this.addEventListener(MouseEvent.DOUBLE_CLICK, this.DoubleClick); this.addEventListener(MouseEvent.CLICK, this.Click); } private function Click(e:MouseEvent):void{ var newColorTransform:ColorTransform = e.target.transform.colorTransform; newColorTransform.color = 0xff6532; e.target.transform.colorTransform = newColorTransform; if (target) { target.transform.colorTransform = new ColorTransform(); } target = e.target; } private function DoubleClick(e:MouseEvent):void{ trace("DoubleClick"); var rx:Number = this.width / e.target.width; var ry:Number = this.height / e.target.height; var r:Number = Math.min(rx, ry); trace(this); trace(this.x + " " + this.y); this.scaleX *= r; this.scaleY *= r; this.x -= (e.target.x - e.target.width / 2) * r; this.y -= (e.target.y - e.target.height / 2) * r; trace(stage.stageWidth + " " + stage.stageHeight); if (useMinStageSize) { if (stage.stageWidth < XminSize || stage.stageHeight < YminSize) { return; } } } } } Последний раз редактировалось websterkz; 15.06.2009 в 13:41. |
Часовой пояс GMT +4, время: 20:00. |
|
« Предыдущая тема | Следующая тема » |
|
|