|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
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 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|