Xml slideshow with random PICTS and mx.transitions

Hi All,
I am building a web banner with a slideshow with random picts via xml,
but i want to use a iris transition to fade in while getting the pict, and fade out with the iris transition, the last action works but when getting i cannot get the transition to work below is a piece of the code:
import mx.transitions.Tween;
import mx.transitions.easing.*;
pauseTime = 2000;
xmlImages = new XML();
xmlImages.ignoreWhite = true;
xmlImages.onLoad = loadImages;
xmlImages.load("images.xml");
function loadImages(loaded) {
    if (loaded) {
        xmlFirstChild = this.firstChild;
        imageFileName = [];
        totalImages = xmlFirstChild.childNodes[0].childNodes.length;
        for (i=0; i<totalImages; i++) {
            imageFileName[i] = xmlFirstChild.childNodes[0].childNodes[i].attributes.title;
        randomImage();
function randomImage() {
    if (loaded == filesize) {
        var ran = Math.round(Math.random() * (totalImages - 1));
        picture_mc._alpha = 0;  // Start image clip as invisible
        picture_mc.loadMovie(imageFileName[ran], 1);  //Load random image from xml
        var pictureTweenIn:Tween = new Tween(picture_mc, "_alpha", Normal.easeIn, 0, 100, 4, true); //WORKS!
        mx.transitions.TransitionManager.start(picture_mc, {type:mx.transitions.Iris, direction:mx.transitions.Transition.OUT, duration:3, easing:mx.transitions.easing.Regular.easeInOut});   // DOES NOT WORK?   
        pictureTweenIn.onMotionFinished = function () { // When done fading
        _root.pause();  // Start pause() function
function pause() {
    myInterval = setInterval(pause_slideshow, pauseTime);
    function pause_slideshow() {
        clearInterval(myInterval);
        var pictureTweenOut:Tween = new Tween (picture_mc,"_alpha",Normal.easeOut,100,0,5,true);//WORKS!
        mx.transitions.TransitionManager.start(picture_mc, {type:mx.transitions.Iris, direction:mx.transitions.Transition.OUT, duration:3, easing:mx.transitions.easing.Regular.easeInOut});  //WORKS!     
        pictureTweenOut.onMotionFinished = function() {
            _root.randomImage();  // Call next randomImage()
If anyone can help me out this would be great!
Mikki65

Good question. Not sure about iDVD. But I know for a fact I can use random transitions within DVDSP. However, if I'm not mistaken in iDVD I may be limited to the same transition within any given slideshow. I know it's possible to bring in an album into iDvd. And I know it's possible to use KB effects. But let me do some more searching for you because I forgot the exact procedure/s. I'll post back here later.
In the meantime you may also wish to review these slideshow apps as well:
http://www.lqgraphics.com/software/phototomovie.php
http://www.boinx.com/fotomagico/overview/

Similar Messages

  • What is the best software for burning a large slideshow with 500 photos and music to DVD?

    What is the best software for burning a large slideshow with 500 photos and music to DVD?

    Are you talking about strictly burning an already put-together slideshow or composing one and then burning it?
    My all time favorite slide show maker is Photo to Movie; you can then burn it from there or get it into iMovie and/or iDVD for the "finishing" touch. My favorite burn software is Toast, although you can use iMovie, iDVD, and Finder as well.
    http://www.lqgraphics.com/software/phototomovie.php
    http://www.roxio.com/enu/products/toast/titanium/

  • File Adapter : read XML file with data validation and file rejection ?

    Hello,
    In order to read a XML file with the file adapter, I have defined a XSD that I have imported to my project.
    Now the File Adapter reads the file correctly but it does not give an error when:
    - the data types are not valid. Ex: dateTime is expected in a node and a string is provided
    - the XML file has invalid attributes.
    How can I manage error handling for XML files ?
    Should I write my own Java XPath function to validate the file after is processed ? (here is an example for doing this : http://www.experts-exchange.com/Web/Web_Languages/XML/Q_21058568.html)
    Thanks.

    one option is to specify validateXML on the partnerlink (that describes the file adapter endpoint) such as shown here
    <partnerLinkBinding name="StarLoanService">
    <property name="wsdlLocation"> http://<hostname>:9700/orabpel/default/StarLoan/StarLoan?wsdl</property>
    <property name="validateXML">true</property>
    </partnerLinkBinding>
    hth clemens

  • Working with random numbers and probabilities

    Hi again,
    i am working with random numbers at the moment.
    in the first step i do create a random number between 3 and 8 which is stored to a variable.
    set myVAR1 to random number from 3 to 8 as integer
    Lets assume myVAR1 is 5
    Now i want to select 5 numbers out of number pool from 1 to 8. Each number should be pickable only once.
    How would i realize that ?
    I guess i need some kind of pool, array and then select 5 out of this array, but i am not sure about the syntax.
    In best case i would like to add probabilities to those 8 numbers in the pool.
    i.e.
    1 (5%),2(5%),3(20%),4(10%),5(20%),6(10%),7(15%),8(15%)
    any help is heavily appreciated
    best regards
    fidel

    Hello fidel,
    For selecting unique numbers from given pool, try something like this.
    --SCRIPT 1
    (* select unique numbers from pool *)
    set pool to {1, 2, 3, 4, 5, 6, 7, 8} -- number pool
    set n to random number from 3 to 8 -- selection count
    return {n, random(n, pool)}
    on random(n, pool)
    set kk to {}
    repeat with i from 1 to count pool
    set end of kk to i
    end repeat
    set rr to {}
    repeat n times
    set k to kk's some integer
    set kk's item k to false
    set end of rr to pool's item k
    end repeat
    return rr
    end random
    --END OF SCRIPT 1
    For introducing selection weight of each number in the pool, you may try the below.
    --SCRIPT 2
    (* select unique numbers from pool with stochastic weights *)
    set pool to {1, 2, 3, 4, 5, 6, 7, 8} -- number pool
    set weights to {5, 5, 20, 10, 20, 10, 15, 15} -- selection weight
    set n to random number from 3 to 8 -- selection count
    return {n, random(n, pool, weights)}
    on random(n, pool, weights)
    script o
    property ww : weights
    property pp : {}
    property kk : {}
    property rr : {}
    repeat with i from 1 to count pool
    repeat my ww's item i times
    set end of my pp to pool's item i
    end repeat
    end repeat
    repeat with i from 1 to count my pp
    set end of my kk to i
    end repeat
    repeat n times
    set k to my kk's some integer
    set end of my rr to my pp's item k
    set j to 0
    set i to 1
    repeat with w in my ww
    set j to j + w
    if k > j then
    set i to j + 1
    else
    repeat with h from i to j
    set my kk's item h to false
    end repeat
    set i to 1
    exit repeat
    end if
    end repeat
    end repeat
    return my rr's contents
    end script
    tell o to run
    end random
    --END OF SCRIPT 2
    Hope this may help,
    H
    Message was edited by: Hiroto

  • User Registration in internet: Image with random digits and letters

    Hi All,
    as one want to register himselft on a website, last days he sees next to personal infomation fields an image with randon letters and digits. He must enter in a field manually what he sees, to let the web-application know that he is no robot.
    Question 1. What is the name of it?
    Question 2. Is there any free jars to generate this images?
    Thanks to all.

    > :whisles: what?
    Okey nothing happend
    Stop talking about that
    -- Raddadi, "Reply #10"�

  • Every time I export a slideshow with photos,music and movies to i tunes it quits, after waiting 3 or 4 hours it just quits

                 Question. I am unable to export a slideshow of photos, music and movies to i tunes. I wait hours watching the blue bar and it quits every time. Has anybody got a simple answer to this problem.

    SystemPreferences -> Energy Saver
    Set the Mac to never sleeep.
    Regards
    TD

  • Xml validation with schema, unbounded and any order of elements

    Hi
    I want to validate a xml file the user creates. I am currently using schema to do this. However there needs to be the possibility of a totally random mix of three different types of elements in a parent element. I couldn't find out how to do this, maybe it is not possible with schema? I thought I could look at the error message generated and ignore it if it was caused by one of the three elements mentioned above, but while the error message generated says which element is expected, it does not say which element caused the error.
    Thanks in advance for any help.

    Ruskin wrote:
    However there needs to be the possibility of a totally random mix of three different types of elements in a parent element. Can you take your example to make it more clear? Does all three elements mutually exclusive?

  • What is the best program to create a rehearsal dinner slideshow with audio, photos, and text?

    I am about to make a slideshow/movie for my sister's wedding that includes photos, music, and text/titles.  Is imovie the best for this? keynote? or perhaps some other app I am unaware of?  Thanks for your input!

    There are many ways to produce slide shows using iPhoto, iMovie or iDVD and some limit the number of photos you can use (iDVD has a 99 chapter (slide) limitation).
    If what you want is what I want, namely to be able to use high resolution photos (even 300 dpi tiff files), to pan and zoom individual photos, use a variety of transitions, to add and edit music or commentary, place text exactly where you want it, and to end up with a DVD that looks good on both your Mac and a TV - in other words end up with and end result that does not look like an old fashioned slide show from a projector - you may be interested in how I do it. You don't have to do it my way, but the following may be food for thought!
    Firstly you need proper software to assemble the photos, decide on the duration of each, the transitions you want to use, and how to pan and zoom individual photos where required, and add proper titles. For this I use Photo to Movie. You can read about what it can do on their website:
    http://www.lqgraphics.com/software/phototomovie.php
    (Other users here use the alternative FotoMagico:  http://www.boinx.com/fotomagico/homevspro/ which you may prefer - I have no experience with it.)
    Neither of these are freeware, but are worth the investment if you are going to do a lot of slide shows. Read about them in detail, then decide which one you feel is best suited to your needs.
    Once you have timed and arranged and manipulated the photos to your liking in Photo to Movie, it exports the file to iMovie  as a DV stream. You can add music in Photo to Movie, but I prefer doing this in iMovie where it is easier to edit. You can now further edit the slide show in iMovie just as you would a movie, including adding other video clips, then send it to iDVD 7, or Toast,  for burning.
    You will be pleasantly surprised at how professional the results can be!
    To simply create a slide show in iDVD 7 onwards from images in iPhoto or stored in other places on your hard disk or a connected server, look here:
    http://support.apple.com/kb/HT1089
    I haven't rried using Keynote, but that may also be a possibility.

  • Non-XML slideshow with AS3?

    Hello,
    I am looking for a way to run a slideshow without using XML, but controlling the entire show with AS3. I have all of the resources and code to run a dynamic show, but I am attempting to build this on Oracle's Content Management System – Stellent. Stellent does not allow us to access our external XML files or external assets such as images, js, swf, etc.
    The best way to go about building our slideshows for use with this CMS is to make them fully integrated in themselves. The downside, obviously is a larger filesize, but does anybody know how I would go about building this into itself, instead of externally?
    I would like to keep all functionality of the XML (specifically the links and timer)
    I would also like to keep the automatic button generation.
    If anybody can help me out with this it would be greatly appreciated. I have attached a file enclosing all of my working dynamic elements.
    Thank you!!
    Nick
    I am unable to load a zip file, but within the parent directory there should be an assets folder with an images folder inside.

    there must be some way to use external data to feed applications or that wouldn't be much of a cms.
    but if you want to keep all the data in swf, just hardcode all the data in your swf.  actually, with as3, you can copy and paste the contents of an xml file into flash and assign it to an xml instance.

  • Freezing iMac G5 with random red and black pixels, HELP!

    Hello all, and thanks in advance for helping. Here's my dilemma: I have a 20" iMac G5 that I have been using for 2-3 years or so. I recently started doing less work on it, as I replaced it with a new 24" iMac, so now it is used for one or two programs as well as occasional internet use. The system began to become slower, then finally started freezing between minimal tasks, even something as simple as pressing TAB in Safari, to trying to make a new folder in iPhoto. We restarted a bunch of times, and even tried clearing the PRAM. Now, it freezes during the start-up and there's little red and black boxes (small, maybe 4x4 or 6x6 worth of pixels) appearing randomly on the screen. When we are able to get the system to start, after one or two small tasks (opening the Address Book, or starting Safari) the program freezes, the pinwheel starts spinning, and I lose any chance to do anything more on the computer without powering down. Any advice or suggestions is appreciated! Thanks and I look forward to hearing from you.

    Hi PPRI and Miriam,
    Same deal going on here. It's been a while since I last posted - meaning no problems (which is goooood). So here is the issue:
    Would stop at blue screen before loading to main screen. Minor repair on HD volume, and now freezes on main screen very quickly, after booting past blue screen. A few wierd pixels are seen, which lets me know that it has frozen.
    Here's what I did:
    Hardware check with utility - no problems found, including logic board. From the manual, it seems like it is a software issue.
    As before, I repaired a few permissions and minor repair on HD volume. Still not working.
    Also opened up my vents and carefully vacuumed the dust - fans were spinning hard. Still, not working.
    My next step is to do an archive & install. I'm not sure how to backup my files, so this will have to suffice. This leads me to my questions:
    Q1 - How do you burn a backup, without an external HD and without being able to get past my main screen?
    Q2 - I noticed a post before this one, concerning the same issue, with Miriam posting on it. Is it overkill to post the same problem/question in another thread in order to maximize the chances for a good response? Any suggestions Miriam?
    Thank you for being so helpful. Apple community rocks!
    (PS - will let you know how the archive/install goes. If it doesn't work, I may pay to back my files on disc, and then I'll try reformatting HD altogether. Again, will let you know how it goes).
    (PS2 - Not sure if this matters, but my imac was one the ones that needed the free extended warranty for the capacitor issues - identified by the serial numbers. Doubt that's the problem since it was working fine after repairs).

  • PSE9 Can't create a slideshow with .jpg photo and .mov video

    Hi
    I don't find some informations how to make a slideshow where I can use my .jpg photos AND my .mov vidoes - both are coming from my Panasonic Digitalcamera.
    I bought PSE9 because everywhere is written that this is the right product to create a slideshow / Diashow... with photos and vidoes.
    But if I want use the "Diashow" I get the information that this is only for windows player and all my .mov videos which I can play in the PSE9 are NOT in the Diashow.
    Knows everyone how I can come further with my holidayvideo???
    Thanks in advance
    Herlinde

    guess PRE will work fine for your mov files. ...

  • XML slideshow with preloader bar

    I'm using the following code to create a simple slideshow:
    import fl.transitions.Tween;
    import fl.transitions.easing.*;
    import fl.transitions.TweenEvent;
    var my_speed:Number;
    var my_count:Number;
    var my_images:XMLList;
    var my_loaders_array:Array=[];
    var my_success_counter:Number=0;
    var my_playback_counter:Number=0;
    var my_slideshow:Sprite = new Sprite();
    var my_image_slides:Sprite = new Sprite();
    var my_preloader:TextField;
    var my_timer:Timer;
    var my_prev_tween:Tween;
    var my_tweens_array:Array=[];
    var my_xml_loader:URLLoader = new URLLoader();
    my_xml_loader.load(new URLRequest("theme1.xml"));
    my_xml_loader.addEventListener(Event.COMPLETE, preXML);
    next_mc.addEventListener(MouseEvent.CLICK, timerListener);
    prev_mc.addEventListener(MouseEvent.CLICK, goBack);
    function preXML(e:Event):void {
        var my_xml:XML=new XML(e.target.data);
        my_speed=my_xml.@SPEED;
        my_images=my_xml.IMAGE;
        my_count=my_images.length();
        loadImages();
        my_xml_loader.removeEventListener(Event.COMPLETE, preXML);
        my_xml_loader=null;
    function loadImages():void {
        for (var i:Number = 0; i < my_count; i++) {
            var my_url:String=my_images[i].@URL;
            var my_loader:Loader = new Loader();
            my_loader.load(new URLRequest(my_url));
            my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
            my_loaders_array.push(my_loader);
        my_preloader = new TextField();
        my_preloader.text="Loading";
        my_preloader.autoSize=TextFieldAutoSize.CENTER;
        my_preloader.x = (stage.stageWidth - my_preloader.width)/2;
        my_preloader.y = (stage.stageHeight - my_preloader.height)/2;
        addChild(my_preloader);
    function onComplete(e:Event):void {
        my_success_counter++;
        if (my_success_counter==my_count) {
            startShow();
        var my_loaderInfo:LoaderInfo=LoaderInfo(e.target);
        my_loaderInfo.removeEventListener(Event.COMPLETE, onComplete);
    function startShow():void {
        removeChild(my_preloader);
        my_preloader=null;
        addChild(my_slideshow);
        my_slideshow.addChild(my_image_slides);
        nextImage();
        my_timer=new Timer(my_speed*2000);
        my_timer.addEventListener(TimerEvent.TIMER, timerListener);
        my_timer.start();
    function nextImage():void {
        var my_image:Loader=Loader(my_loaders_array[my_playback_counter]);
        my_image_slides.addChild(my_image);
        my_image.x = (stage.stageWidth - my_image.width)/2;
        my_image.y = (stage.stageHeight - my_image.height)/2;
        my_tweens_array[0]=new Tween(my_image,"alpha",Strong.easeOut,0,1,1,true);
    function timerListener(e:Event):void {
        hidePrev();
        my_playback_counter++;
        if (my_playback_counter==my_count) {
            my_playback_counter=0;
        if(e.currentTarget is MovieClip)
            my_timer.reset();
            my_timer.start();
        nextImage();
    function goBack(e:MouseEvent):void
        hidePrev();
        my_playback_counter--;
        if (my_playback_counter<0) {
            my_playback_counter=my_count-1;
        nextImage();
        my_timer.reset();
        my_timer.start();
    function hidePrev():void {
        var my_image:Loader=Loader(my_image_slides.getChildAt(0));
        my_prev_tween=new Tween(my_image,"alpha",Strong.easeOut,1,0,1,true);
        my_prev_tween.addEventListener(TweenEvent.MOTION_FINISH, onFadeOut);
    function onFadeOut(e:TweenEvent):void {
        my_image_slides.removeChildAt(0);
    I would like change "loading" to a preloader bar. How can i insert a preloader bar in this code? I add this lines:
    var total:Number=this.stage.loaderInfo.bytesTotal;
        var loaded:Number=this.stage.loaderInfo.bytesLoaded;
        var percent:Number=loaded/total;[/b]
        my_preloader = new TextField();
        my_preloader.text=(Math.round(percent * 100)) + "%";
        my_preloader.autoSize=TextFieldAutoSize.CENTER;
        my_preloader.x = (stage.stageWidth - my_preloader.width)/2;
        my_preloader.y = (stage.stageHeight - my_preloader.height)/2;
        addChild(my_preloader);
    But only show a static "100%".
    Thanks guys!

    you'll need to change your basic setup from loading all those images in a for-loop to loading them sequentially.  so, to start:
    var loadIndex:int;
    function preXML(e:Event):void {
        var my_xml:XML=new XML(e.target.data);
        my_speed=my_xml.@SPEED;
        my_images=my_xml.IMAGE;
        my_count=my_images.length();
    loadIndex=0;
        loadImages();
        my_xml_loader.removeEventListener(Event.COMPLETE, preXML);
        my_xml_loader=null;
    function loadImages():void {
    var i:int=loadIndex;
            var my_url:String=my_images[i].@URL;
            var my_loader:Loader = new Loader();
            my_loader.load(new URLRequest(my_url));
            my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
    my_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
            my_loaders_array.push(my_loader);
    y_preloader = new TextField();
        my_preloader.x = (stage.stageWidth - my_preloader.width)/2;
        my_preloader.y = (stage.stageHeight - my_preloader.height)/2;
        addChild(my_preloader);
    function onProgress(e:ProgressEvent):void{
    var total:Number=e.bytesTotal;
        var loaded:Number=e.bytesLoaded;
        var percent:Number=loaded/total;[/b]
        my_preloader.text=100*loadIndex/my_count+(Math.round(percent * 100))/my_count + "%";
        my_preloader.autoSize=TextFieldAutoSize.CENTER;
    function onComplete(e:Event):void {
        loadIndex++;
        if (loadIndex==my_count) {
            startShow();
        var my_loaderInfo:LoaderInfo=LoaderInfo(e.target);
        my_loaderInfo.removeEventListener(Event.COMPLETE, onComplete);
    loadImage();

  • Can I create Ebooks with voice over and page transition with Creative Cloud? Which product?

    I have created little kids e-booklets with voice over in Powerpoint that I'd like to sell online. What I am missing is the slide transition effect on mobile and pads.
    Powerpoint only allows this function in a presentation/show format, but this doesn't work when I download the booklets on my phone. Does Adobe Creative Cloud offer this feature for my ebooks?
    Best regards,
    Ingrid Heyerdahl

    Hi Tommy,
    Yes, you can create a site in Muse and publish it to business catalyst. It will be in trial mode and your client will be able to view the site over the web.
    Cheers,
    Aishvarya Raj Rastogi

  • Slideshow with video files and still images ?

    Hi everybody,
    As from the title I would like to know if in Captivate 7 (or 8) there is a widget for playing several videos within a sort of slideshow.
    Any advise about to sort the problem will be highly consdired.
    Best regards

    Hi Rick,
    tx a lot for your kind advise.
    Following your advise I have just created a Slideshow project and inserted still images in it. One per slide.
    But I did not get what to do now... Would you please help me  going on trying your solution?
    (I think it is helpful to specify  that I would like to have a slideshow for videos, as an object within one slide, not along several slides)
    tx.

  • M8430f Desktop with random crashes and freezes

    Have had this problem for about a year now. Someone suggested checking the power supply, but I think it's pretty consistent. Sometimes the computer freezes all together, sometimes I get a blue screen... It could happen as often as twice per day, or as infrequently as once a month.
    I'm sure there is a memory dump file, but I don't know where it is or what I'd do with it. Someone also suggested Event Viewer, which I found, but again, didn't know what to do with.
    I think some memory or the hard drive could be bad. Possibly small sectors, so the crashes only happen when those sectors are accessed. I'll add that two weeks ago I did a clean install of Windows 7, so it's not the operating system.
    Any help is appreciated! I'm just trying to find out WHY it crashes.

    The symptoms that you describe could definitely be caused by a failing power supply unit (PSU).  It can cause many problems that don't appear to be related to the PSU.  Here is a guide to help you troubleshoot it. 
    Here is a guide to help you test the hard driver using the SMART diagnostics in the BIOS.
    Test the memory by removing all of the modules and replacing them one at a time and booting.  Place the single memory module in the slot closest to the Processor.
    Please click the "Thumbs Up+ button" if I have helped you and click "Accept as Solution" if your problem is solved.
    Signature:
    HP TouchPad - 1.2 GHz; 1 GB memory; 32 GB storage; WebOS/CyanogenMod 11(Kit Kat)
    HP 10 Plus; Android-Kit Kat; 1.0 GHz Allwinner A31 ARM Cortex A7 Quad Core Processor ; 2GB RAM Memory Long: 2 GB DDR3L SDRAM (1600MHz); 16GB disable eMMC 16GB v4.51
    HP Omen; i7-4710QH; 8 GB memory; 256 GB San Disk SSD; Win 8.1
    HP Photosmart 7520 AIO
    ++++++++++++++++++
    **Click the Thumbs Up+ to say 'Thanks' and the 'Accept as Solution' if I have solved your problem.**
    Intelligence is God given; Wisdom is the sum of our mistakes!
    I am not an HP employee.

Maybe you are looking for

  • Mapping Error in XI Configuration for MM-SUS Scenario

    Dear Experts, I am working on MM-SUS Classic Scenario, We have done all basic setting in SRM, ECC and SUS. Now we are configuring XI Scenario(Working on ESOA Architecture), while configuring XI Scenario, I follow the mention steps : I have started fr

  • Smart Card Omnikey 3121 (USB) on MacPro MAC OS 10.4.7 won´t work

    Hello, I´m trying to use an USB OMNIKEY Smartcard 3121 on my MacPro for email encryption in a Citrix Session. If a put the smartcard into the reader, the red light is flashing 1 sec only. The content from the smart card is not delivered into the Citr

  • Where's I can find Nokia 5530 Xpress Music?

    I'm very interesting with Nokia 5530 Xpress Music, but when I want to buy that phone, there's no one store at my place sell this phone. Please help me to find the store that sell this phone. Thank you.

  • Invalid number error with Form on table page

    We used the "Form on Table..." wizard to create a simple page to update the SCOTT.EMP table. When we submit the page we get the ORA-01722: invalid number error. When I view the data in the WWV_FLOW_DATA view in the FLOWS_010500 schema, I can see all

  • How do I have iTunes automatically download pre-orders?

    Hello, I selected "Automatically download pre-orders when available" under iTunes > Preferences > Store Preferences and yet the automatic download only happens if I re-open iTunes. If, for example, I open iTunes on Monday (and keep it running) and on