Ticket #2539 (s3c_implementation_ok feature)

Opened 7 years ago

Last modified 7 years ago

Implement fade in and out for frames

Reported by: deyan Owned by: meddle
Priority: major Milestone: Y1
Component: FRAMES Version: 2.1
Keywords: Cc:
Category: unknown Effort:
Importance: Ticket_group:
Estimated Number of Hours: 0 Add Hours to Ticket: 0
Billable?: yes Total Hours: 0
Analysis_owners: deyan Design_owners: meddle
Imp._owners: meddle Test_owners:
Analysis_reviewers: meddle Changelog: Changelog
Design_reviewers: pap Imp._reviewers: deyan
Test_reviewers: Analysis_score: 3.5
Design_score: 3 Imp._score: 3
Test_score: 0

Description (last modified by deyan) (diff)

Put attached buttons in appearance HUD right after the opacity slider. Put the following tooltip text.

  • "Fade in after the current timeline position"
  • "Fade out after the current timeline position"
  • "Reset visibility - remove effects and set the frame to be visible"

For now, these buttons should do the following

  • Fade in - from the beginning of the timeline to the current playhead, the opacity channel is set to 0. The value is incremented with 1 each 10 milliseconds (for one second, the values are changed from 1 to 100, the opacity is set to 100 for the rest of the channel, where values are 100 or 0)
  • Fade out - from the current playhead position and value, values are decremented to 0 each 10 milliseconds. The rest of the channel is set to 0.
  • Reset - sets the visibility to 100 for the whole channel

Attachments

fade_buttons.zip (7.4 KB) - added by deyan 7 years ago.
fade_wire.png (32.1 KB) - added by deyan 7 years ago.
fade.patch (28.0 KB) - added by meddle 7 years ago.
Design patch

Change History

comment:1 Changed 7 years ago by deyan

  • Type changed from bug to feature
  • Description modified (diff)

comment:2 Changed 7 years ago by deyan

  • Owner set to deyan
  • Status changed from new to s1a_analysis_started
  • Description modified (diff)

comment:3 Changed 7 years ago by deyan

  • Analysis_owners set to deyan

Changed 7 years ago by deyan

comment:4 Changed 7 years ago by deyan

  • Status changed from s1a_analysis_started to s1b_analysis_finished

Changed 7 years ago by deyan

comment:5 Changed 7 years ago by meddle

  • Design_owners set to meddle
  • Status changed from s1b_analysis_finished to s1c_analysis_ok
  • Analysis_reviewers set to meddle
  • Analysis_score changed from 0 to 3.5
  • Will try to implement it this way, or if it is easy with the ability to have more fade-in/fade-out effects in a channel.

comment:6 Changed 7 years ago by meddle

  • Owner changed from deyan to meddle

comment:7 Changed 7 years ago by meddle

  • Status changed from s1c_analysis_ok to s2a_design_started
  • Component changed from uncategorized to FRAMES

comment:8 Changed 7 years ago by meddle

  • Status changed from s2a_design_started to s2b_design_finished
  • In the AppearenceHud all the transparency related controls are placed in a new AlphaControlsContainer which is visible only if the component can be transparent.
  • There are three new LogicR3Buttons - FadeInButton, FadeOutButton and ResetButton.
    • The reset button is added after a small horizontal gap in the container (The AlphaControlsContainer is a JPanel with box layout).
  • There is new EventIds enumeration in the AlphaControlsContainer, which has a member for the three events, the three new buttons dispatch.
    • For the FadeInButton there is a 'FADE_IN' member.
    • For the FadeOutButton there is a 'FADE_OUT' member.
    • For the ResetButton there is a 'RESET' member.
  • The evens dispatched by the buttons are handled by the AppearenceHud's HudLogic. There handlers are:
    • 'ON_FADE_IN', handles the event with id 'FADE_IN', uses a new action FadeInAction to create a fade-in effect for the current FrameView from the current time.
      • The action creates a new channel from the current one, which alpha value from the beginning to the current position is set to 100.
      • Then from the current position to the current position + 1000 (one second), on every 10 milliseconds the alpha is set to be the current alpha minus 1.
      • Then from the current position + 1000 to the end the alpha value is set to 0.
      • The channel computed by the three steps above is set as the new 'KEY_ALPHA' of the current element.
    • 'ON_FADE_OUT', handles the event with id 'FADE_OUT', and uses a new action FadeOutAction to create a fade-out effect for the current FrameView from the current time.
      • The action creates a new channel from the current one. The current alpha becomes the alpha of the current position.
      • Then from the current position to the current position + 1000 (one second), on every 10 milliseconds the alpha is set to be the current alpha plus 1, if it is not greater than or equal to 100.
      • Then from the current position + 1000 to the end the alpha value is set to 100.
      • The channel computed by the three steps above is set as the new 'KEY_ALPHA' of the current element.
    • 'ON_RESET_FRAME_EFFECTS', handles the event with id 'RESET'. It uses AutoAction to set all the values of the visibility channel of the current frame to 0.

Changed 7 years ago by meddle

Design patch

comment:9 Changed 7 years ago by pap

  • Status changed from s2b_design_finished to s2c_design_ok
  • Design_reviewers set to pap
  • I think the design satisfies the requirements of the ticket in a good enough way :)
  • Be sure to cleanup the code before submitting for implementation review.

comment:10 Changed 7 years ago by meddle

  • Status changed from s2c_design_ok to s3a_implementation_started
  • Imp._owners set to meddle

comment:11 Changed 7 years ago by meddle

  • Status changed from s3a_implementation_started to s3b_implementation_finished
  • Skinned with the provided icons. The icons are placed in a new directory - 'appearanceHud' in the 'org.sophie2.main.app.halos' module.

comment:12 Changed 7 years ago by meddle

  • Status changed from s3b_implementation_finished to s3c_implementation_ok
  • Design_score changed from 0 to 3
  • Imp._score changed from 0 to 3
  • Imp._reviewers set to deyan
  • Committed in [10034].
  • The system out is cleared up.
Note: See TracTickets for help on using tickets.