Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.10.2006, 15:45
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 11  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от MerlinTwi
Интересно, а компилятор этот this заносит в код?
AS2 — да (можно проверить декомпилятором), но не везде, только лишь в подобных случаях, что я привёл. Судя по всему, AS3 тоже. Иначе всегда был бы NaN.

Старый 24.10.2006, 16:01
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 12  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: 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);
		}
. . .
Это полный аналог:
Код:
		private function initApp():void {
			doubleClickEnabled = true;
			pic.addEventListener(MouseEvent.MOUSE_DOWN, this.startDragHandler);
			pic.addEventListener(MouseEvent.MOUSE_UP, this.stopDragHandler);
			pic.addEventListener(MouseEvent.DOUBLE_CLICK, this.doubleClickHandler);
		}
. . .
Только длинее и сложнее для исполнения (лишняя команда в байткоде). Получается так.
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 24.10.2006, 16:03
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 13  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от MerlinTwi
Только длинее и сложнее для исполнения (лишняя команда в байткоде). Получается так.
Нет, в данном случае this не добавляется.

Старый 24.10.2006, 16:20
MerlinTwi вне форума Посмотреть профиль Отправить личное сообщение для MerlinTwi Посетить домашнюю страницу MerlinTwi Найти все сообщения от MerlinTwi
  № 14  
Ответить с цитированием
MerlinTwi
 
Аватар для MerlinTwi

Регистрация: Oct 2003
Адрес: Москва
Сообщений: 328
Теоретически, скорее всего так, практически пока проверить сложно, из-за отсутствия декомпиляторов АС3 (а в RAW коде я не силен).

Т.е. вставка this. там где он не нужен обусловлен:
1. Проще набирать названия методов и свойств во Flex
2. Уберечь себя от ошибок если в коде встретятся локальная переменная и свойство/метод класса с одинаковым названием
3. При чтении кода видно четкое различие между локальными переменными и свойствами/методами класса

ok, принято, спасибо за комментарии
__________________
Создатель: Бойцовский клуб | TimeZero | Sky2Fly
Я возьму сам.

Старый 24.10.2006, 16:22
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 15  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
MerlinTwi, да, именно это имелось ввиду. Спасибо, что собрал из нашего бреда нормальный вывод
А про добавление this — так ведёт себя компилятор AS2, как там в AS3 — не знаю, скорее всего также.

Старый 12.06.2009, 18:40
websterkz вне форума Посмотреть профиль Отправить личное сообщение для websterkz Найти все сообщения от websterkz
  № 16  
Ответить с цитированием
websterkz

Регистрация: Jun 2009
Сообщений: 6
По умолчанию DOUBLE_CLICK не работает? ни:д хелп

всем привет. у меня такая проблемка не работает DOUBLE_CLICK. почитал посты что выше, попробывал не вышло. кто может подсказать(указать) где я ошибся
Вложения
Тип файла: rar test.rar (237.9 Кб, 26 просмотров)

Старый 12.06.2009, 21:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 17  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
А вы документацию по DOUBLE_CLICK открывали?

Старый 15.06.2009, 08:36
websterkz вне форума Посмотреть профиль Отправить личное сообщение для websterkz Найти все сообщения от websterkz
  № 18  
Ответить с цитированием
websterkz

Регистрация: Jun 2009
Сообщений: 6
Цитата:
Сообщение от __etc Посмотреть сообщение
А вы документацию по DOUBLE_CLICK открывали?
да открывал и читал, но все же не получается, или до меня просто что-то не доходит

Старый 15.06.2009, 10:25
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 19  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Плохо открывали, значит.

Старый 15.06.2009, 13:35
websterkz вне форума Посмотреть профиль Отправить личное сообщение для websterkz Найти все сообщения от websterkz
  № 20  
Ответить с цитированием
websterkz

Регистрация: Jun 2009
Сообщений: 6
Цитата:
Сообщение от __etc Посмотреть сообщение
Плохо открывали, значит.
ну и на этом спасибо...
а кто нибудь может помочь? я же просто указать на ошибку в коде, неужели это так трудно?
Код AS3:
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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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