UIComponent changes cause many updateDisplayList calls

I'm currently experiencing a bug when using the Flex 4 beta 1 SDK with regards to some UIComponent changes that have been made.
There have been overrides added for many transformation properties in UIComponent, for example "rotationY". Now when I want to animate this property to rotate a component in 3D, it results in a call to invalidateDisplayList in the parent every single frame, and fails to render my view as it rotates, due to the fact it fails to update the screen at all because it appears to call invalidateDisplayList all the way up the visual hierachy so you don't even see rollovers on standard button controls when you mouse over.
Below is some very simplified code that uses the Halo components. This code may look obtuse, but it's designed to mirror my real situation, which is more complex, however it still illustrates the problem.
1. When I compile this with Flex SDK 3.4, I get 1 single trace of "updateDisplayList", and it animates smoothly.
2. When I compile this with Flex SDK 4 beta 1, I get a trace of "updateDisplayList" every single frame*.
* As you can imagine, in this simple scenario it's not a big problem, but when you consider I'm rotating a fairly complex UI/view, it completely falls over when compiling with Flex 4 as the CPU cannot handle the chain of invalidatations.
I'm trying to figure out whether this is expected behavior. I can't see how I can rotate my view when I switch to compiling with Flex SDK 4?
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();">
    <mx:Script>
        <![CDATA[
            import mx.controls.Button;
            import mx.core.UIComponent;
            private function init():void
                var outer:UIComponent = new UIComponent();
                var inner:UIComponent = new UIComponent();
                var button:Button = new Button();
                button.label = "Hello World";
                button.width = 100;
                button.height = 50;
                inner.addChild(button);       
                outer.addChild(inner);
                addChild(outer);
                addEventListener(Event.ENTER_FRAME, function(event:Event):void { outer.rotationY++; });
            override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
               super.updateDisplayList(unscaledWidth, unscaledHeight);
                trace("updateDisplayList");
        ]]>
    </mx:Script>
</mx:Application>
Many thanks,
Richard

Hi again,
Thanks for this detailed explanation, it really helps clear up some of
these migration questions, particularly when combining Halo components
with the new improved Spark model.
After posting I continued digging and found Rotate3D working as
expected and began to look through the postLayout Transform stuff but
didn't quite grasp the entire flow yet. But of course your post
describes exactly the situation, I think it'd make for a useful devnet
article perhaps for people moving from Flex 3 to 4 like myself.
Could at least be a quick blog post
Note that the behavior on the 3d effects that determines whether they set the layout or postLayout properties is governed by the effect property applyChangesPostLayout. This flag is true by default for the 3D effects, but false by default for the 2D transform effects (Move, Scale, Rotate).
So if my component extends UIComponent, and previously I would have
tweened rotationY, perhaps now I can run a tween and call
transformAround() instead (or just use Rotate3D) in order to make use
of the postLayoutTransformOffsets mentioned?
Correct, although I think you'd be better served by just using Rotate3D and letting us figure out the details of transforming around the specified point (center by default, but specifiable if you want to rotate around a different point). At their core, the effect simply animate properties. But in the case of transform effects, they do a lot more to figure out the transform center and call transformAround() appropriately, and also combine in useful ways with other transform effects running in parallel to avoid some of the effect-fighting artifacts of previous versions.
So use Rotate3D (and the other effects) when you can. Or use Animate if you're just doing raw property rotation. And if you have to go to the level of Animation to animate properties, please let us know why (what in the effects classes didn't suit your purpose?). Animation is certainly there to be used, but it's probably not something that developers would typically call directly.
I'm just a little worried about migrating projects where these sort of
things that worked in Flex 3 would cause the recursive layout calls
experienced. I am using compatibility-version=3 so perhaps a clause
could be inserted to ignore the new transform changes in UIComponent
for backwards compatibility in these cases until the developer can make
the necessary changes in all places?
Not sure how embedded that logic is, but layout code is pretty extensive, so it might not be trivial to make that change. I'll forward the request...
Like many people no doubt, I'm planning to migrate projects when
possible in order to make use of new features and improved programming
model, for example I'm using some Flex 4 SWCs (the TLF ones), and plan
to port to Spark as and when components are available.
Excellent. Let us know when you run into issues.
Thanks,
Chet.
Thanks again,
Richard
>

