Actionscript 3 :: Flex: Remember The Tab Index And Name On The PopUpButton Of The SuperTabNavigator
Dec 20, 2011
As we all know SuperTabNavigator is an open source component from the flexLib which gives an advantage over Flex Tab Navigator that we can close the tabs from the close button on each tab with the use of SuperTabNavigator. Additinaly there is a button to the right of the tab navigator which shows a list of all tabs which are open at one time and we can select any tab from that button which is a PopupButton.
Now what happens is when we close a tab, it disappears from the PopupButton drop down list as well. But in my case I want the drop down to remember the closed tabs even so that when I click on that closed tab it opens again in the tab navigator. I am relatively new with Flex and ActionScipt
So I have a PopupButton and when I click on the button I want the Menu that pops up to have rounded corners. How would I go about doing this?UPDATE:I found an update similar to what I want to do, it can be found on the following page:The only difference is that I'm showing the Menu with a PopUpButton. So far this is what I have for my custom Menu:
I am trying to programmatically skin a PopUpButton control in Flex Builder, but having no luck. As far as I know this requires writing a custom skin class or creating a modified version the control class itself (since the control is MX and not Spark). Again, just to clarify, I want to programmatically modify the appearance not simply set styling properties or display an image. I've been able to do this programmatically with other MX controls (e.g. tabs in a tab navigator), but not with the PopUpButton.I think part of the problem may be that the control is actually composed of two separate buttons, so you cannot draw just one rectangular area over the whole control.
I am using the Flex PopUpButton & data binding a Menu object to the popup. I successfully added an icon to a menu item; however, it does not look like Menu supports the disabledIcon property common in many other elements for use when enabled: false for that menu item.Is it possible to extend the Flex Menu class to use disabledIcon? Should I use a different type of data binding class?
// create the array collection of menu items var menuItems:ArrayCollection = new ArrayCollection(); var addWidget:Object = new Object();
I have prepared a simple test case for a PopUpButton opening a TileList with black and red entries and it mostly works, but has 2 annoyances. I've searched a lot, tried several variants (added [Bindable] members in my renderer; added color member to the bids array; created my public override set data() method; ...) and has been getting some answers too, but they are way too general.
1) Scrolling "tl2" right-left doesn't work well: the entries are displayed in a mix of red and black. I know the TileList reuses itemRenderer, but how do I fix the problem?
2) In debug-mode I get numerous warnings: warning: unable to bind to property 'label' on class 'Object' (class is not an IEventDispatcher)
I have prepared a very simple test case to demo my problem.just place the 2 files below into a Flash Builder 4.6 project and they will run instantly.My problem is that the menu attached to my (slightly modified) custom PopUpButton never changes - even though the underlying Array data provider is changed when you click one of the 3 buttons on the right side of it:
I've commented my custom event out - it doesn't matter here.click at the buttons few times and then look at the menu - it always has 5 items and that is wrong.
Few users of my Flex 4.6 web application are complaining, that the mx.controls.PopUpButton at the right bottom corner of it sometimes opens a List underneath it and is thus unusable (I can't reproduce that myself - probably an unlucky combination of their Flash player and/or font size setting?)
How could I ensure, that the popUp component (in my case it is a spark.components.List) always opens above the PopUpButton?
I suspect, that I should create a skin based on mx.skins.halo.PopUpButtonSkin and assign it to my PopUpButton? And I probably should use the PopUpPosition.ABOVE constant together with the PopUpAnchor?
I have prepared a screenshot and a simple Text.mxml:
I still can't reproduce the bug myself, my users aren't very helpful (mostly older folks, playing my card game). I've searched in Adobe JIRA, but couldn't find such a bug.
I wonder, if there is a way to short-circuit that method to enforce opening the popUp above the PopUpButton.
Or if I should put the _list into some container...
In my Flex 4.6 web application I use mainly spark components, but there is also an mx-component - a PopUpButton extended by me (the source code is below).Users report problems with that button, but I can't reproduce any - since weeks.
I've tried replacing mx:Menu attached to it by a s:List but it hasn't changed anything. I suspect there is a "null pointer exception" or some other failure, that I don't hit when testing myself...
My question is: why does Flash Builder reports warning about my custom button as if its methods would be private or not present?
I have a PopUpButton that only contains 2 actions. Both actions are complete opposites of each other and switches a boolean property on an object from true to false or false to true. To avoid redundancy, I've only displaying one action at a time. So, if the property is true, the action to change it to true is not shown.
If my PopUp menu has a single option, I would like to remove the menu from being shown and basically revert the PopUpButton to act and look like a regular button. So far, I haven't really found a good way to do that in ActionScript without adding, removing or modifying styles for the button.
Is there a nice way to simply tell the button to hide the PopUp toggle? PS: In my specific example, YES it might be easier if I just used a toggle button. However, I want to reuse this button when dealing with an Array of objects. If I have more than one, the property could be true and false at the same time. In that case, I want to show the menu so they can choose what option to set all the object's properties to.
Does an AIR app built with Flex have something similar to a browser cookie? I want the app to remember a simple value, like date when the app was last opened. I'd rather not create a SQlite database just for this.
i need to change the automatically generated index.html flex output to admin.anotherExtension. I understand that if i change the index.template.html the changes in html level will be preserve when the file is generated, however i need to change the name of the file also, and the extension.
I've got a subclass of AdvancedDataGrid showing a tree-like data structure. How can I, given the index returned by calculateDropIndex, get the item at that index? After reading through reams of code, it seems like the least terrible way is:
var oldSelectedIndex:int = this.selectedIndex; var mouseOverIndex:int = this.calculateDropIndex(event); this.selectedItem = mouseOverIndex; var item:* = this.selectedItem; this.selectedIndex = oldSelectedIndex;
The other option seems to be tinkering around with the iterator property... But, judging by the way I've seen it used, that will get pretty harry pretty quickly too. So, how can I get the item at a particular index in an advanced datagrid without going insane?
I have a simple list in Flex that is populated every N seconds by a dataprovider. My goal is to avoid scrolling the list after the dataprovider has been changed.
So, before I populate the list, I save the selectedIndex, and once the dataProvider is filled, I call:
Trouble is that this moves the selected item of the list to the top. The solution would be to get the index of the first element displayed in the list: but I have no idea on how to get that.
I am using a the spark tabbar and gave a view stack as dataprovider.....in the view stack there are n elements ...and each element has a panel....my code would be some thing like this....
Is it possible to dynamically show row index for DataGrid rows ?
I have a static ArrayCollection which is set to be DataGrid's data provider and I would like to always have row numbering for each populated row (e.g. in a column called "#").
I'm doing a drag and drop operation on a tree using some help from Adobe's quick Starts:[URL]
The code suggested is roughly this:
var dropTarget:Tree = Tree(evt.currentTarget); var i:int = dropTarget.calculateDropIndex(evt); myTree.selectedIndex = i;
[Code].....
EDIT: I forgot to post that my current workaround is setting the selectedIndex = -1 after I get my node:XML. I'm afraid that if something bogs on the processor the user may see it select then deselect.
I have two components being absolutely positioned within a container (they are MapSymbols on an ILOG Elixir map, if that helps). Each component is a VBox with an Image and a Label. Images have functionality tied to the Click event; labels do not.
The problem is when 2 items are positioned so that the label of one is above the icon of another in the z-index, so that the label eats any mouseOver and mouseDown events. Bubbling doesn't help since it bubbles from the label to the vbox to the container, never hitting the lower element. I can't set the vbox to mouseChildren="false", since that keeps the image from getting clicked, as well.[code]...
In the following working example the list's selected index is supposed to reset to 0 whenever the text box changes. However, for some odd reason every other keystroke the selected item disappears and then reappears at the subsequent keystroke.
I have used the index of a value object to map to a screen object so that new items added index as -1, -2, -3, -4, -5 etc. Now that I am ready to add these new objects to the database I want to clear their index value so that I can run a createService on them.
It wont allow me to delete object.property and setting it to 0 or trying to set it to null will not allow the object to be created in the database.
What other method can I use for clearing the property?
Is there a direct way to get the item index of the data inside an itemRenderer? I need to display the item number against each item. I am currently doing a workaround and won't allow reuse of my itemRenderer component.
var index:int = model.dataColl.getItemIndex(data) + 1; itemNo = index.toString();
This is what i am using now, it works, but the concepts of component reuse and data abstraction are compromised.
I have a ViewStack, with a bunch of NavigatorContainers in. Each NavigatorContainer contains a different category of settings for the application.
I would like to be able to display a popup prompting the user if they try to leave the current NavigatorContainer without saving the changes they have made to the container's settings.
What would be ideal is something like the 'changing' event in the List component, whereby you are able to cancel or defer the event. Calling preventDefault() on the change event in ViewStack doesn't prevent the index change from happening.