Hi,
Do work with this problem, i extend the Menu class to control the y
position after the show function...
You can also direcly after you show function move the y position like
this:
var popMenu:Menu= Menu.createMenu(zoomBox, myMenuData,
false);
popMenu.labelField="@label"
popMenu.addEventListener("itemClick", menuViewHandler);
// Calculate position of Menu in Application's
coordinates.
point1.x=event.currentTarget.x;
point1.y=event.currentTarget.y;
point1=zoomBox.localToGlobal(point1);
popMenu.show(point1.x + 15, point1.y+24);
var shift:Number = popMenu.y + popMenu.height -
screen.height;
if (shift > 0){
popMenu.y = Math.max(popMenu.y - shift-24, 0);
}
...
package com.timeline.view
{
import mx.controls.Menu;
import flash.display.DisplayObjectContainer;
import mx.core.Application;
public class MyMenu extends Menu
{
public var menuBarHeight:Number=25;
override public function show(xShow:Object = null, yShow:Object
= null):void
{
super.show(xShow,yShow+menuBarHeight)
var shift:Number = y + height - screen.height;
if (shift > 0){
y = Math.max(y - shift-menuBarHeight, 0);
}
}
public static function
createMenu(parent:DisplayObjectContainer, mdp:Object,
showRoot:Boolean=true):MyMenu
{
var menu:MyMenu = new MyMenu();
menu.tabEnabled = false;
menu.owner =
DisplayObjectContainer(Application.application);
menu.showRoot = showRoot;
popUpMenu(menu, parent, mdp);
return menu;
}
}
}
Or as i said with a custom class:
--- In [email protected], "kkinaru" <[EMAIL PROTECTED]> wrote:
>
> Thanks a lot, Manish.
>
> >
> > If I'm not wrong, menu objects are directly parented by the system
> > manager. You can verify this by trace()'ing menu.parent. You want to
> > use that parent object with localToGlobal().
>
> In createMenu, first parameter is assigned to menu.parent property, I
> used null, so, ok, my menu.parent is System Manager for all (menu and
> submenus). But I've problems with submenus, because
> menu.parent.localToGlobal(event.menu.x, event.menu.y) returns (0, 0)
> for every submenus. (system_manager === menu.parent)
>
> I'm listening the onShow event, is this correct?
>
> It seems that the system buid the menus in the position 0,0 and then
> it moves them to their places.
> I'm loading data from an external XML and I'm saving main menu in a
> class variable and move it manually to its place, and it is the only
> menu that doesn't return (0,0) in localToGlobal...
>
> I'm a bit confused... any other ideas?
>
> Thankou all very much for these minutes.
>