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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 21.01.2011, 18:35
cyber_maniac вне форума Посмотреть профиль Отправить личное сообщение для cyber_maniac Найти все сообщения от cyber_maniac
  № 1  
Ответить с цитированием
cyber_maniac

Регистрация: Jan 2011
Сообщений: 2
По умолчанию Шаблон программирования - Команда

В книге "ActionScript 3 Design Patterns" увидел пример использования этого шаблона - вызов сообщения по таймеру.
На его основе я попробовал сделать своё - вывод сообщения по щелчку мыши. В дальнейшем хочу сделать таким способом перетаскивание объектов на экране.
Но ничего не получается, флэш при компилировании выдаёт ошибку "TestInterfaceOne.as, Line 38 1136: Incorrect number of arguments. Expected 1.".

Вот сам код:

IDrag.as
Код AS3:
package {
 
    public interface IDrag {
 
	 function execute():void;
 
    }
 
}

DragCommand.as
Код AS3:
package {
 
    class DragCommand implements IDrag {
 
	var dragReceiver:DragReceiver;
 
	public function DragCommand(rec:DragReceiver):void {
	    this.dragReceiver = rec;
	}
 
	public function execute():void {
	    dragReceiver.action();
	}
    }
}

DragReceiver.as
Код AS3:
package {
 
    import flash.events.*;
    import flash.display.*;
 
    public class DragReceiver extends Sprite {
 
        function action() {
 
	        trace("hit!");
 
        }
    }
}

DragInvoker.as
Код AS3:
package {
 
    import flash.display.*;
    import flash.events.*;
 
    class DragInvoker extends Sprite{
 
       var currentCommand:IDrag;
 
       public function setDragCommand(c:IDrag) {
 
           this.currentCommand = c;
           trgt.addEventListener(MouseEvent.CLICK, this.trigerPressed);
 
       }
 
       public function trigerPressed(event:MouseEvent):void {
 
	   currentCommand.execute();
 
       }
    }
}

TestInterfaceOne.as
Код AS3:
package {
   import flash.display.*;
   import flash.events.*;
   import flash.geom.*;
 
   public class TestInterfaceOne extends MovieClip{
 
       public function TestInterfaceOne(){
 
	  /*Для удобства восприятия я убрал код вызова мувиклипов в сцену*/
 
	  var rec:DragReceiver = new DragReceiver();
	  var concCommand:IDrag = new DragCommand(rec);
 
	  var invoker:DragInvoker = new DragInvoker();
	  invoker.setDragCommand(concCommand);
	  invoker.setTriger();
 
       }		
    }
}
В общем, хочу как следует освоить этот паттерн.

Создать новую тему   Часовой пояс GMT +4, время: 12:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
AS3 , OOP , pattern

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

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


 


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


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