Similar Messages

  • How do we change itune and icloud accounts?  My wife and I have seperate accounts but she cannot access hes, only mine.  This causes many issues like facetime, text etc. Do we have to reset her devices and start fresh?

    How do we change itune and icloud accounts?  My wife and I have separate accounts but she cannot access hes, only mine.  This causes many issues like face time, text etc. Do we have to reset her devices and start fresh?

    I think this may be the answer.
    http://support.apple.com/kb/HT5621

  • Some of the album artwork on my iPod is wrong. I've tried to change it many times but it doesn't change. I've decided that the easiest thing to do now would be to NOT display album artwork on my iPod. How do I set my iPod to NOT display album art?

    Some of the album artwork on my iPod is wrong. I've tried to change it many times but it doesn't change. I've decided that the easiest thing to do now would be to NOT display album artwork on my iPod. How do I set my iPod to NOT display album art? I've checked the User manual and that doesn't help.

    Why don't you, instead of taking time to do that, just backup, and then restore your iPod?
    Just a suggestion..

  • Has Lightroom CC removed the ability to Batch apply changes to many files at once (after import) using presets?

    I've just upgraded to Lightroom CC and most of the changes are very welcome - especially the performance improvements.
    However I've been processing several thousand images and in Lightroom 5 when wanting to apply changes to many images at once it was as simple as selecting the group of images and then right clicking, selecting Develop Settings and then selecting one of my many Presets from a sub menu.
    This sub menu seems to have disappeared in Lightroom CC.
    This is a MASSIVE problem for me as I cannot work out how to apply the presets to multiple images anymore.   I note that there is a tutorial on how to do it during import - but I want to specifically be able to do it post import, during development of large groups of images for clients.
    Anyone know what has happened here and how we can get access to applying presets to multiple images during development under Lightroom CC?

    Yes ssprengel.
    I regularly work with all the Presets visible in the left of the Develop module.   But this cannot be used to apply the preset to multiple images.   For that (in Lightroom 5) you had to select the multiple images and then right click (on any one of the images) then go down the menu to Develop Settings, then select the Preset Folder and the Preset you wished to apply to all the images selected.   This worked well for me in my workflow.   But the access to the Presets through the Develop Settings menu has been removed in Lightroom CC.   ManiacJoe's solution above works - but it's accessed from the Library module.   That's kind of counter intuitive.   I want access to apply any preset I've saved to multiple images (in many cases t's being applied to thousands of images) from within the Develop module.   it makes little sense to apply a preset one image at a time to thousands of images when developing them
    The whole idea behind presets was that they could be quickly and consistently applied across multiple images.   Removing this functionality is a backward step by ADOBE in my opinion and I really want them to add it back to the Develop Module menu systems.

  • 9i jdbc driver change causes problems

    Hello all,
    I was wondering if anyone had any problems with jdbc when migrating to oracle 9i. We are using timestamps from java which were mapped to dates. In oracle there is a function which takes a date. Now this won't work anymore as the mapping changed. Question is, did anyone use the V8Compatibility flag before? I tried it and it doesn't seem to work. When looking at the jdbc implementation it seems to me that something is not implemented yet.
    Any feedback?
    Thanks in advance,
    Rein

    9i jdbc driver change causes problems

  • Agent state changed to reserved but call is not ringing/landing for 30 seconds

    Hi All,
    we have IPCC 8.5, CVP 8.5, UCM 8.5, last few weeks we are facing
    agents are facing intermittently, their state changed to reserved but call is not landing/ring for a while, and we have seen call is going to RONA in CVP logs.
    We have cross checked the Device Target (4 CVP servers) its fine, Queue music is interruptable.
    In Ingress/VXML gateway we have the dial-peer pointing to two subscribers with equal priority. Seems to be some call is not routing to agent phone (delay is there between voice gateway and ip phone) due to some reason. We dont use SIP proxy we use static routing to subscribers.
    Please share your ideas.
    with Regards,
    Manivanna                  

    In Ingress/VXML gateway we have the dial-peer pointing to two subscribers with equal priority.
    The gateway should point to the Call Servers. The Call Servers should have static routes to the subscribers.
    If the call is not getting to the agent even though they go into Reserved (the Call Router has selected them), ensure that the SIP trunks to the Call Servers and the agent phones are in compatible partitions/CSS. Examine the logs on the Call Server when the INVITE is sent to the agent phone. If the INVITE returns 404 (not found) or 503 (unavailable), then the setup is wrong.
    Regards,
    Geoff

  • Since I upgraded to IOS8, iphone has changed the way it calls via car bluetooth.  Before (IOS8) once I hit 'call' it was transfer to car speakers and i would hear dial tone until answer.  Now, call will only transfer to speakers once call is answered

    Since I upgraded to IOS8, iphone has changed the way it calls via car bluetooth.  Before (IOS8) once I hit 'call' it was transfer to car speakers and i would hear dial tone until answer.  Now, call will only transfer to speakers once call is answered.  This is very incovenient as I never know if my call is going through, and sometimes when call isn't answered immediately I have to look at my phone to cancel the call.  Is there a new setting I am missing?

    Sometimes you turn off your Bluetooth and then back on and it doesn't reconnect with your phone unless you go into the menu. Either way doesn't help much if someone calls you while you're driving and you realize your iPhone is stuck on headphone input.

  • Crappy terrible Firefox 6.0.2 causes many unresponsive script problems

    Firefox 6.0.2 is lousy upgrade? since it causes many unresponsive script problems

    Yes, 6.02 on Windows 7 is very unstable and buggy.
    Unusable now, moving to Chrome.

  • How can I apply a database change across many instances concurrently?

    In support of a nationwide imaging application that will place HP UNIX servers housing Oracle instances in over 100 offices across the country, we're looking for the most efficient way to apply (distribute, execute, and validate) our database releases to all Oracle instances on the same day. Given a limited number of DBAs (3 or 4) and such a large number of instances located throughout the country, an automated solution is mandatory. Is there a tool or methodology available to handle this task?
    Assumptions: the database structure across all Oracle instances will be identical and each database release (series of SQL scripts) will be consistent across all instances.
    Thanks in advance!

    Thanks for your response. We're looking for a solution that will allow us to apply changes to the database structures (tables, indexes, procedures, privileges, tablespaces, etc...) via DDL without changing the underlying data. Each of the sites we'll need maintain will have their own unique data. Replicating the data is not an option. We are in search of a solution that allows us to apply a database structure change across many sites at one time without updating the underlying data.
    - Mitch

  • How can i effect a change in many forms simultaniously...?

    How can i effect a change in many forms simultaniously.......?

    I have done something with C API. I Got the following example from Oracle.com. I can compile this file But while Linking this there is a linking error. The error occurs while linking ifd2f60.LIB.
    #include <stdio.h>
    #include <iostream.h>
    #include <dir.h>
    #include <stdlib.h>
    #include <malloc.h>
    #include <math.h>
    #include <d2fctx.h> /* Forms API context */
    #include <d2ffmd.h> /* Form module header file */
    int main (int argc,unsigned char *argv[])
    d2fctxa ctx_attr;
    d2fctx *ctx;
    d2ffmd *form;
    text *form_name;
    /* Check arguments */
    if ( argc != 2 )
    fprintf(stderr, "USAGE: %s <filename>\n", argv[0]);
    exit(1);
    /* Create Forms API context */
    ctx_attr.mask_d2fctxa = (ub4)0;
    if ( d2fctxcr_Create(&ctx, &ctx_attr) != D2FS_SUCCESS )
    fprintf(stderr, "Error creating Forms API context\n");
    exit(1);
    /* Load the form module into memory */
    if ( d2ffmdld_Load(ctx,&form, argv[1], FALSE) != D2FS_SUCCESS )
    fprintf(stderr, "Failed to load form module: %s\n", argv[1]);
    exit(1);
    /* Get the name of the form module */
    if ( d2ffmdg_name(ctx, form, &form_name) != D2FS_SUCCESS )
    fprintf(stderr, "Error getting the name of the form module\n");
    else
    /* Print the name of the form, then free it */
    printf ("The name of the form is %s\n", form_name);
    free(form_name);
    /* Destroy the in-memory form */
    /*if ( d2ffmdde_Destroy(ctx, form) != D2FS_SUCCESS )
    fprintf(stderr, "Error destroying form module\n");
    /* Close the API and destroy context */
    d2fctxde_Destroy(ctx);
    return 0;
    }

  • HT201394 I updated and restarted my iphone 5 now i cant get passed the startup? I have changed password many times and i have tried to skip it but it shuts off?

    I updated and restarted my iphone 5 now i cant get passed the start up? I have changed password many times and i have tried to skip it but it shuts off?

    I have same issue

  • How do I enable cookies on my iPad 2 . I have went to Safari and changed it many times but a website keeps telling me to enable it I've been on this site many times before with out a problem

    How do I enable cookies on my iPad 2 . I have went to Safari and changed it many times but a website keeps telling me to enable it I've been on this site many times before with out a problem

    The website may not run properly on a mobile device. You can try another browser (search the App Store) but it may be hard-coded into the website itself.

  • Database connection pooling in ADF causing db procedure calls to use different transaction or session

    We have developed an application using JDev Version 11.1.2.1.0 and the database is oracle 11g EE.
    We have many database procedures or function calls from the model (AMImpl.java, VORowImpl.java) and the commit does not happen in the database and it happens from ADF. The database procedures are called in some valueChangeListnener and these procedures use the same transaction or session database session when called and update some records in some tables that are displayed in pages.
    We started using connection pooling recently in our ADF application,  -Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1. When using connection pooling, we noticed that the database procedure calls use a different trasanction or different database session and the data or records that these procedures update is lost.
    After removing the connection pooling, we noticed that the procedures again started using the same transaction or same database session and was working fine.
    I want to know why this connnection pooling caused this issue and is there any fix for this when using connection pooling?

    Take a look at
    http://docs.oracle.com/cd/E15523_01/web.1111/b31974/bcampool.htm#CIHCHHEA
    What You May Need to Know About Database User State and jbo.doconnectionpooling = true
    As you can see:
    "At the end of the request when the application module is released back to the application module pool, that application module pool releases the JDBC connection it was using back to the database connection pool. It follows that with jbo.doconnectionpooling set to true the application module instance in the pool may have a completely different JDBC connection each time you check it out of the pool"
    So, the best you can do, is to revert jbo.doconnectionpooling to false.

  • Group Policy changes cause Access Denied error for Domain Admin account

    Hi All,
    I am battling to get WSUS to work, and I think the route cause is problems editing the domain and domain controller group policy objects.
    We have 1 DC, approx 20 clients. 1 GPO for DC, 1 GPO for clients. Ther e is a link to the default domain GPO in our staff (users) OU, I don't know if it should be there or not.
    I log in as domain administrator, right-click the domain GPO in GPMC, click Edit.
    Find the setting I want to edit (specify intranet microsoft update service location), double click.
    Change something, click OK.
    I get error:
    Unhandled exception has occurred in a component in your application. If you click Continue, the application will ignore this error and attempt to continute.
    Access is denied. (Exception from HRESULT: 0x80070005
    (E_ACCESSDENIED)).
    I have followed the steps in the links posted by Brent in another post called: "restricting-domain-admin-account-to-edit-group-policies" (no links allowed for my account yet sorry) and the user does have edit settings, delete, modify security delecation.
    PLEASE NOTE: the solution may very well be something very simple/basic. I am reasonably computer savvy, but have just upgraded the whole network for an NGO on a voluntary basis. Never seen a sever before I came here, but I'm the best they have. Please bare
    that in mind when offering advice :)
    Any help appreciated!
    James

    More diagnostic info:
    Inside GPMC, there's Group Policy Results.
    If I right-click, Result Wizard, choose this computer, it works fine showing default domain controllers policy with alert that it's enforced.
    If I browse for another PC (it comes up as Domain\PC name), click Next, I get error:
    Failed to connect to DOMAIN\PCNAME due to the error listed below. Ensure that the Windows Management Instrumentation (WMI) service is enabled on the target computer, and consult the event log of the target computer for further details.
    Details: the RPC server is unavailable.
    If you need the recent related events, I will post them. I also checked that service on the client - it's automatic and started.
    PPS Clients are all Win 7, PCs are 32bit, laptops are 64. Server is Windows Server 2012 Datacenter. WSUS when clicking Help -> About from the snap-in/GUI: 6.2.9200.16384.
    PPPS Directory browsing for the whole WSUS object in IIS is enabled, thanks to SorinAlbu over at Spiceworks post WSUS and IIS.
    PPPPS Launching IE and loading http://servername:8530/iuident.cab fails 404 error from both clients and server. That file in C:\Program Files\Update Services\WebServices\Root\iuident.cab doesn't exist. Maybe because we recently removed the WSUS role and reinstalled
    it, to check if something went wrong the first time? It's all been configured using the snapin/GUI, but the new installation of the role hasn't yet connected to the Microsoft Update servers.
    PPPPPS Added the Application Server role with default settings as recommended by the step by step guide to WSUS at Technet. Still no dice.

  • How can I debug leaks caused by ODBC calls in app linked with libtt.so?

    Hi,
    we are using TimesTen Release 7.0.5.0.0 on Solaris 10.
    and we are using libtt.so to link our application and connect using ODBC calls.
    The problem is that we have made some serious changes to our large code base and now we see a leak.
    Here is what I know:
    1) Although it is easy to reproduce it doesn't seem to follow a clear pattern. ie. the amount leaked isn't a direct function of the number of request or time spent.
    2) When our application is linked with libttclient.so there is no leak at all.
    3) prstat shows increments of 4 MBytes each time it leaks.
    So I suspect it is because the memory isn't freed but how can I tell which ODBC calls are causing it?
    Is there a debug option I could turn on to help with this?
    Perhaps something in ttTraceMon?
    Thanks

    Hello Serge,
    Just a note that we often times get this type of alarm about memory leaks in TimesTen when using the libtt.so library when using tools such as top or prstat to gage memory consumption. The reality is that these commands are not a good way to look for memory leaks / memory utilization when using TimesTen in direct connect mode. The TimesTen database resides in shared memory and so the fact that prstat shows big or increasing numbers should not be alarming.
    The only reliable way to check for memory leaks is to use a tool designed exactly for that such as Purify, which the TimesTen development team uses extensively and so it's unlikely that you'll find memory leaks in TimesTen.
    Have you found that memory is being exhausted after a period of application runtime and transaction iterations?
    You could use ttTraceMon and work with TimesTen support/engineering to extrapolate and answer from the trace it gaves, but unfortunately, there's rarely an easy way to answer queries on what is going on in either the Permament or Temporary partition.
    I'd first make sure that there is indeed a problem but running your application workload for some time. My suspicion is that the prstat command results are being misleading once more.
    Regards,
    Henri

Maybe you are looking for

  • Kill the session Using Pl/sql Script

    Hi, I wrote a PL/SQL Script which kills the Specified Schema name..... the Script Run Successfully i got this output message "PL/SQL procedure successfully completed." But the Problem is in session status the status is in KILLED" state for more than

  • Weblogic startup servlet load

              Hi,           I am encountering problems in running a Servlet on Weblogic           server startup.           The steps to be followed to execute a servlet on webLogic           Server startup are as follows           Register the following

  • Keynote 6.5 color palette problem

    How do I get this "background pic" removed? I don't even know how it got there! Quitting the app or computer doesn't work. The pic itself is from a previous project.

  • Autocompletion SwingX Textfield

    Hello everybody , I found an interesting topic about automatic completion. http://xpose.avenir.asso.fr/viewxpose.php?site=20&subpage=/swingX.php http://download.java.net/javadesktop/swinglabs/releases/0.8/docs/api/org/jdesktop/swingx/autocomplete/Con

  • Trimming  clips and automatically crossfading

    Hello all, 2 questions about FCP. - When I have 2 clips on the same track and you move the left clip over the right clip and then back to where it was, it leaves the right clip trimmed. How can I leave the right clip as it was? - Also, how do you get