Thanks, Alan. I have another question related to my example.
As you saw, I am using SequentialAnimation to sequence animations, but what if I want a non-animation in the sequence? For example, assume I've exposed a C++ "MediaPlayer" component to QML, which has a playFile(path) slot and playbackCompleted() signal. Is there a declarative approach for me to express the following? 1. animate fade-in for element A 2. play sound(S) and wait for completion 3. animate fade-in for element B Cheers, Alex On Wed, Aug 4, 2010 at 2:51 PM, <alan.westbr...@nokia.com> wrote: > I'm not sure if there is an easy declarative way to do that. > > You could probably write a javascript function that would take care of some > of the typing, something like: > > Component.onCompleted: { > for(var i = 0; i < target_id_list.count(); ++i) > { > var obj = numberAnimationComponent.create(animations) > obj.target = target_id_list[i] > var pause = pauseAnimationComponent.create(animation) > } > > animations.start() > } > > Probably best not to cut and paste that, my javascript skillz are lacking. > > You could probably write a C++ class that iterates over all it's child items > and does the same thing when it becomes visible, or some other method is > called though. > > HTH! > Alan > > > On Aug 4, 2010, at 11:42 AM, ext Alex wrote: > >> Hi Alan, >> >> Sorry for not being more clear. >> >> I have a large number of pages, with each page containing several >> elements. The "fading in" behaviour applies to the elements on a >> given page. >> >> The large number of pages is my motivation for encapsulating this >> behaviour, so I don't have to re-implement it on every page. >> >> For example, I currently have a page that has 4 elements, and I fade >> them in as follows: >> >> SequentialAnimation { >> id: animations >> NumberAnimation { target: e1; property: "opacity"; from: 0; >> to: 1; duration: 600 } >> PauseAnimation { duration: 1000 } >> NumberAnimation { target: e2; property: "opacity"; from: 0; >> to: 1; duration: 600 } >> PauseAnimation { duration: 1000 } >> NumberAnimation { target: e3; property: "opacity"; from: 0; >> to: 1; duration: 600 } >> PauseAnimation { duration: 1000 } >> NumberAnimation { target: e4; property: "opacity"; from: 0; >> to: 1; duration: 600 } >> } >> >> For this to work, I also set opacity to 0 in the definitions of e1, >> e2, e3, and e4. >> >> If I were using an imperative language, I would do something like: >> >> Fader fader; >> fader.setFadeDuration(600) >> fader.setPauseDuration(1000) >> fader.addElement(e1) >> fader.addElement(e2) >> etc >> fader.start() >> >> Is there an idiomatic way to do something similar in QML? >> >> Cheers, >> Alex >> >> >> >> On Wed, Aug 4, 2010 at 11:24 AM, <alan.westbr...@nokia.com> wrote: >>> So it's a slideshow and each element is a page, and you have hundreds of >>> pages? >>> >>> Or do you have a few pages each with a bunch of elements? >>> >>> Or do you have hundreds of elements which pop in and out on a single page? >>> >>> Depending on what you mean, you could try putting your elements in a model >>> and iterating over them setting opacity. You can also use a Behavior on >>> opacity to enable fade in and out in the element definition. >>> >>> Or you can fade each page in and out, all child elements will follow the >>> opacity of it's parent page. >>> >>> Alan >>> >>> On Aug 4, 2010, at 11:14 AM, ext Alex wrote: >>> >>>> Hi all, >>>> >>>> I am building an application that has a PowerPoint-like informational >>>> component. To this end, I have a bunch of QML files that display >>>> content progressively, with items fading in one at a time. >>>> >>>> In my current implementation, I give each object an id and set opacity >>>> to 0. I then have a SequentialAnimation block that uses a >>>> PropertyAnimation, individually referencing each id, to bring the >>>> opacity to 1. >>>> >>>> This approach works but it is suboptimal (from a development point of >>>> view), considering that I will have hundreds of these QML files. Is >>>> there a better way to abstract/automate this behaviour? >>>> >>>> Thanks, >>>> Alex >>>> _______________________________________________ >>>> Qt-qml mailing list >>>> Qt-qml@trolltech.com >>>> http://lists.trolltech.com/mailman/listinfo/qt-qml >>> >>> > > _______________________________________________ Qt-qml mailing list Qt-qml@trolltech.com http://lists.trolltech.com/mailman/listinfo/qt-qml