Ticket #2539 (s3c_implementation_ok feature)

Opened 10 years ago

Last modified 10 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 10 years ago.
fade_wire.png (32.1 KB) - added by deyan 10 years ago.
fade.patch (28.0 KB) - added by meddle 10 years ago.
Design patch

Change History

comment:1 Changed 10 years ago by deyan

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

comment:2 Changed 10 years ago by deyan

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

comment:3 Changed 10 years ago by deyan

  • Analysis_owners set to deyan

Changed 10 years ago by deyan

comment:4 Changed 10 years ago by deyan

  • Status changed from s1a_analysis_started to s1b_analysis_finished

Changed 10 years ago by deyan

comment:5 Changed 10 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 10 years ago by meddle

  • Owner changed from deyan to meddle

comment:7 Changed 10 years ago by meddle

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

comment:8 Changed 10 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 10 years ago by meddle

Design patch

comment:9 Changed 10 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 10 years ago by meddle

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

comment:11 Changed 10 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 10 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.