Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

MyPanel MouseEvent
Список форумов
 ->  Java + Flex


 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
masyan : 920
Supreme moderator

СообщениеНоя 25, 2009 4:30 
Ответить с цитатой
задача следующая. Есть контейнер Canvas. На нем кнопка. По нажатию которой создается Panel (ее надо переопределить). Эту панель можно перетаскивать. Для этого на Canvas вешается два слушателя и один на панель. Вот так вот все работает
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:myTable="table.*" layout="absolute">
   <mx:Canvas id="canvas" backgroundColor="0xEEEEEE" width="732" height="382" dragEnter="dragEnterHandler(event);"
   dragDrop="dropHandler(event);">
   <mx:Button x="35" y="323" label="Button" click="addT();"/>
</mx:Canvas>   


<mx:Script>
  <![CDATA[
           import mx.core.DragSource;
         import mx.core.IUIComponent;
         import mx.events.DragEvent;
         import mx.managers.DragManager;
         import table.TablePanel;

           private static const FORMAT:String = "panel";
         private var xoffset:Number;
         private var yoffset:Number;
      
         public function addT():void
          {
           var panN:TablePanel = new TablePanel();
           panN.width = 200;
           panN.height = 200;
           panN.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
           canvas.addChild(panN);
          }   
      
         private function mouseDownHandler(evt:MouseEvent)
            {
             var initiator:TablePanel = evt.currentTarget as TablePanel;
              var dragSource = new DragSource();
              xoffset = evt.localX;
              yoffset = evt.localY;
              dragSource.addData(initiator, FORMAT);
              DragManager.doDrag(initiator,dragSource,evt);
             }
         
         private function dragEnterHandler(evt:DragEvent):void
             {
              if(evt.dragSource.hasFormat(FORMAT))
               {
                DragManager.acceptDragDrop(Canvas(evt.currentTarget));
               }
            }
         
         private function dropHandler(evt:DragEvent):void
            {
             var panelT:TablePanel = TablePanel(evt.dragInitiator);
             panelT.x = evt.localX-xoffset;
             panelT.y = evt.localY-yoffset;
            }
        ]]></mx:Script>
       
</mx:Application>


TablePanel.as
Код:

package table
{
   import mx.containers.Panel;
   public class TablePanel extends Panel
   {
   
      
      public function TablePanel()
         {
           super();
          }
      

}}


но хотелось бы чтобы этот слушатель для панели вешался при создании ее, тоесть поместить этот метод в TablePanel.as. Пытался это сделать и перенес метод MouseDownHandler, но выдатеся ошибка
Цитата:

1046: Тип не найден или не является константой времени компиляции: MouseEvent. DBConstructor/src/table TablePanel.as


указывает на закоголовк метода MouseDownHandler. Как вот это дело туда перенести?
К началу Посмотреть профиль Отправить личное сообщение
sgdread : 2184
JT Библиотекарь
Откуда: USA

СообщениеНоя 25, 2009 11:06 
Ответить с цитатой
Добавьте MouseEvent в импорты.
_________________
К началу Посмотреть профиль Отправить личное сообщение
masyan : 920
Supreme moderator

СообщениеНоя 25, 2009 17:50 
Ответить с цитатой
Спасибо. понятно, получилось, видать к MXML автоматом это подрубается, а к .as надо подключать
Код:

import flash.events.MouseEvent;
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 1 из 1
Список форумов
 -> Java + Flex


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


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru