I have two columns: the left one is a Canvas containing an mx:Tree and the right one is a Canvas containing a Canvas (to allow for scrolling) of some custom Sprites that go along with the tree nodes on the left. I made the right Canvas scrollable (horizontal and vertical) and I want the vertical scroll to also scroll the left Canvas so that the tree nodes line up with their representations on the right. The scrolling portion works fine and when I embed with wmode="window" there are no problems. Unfortunately, the customer requires dynamic HTML to overlap the Flash at times and when using wmode="opaque" or "transparent", there are issues. The scrolling still works, per se, but Flash does not seem to redraw either Canvas appropriately. The Canvases become out of sync and artifacts often remain on the right side.I catch a scroll event on the right column and update the scroll position on the left column like so:
public function onTimelineScroll(scrollEvent:ScrollEvent):void {
leftColumn.verticalScrollPosition = rightColumn.verticalScrollPosition;
}
My flex application gets some parameters from URL when the application opens for the first time(ex: layout=<1,2,3,4> ). Based on layout(1,2,3,4) value I have to change the layout. However the problem is the application is already drawn(Layout is initialized) by the time the control reaches the point where it reads the values from the URL. I was wondering how can I redraw once I read the values from URL. Some thing like refresh.
The answer to my question is possibly easy, yet I haven't found an example of solving it in the web, nor have I found a solution reading ActionScript reference. My problem is the following: I have a big UIComponent derivate element inside a Scroller (spark.components.Scroller) window. The Scroller class is great because when my canvas element, that changes size dynamically, exceeds its boundaries, scrollbars appear automatically and handle scrolling of my UIComponent inside it. However, I'd like not just to be able to Scroll using these automatically appeared scroll bars, but also by using a pan tool that I will myself implement (similar to the hand tool in Adobe software, for example). The thing is that I am not able to modify correctly the element's position inside the Scroller window.
I tried, as a first approach, accessing to my elements' 'x' and 'y' properties, however, when changing them, I dont get the resulkts wanted. The code for it is the following (in which, for symplifying reasons, I used a text label as my 'inside' element, and two buttons as an external scroll controller, instead of a hand tool)
I would like to take advantage of Adobe's Runtime Shared Library system for swc's, but I'm not sure how it ACTUALLY works, like the programming behind it. I understand that it allows you to load SWCs at runtime, but how does it do that?
I'm asking because I would like to try to mimic something like the Signed RSL "swz" system Adobe uses to cache the Flex Framework into the Flash Player, so if you ever visit a site that downloads the Flex framework for some flash website, then the next time, and forevermore, you don't have to download it again.
I can't do this because I'm using my own version of the Flex SDK from the Sandbox, and I have like 5 other swc's I'm using (Mate, RestfulX, etc.). I would like to be able to cache these things permanently, and only have them re-download them if they change.
How do I do that, or what should I read, other than the Adobe RSL docs and such? Can I use javascript or ruby to do this?
I have an app w/ a login screen. When the user hits "enter", the state changes to "login" & a child component is triggered to load (though the child stays invisible at the moment). The child contains many functions that the user needs upon logging in (ie their screenname & settings are retrieved from a database). The following is included in 'Parent':
My problem is when a user logs out (state changes to 'Default') & then logs back in (state changes back to 'login') the child doesn't get "triggered" again & the functions w/in the child don't reload. Is there a way to force my child to refresh?
Note: While it would be easier to just move the child's functions to the parent it is complex...I moved these functions to the child to make it easier to follow
UPDATE: I even tried adding an "exitState" to my state:
This doesn't work either, as I get an error: "RangeError: Index 0 is out of range."
UPDATE: Even though you are allowed to call a child's function from a parent, my problem is that the child needs to be "created" in order to not show errors. It makes no sense to me why the flex team would make something like removing & adding children so complicated.
I have a problem with redrawing in flex 4. I have a spark titleWindow, and if i drag it faster, it looks like it's mask is one frame late after the component. it's easily visible with 1pixel thin border, because it becomes invisible even with slower movement.
You can try it here (what is not my page, but it's easier to show you here than uploading example):[URL]..
If you move in direction up, you see disappearing top border. in another directions it's not that sensitive as it has wide shadow, and it's not very visible on shadow. On my computer i see it on every spark TitleWindow i have found on google, although it's much less visible with less contrast skins, without borders or with shadows.
Suppose I have a component and want to change it's focus color at runtime. Here's an example for you (I've excluded any buttons and such to prevent component from losing it's focus, cause in that case it changes it's color perfectly):
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> <mx:Script><![CDATA[ private function init():void {
[Code].....
What do I want: How to make this focus to be redrawn without magic (I've tried all the methods, starting with "validate", I've tried calling updateDisplayList() on entire application, I've tried to call styleChanged .
I'm removing an UIComponent but parts of it last being visible. It redraws only when I move mouse around or something. I tried to do validateNow() on its parent, tried to do setTimeout(validateNow, 100) but it doesn't help. When I call it by setTimeout it seems these artifacts shown more rarely but it doesn't solve a problem in all cases. Please guide me someone to read about validateNow(), how it works and how to make these things correctly.
The code is below:
protected var bubble: SpeechBubble; // creation bubble = new SpeechBubble();
I've got a small action-script chart, that's meant to be live updating, and also be able to support more than 10000 points of data. The way it's currently set up it doesn't need to redraw the whole chart if the new line we wish to add doesn't extend that chart's boundaries. Yet it does, the redraw regions show the whole chart as being redrawn as opposed to the single line i need to add. When the chart gets a new piece of data from the javascript it does the following.(some stuff has been stripped for clarity.[code] Is there any better way to do that, that won't redraw the whole screen? Is my coding pattern wrong for this type of update?
I'm trying to capture the redraw event for some MovieClip / Sprite objects that are in a Scroll area.Ideally, should be able to capture the event when Flash Player itself redraws the objects as can be seen with "Show Redraw Regions" in FP Debug.I've tried to use the Event.RENDER to capture this, but it even fires when the object is not visible / redrawn.
Is there a simple way to force all the child components of a Flex app to redraw when that app is resized?
For instance, I have a HDividedBox with percentHeight and percentWidth set to 100. On the left hand side of the divided box is a data grid and on the right side is a number of text inputs. The divided box is not added to the view stack until after the user logs on.
If I resize the app before the HDividedBox is added then the box takes up the full size of the app, whatever that may be. However if i resize the app after the box appears then the box retains the same dimensions it does when it was first added.
I would have expected that on the resize of the app then all the children would redraw (the application component itself appears to).
I have a tree control with a custom item renderer. The item renderer has different states that should be set while an item is being dragged over the item renderer. I understand from reading this post [URL] that the 'right way' to do this is to override the 'getCurrentState' method and append some text. I do that.
Now in my tree control I handle the drag over event and get a reference to the itemrenderer that is being dragged over and I set the boolean 'dragOver' property to true. Now I just need to force my itemRenderer to redraw. I can't figure that out. A workaround, is to just set the currentState of the itemRenderer.
how can I force my itemRenderer to refresh? (and I've tried calling validateNow, invalideDisplayList/Properties/Size, to no avail)
Multiple axis creation via MXML works fine: http:[url]...
But when I'm trying dynamically create horizontal and vertical axis then I'm getting extra axes. I believe this is Adobe bug. How I can fix this behavior?
I have a candlestick chart that is working great when the numbers being dealt with are large but when the numbers are small the vertical axis starts at the very top of my data and ends at the very bottom. For example if my max number in my XML is 12 and my min is 11 the charts top is 12 and the charts bottom is 11 with 11.2, 11.4, 11.6, 11.8 in between. How can I force the chart to do 22 to 1 on the vertical axis ({maxgraph+10} and {mingraph-10}).
I'm currently working on an Adobe AIR application which is targeting the iPad2 as the hardware platform, and can not get decent scrolling performance on one of the screens. I'm using a spark list, with a custom item renderer like so:
As you can see this is pretty light-weight, yet my dataprovider contains upwards of 100 items, and 11 of them can be on screen at any one time. Everything I've read around increasing performance for scrolling revolves around using opaqueBackground and cacheAsBitmap, however no matter what I try neither help here. Using cacheAsBitmap at the list level doesn't help as the item renderer recycling kicks in once you've scrolled more than a couple of lines requiring the whole thing to be re-rendered, and using it at the item renderer level is still horribly slow when scrolling fast — presumably because many are being recycled at once during a very fast scroll.
I know the iPad should have no problem blitting a screenful of information in a frame at 60 fps, yet when I scroll quickly I'm seeing it struggle to make 10 fps (from sight). So the question: have I missed something obvious, or is this to be expected due to the number of layers (and vector rendering) involved when using AIR? For the record, I have tried changing the render mode for the application and tried changing the frame rate to eliminate the obvious.
I need to trigger the hover state of a Flex button programatically, so that it looks like the user is hovering over it. There is a flex page about "Manually dispatching events":
[URL]
Which would work, but what I'd really like to do is change the style of the button without having to throw an event. How can I do this?
Then I have a custom component that also has a dataProvider. How do I get it to dispatch a collection change event when its dataprovider finishes loading?From what I've read, I can't do it. Will dispatching a propertychangeevent work?
UPDATE:I have a custom component that I call 'SortingComboBox' but it is not a ComboBox at all; it extends Button and I set is dataProvider property to my arraycollection, model.product (which is an arraycollection). how I use the dataProvider in that component:
code
[Bindable] private var _dataProvider : Object; public function get dataProvider() : Object {[code]..........
In the createChildren() method of this component, I use this:
I tried importing the WSDL with the wizard but when I tried to call the web service it results in an error stating
"Cannot marshall type "http://www.w3.org/2001/XMLSchema::EnumsChannel"to simple type"
What kind of object do I need to create in Flex Builder 3 to pass into the webservice so that it will recognize it as the appropriate type? The wizard is not correctly creating the appropriate type. Here is the xsd for the enums.
I'd like to try to build my own objects to call the service myself (without the wizard).... created the mx:WebService and mx:Operation but not sure how to handle the enum parameters.
I have a spark List with an item renderer and a tile layout. If I scroll by clicking with the mouse on the scroll bar and trying to scroll with the mouse wheel after that, there is a problem: The interval of the scrolling is oversized, instead of scrolling one item down (or up) the List scrolls 4 items down (or up).
Whenever you resize a datagrid by hand (not via code), the last column seems to retain most of the width. What's worse, whenever you extend it and shrink it to a large degree, the other columns can get smushed. Here's a perfect example: The ideal solution would distribute width equally or in proportion to the length of the text. In addition, if would avoid covering text when it's not necessary. Now, setting the width to 0.5 in the example above does seem to alleviate the issue, but not prevent it entirely. What I'd also like to know if there are any well polished, custom datagrids out there that solve this. From trying to find a solution, I suspect the only solutions available are more ad-hoc.
I am trying to set the softKeyboardType to email but when ever i use skinClass="spark.skins.mobile.TextAreaSkin" it doesn't change it but when i take off skinClass="spark.skins.mobile.TextAreaSkin" it does work. The problem is i need the skinClass="spark.skins.mobile.TextAreaSkin" class to allow my application so scroll with out it the text does not stay with in the bounds of the text input boxes. Has anyone seen this problem or another fix the the scrolling problem?
I just want to acquire the existing label from the currently selected item in a ComboBox. I populated it with a DataProvider with a list of strings and it will not allow me to get the currently selected label, especially if I input a new one, not included in the DataProvider
If I have a BitmapData that's already been drawn onto a Sprite. Is there a way to redraw the BitmapData onto a Sprites Graphics object without having to invoke beginBitmapFill and passing in the same BitmapData?
Is it at all possible to connect the Flash Player debug version to the debugger in Flex Builder using source code? I'm running an app which has no right click menu, and I therefore can't right click and select connect to debugger.
I am building a scene which consists of 1 main mc containing all the elements in the scene. Inside this mc some of the layers are pushed back in Z space to create a parallax effect and on the main timeline the scene mc scrolls in relation to the mouse position (much like this ) the scene mc is 5953px by 1716px and all the mcs contained inside consist of line drawn vector illustrations imported from illustrator. My problem is that when the scene is scrolling, every so often there is a delay were the scrolling slows down. It eventually catches up with itself causing it to jerk back to its original speed. When I test the movie and turn on redraw regions I notice that flash is having trouble redrawing some of the mcs.
I have tried optimising my mcs, turning cache as bitmap on the static ones and even replacing some of the static ones with bitmap versions but none of these seem to solve the problem. I was wondering if there is a solution to this or any other steps I can take to ease up on the redraw Also I am having a problem with the mcs breaking up as the scene scrolls, is there a way I can easily apply an anti alias to them?
Im pretty sure Im not going about this the right way... but anyways If you move to the left or right, the front triangle is supposed to have its points redrawn to locked positions inside the player, but for some reason it is leaving artifacts and Im sure its some redundancy in my script that I don't see...here is the script executing the redraw...
Actionscript Code: function reDrawFront() { var temp=frontLockright.localToGlobal(new Point(0,0)); var temp2=frontLockleft.localToGlobal(new Point(0,0));
I want my sprite to redraw when the information in my comboBox is changed but I cant figure out how to do it. I've tried a variety of things with no luck so I've deleted my attempts and below is my code how I want it to work with the exception that how it is now just draws the sprite on top of the other one instead of replacing it (or resizing it??).
import fl.data.DataProvider; import fl.events.ComponentEvent; var items:Array = [ {label:"Select your Waterway"}, {label:"Klamath at Orleans", data:klamath_orleans}, {label:"Scott at Fort Jones", data:scott_fort_jones}, {label:"Redwood Creek", data:"redwood_creek_hwy299"}, [Code] .....