Advanced Interactive Design - Task 3: Final Project

18/11/2025 - 11/11/2025 / Week 9 - Week 16

Aquela Zefanya Soares / 0374377

Advanced Interactive Design / Bachelor of Design (Honours) in Creative Media / Taylor's University


TABLE OF CONTENTS


LECTURES

5 pages practice

Fig 1.1 5 pages practice

In this lecture, we were taught how to use an action layer and the wizard templates. To ensure that it works correctly, there must be a separate layer dedicated to actions. This layer needs to be placed on the exact frame where the action should occur. Finally, instance names or labels must be added to make them detectable by the wizard and to make it easier to track the frames.

GSAP practice

In this lecture, we learned how to use GSAP to make animations and page transitions easier to code. First, we downloaded the GSAP file. Then, in Adobe Animate, we went to the Actions layer and added the gsap.min.js file using the Include option in the global actions panel.

Fig 1.2 Importing GSAP file to Animate

After that, we need to add a simple GSAP command in the action frame, such as gsap.to(this.mcScreen, { x: -1024 });. The x value controls the horizontal movement of the screen. The number depends on the width of the stage, so it needs to be adjusted based on the screen size of the project.

Fig 1.3 Adding pages

The next step was to create the pages and navigation buttons. After that, we added a new action panel and inserted the JavaScript code, 

this.btn_orange.addEventListener("click", orangescreen.bind(this));

function orangescreen()

{

// Start your custom code

// This example code displays the words "Mouse clicked" in the Output panel.

gsap.to(this.mcScreen, { x: 2048});

// End your custom code

}

making sure to change the screen and button names according to the elements we created. Once everything was set up, the navigation was able to function properly.


INSTRUCTION

<iframe src="https://drive.google.com/file/d/1qg8pJCAsxm8aEWvJKnaWURJp0xOy-u2J/preview" width="640" height="480" allow="autoplay"></iframe>


PROGRESS

For the progress, I will divide it based on pages and then explain some elements that are used on every page.

Index

Loading screen

Fig 2.1 Loading screen

For the loading screen, I used a classic tween to animate the loading bar and then added a fade transition to the landing page.

Landing page

For the landing page, I mostly copied and pasted the layout directly from my prototype.

Fig 2.2 Landing page

For the button, I added a line under the text to show that it is clickable, and used a lighter color for the hover state.

Fig 2.3 Let's go button hover

Homepage - start

I split the homepage into two sections: a Start section that gives general information about Max, and a Max section that introduces his appearance and the car he is known for in public.

Fig 2.4 Homepage - start

For the Start button, I applied a hover effect that slightly zooms in and darkens the button.

Fig 2.5 Start button, hover vs normal

Homepage - max

For the Max homepage, as mentioned earlier, I only briefly introduced his biodata, his appearance, and the car he currently uses.

Fig 2.6 Homepage - max

I also used his picture as a navigation element to connect to the next page, which is the About page. The same hover effect as the Start button was applied.

2.7 Max button, normal vs hover

For the home navigation button, I used his logo. To indicate the current page to users, I changed the button color to an aqua/turquoise tone by adjusting the tint.

2.8 "Home" navigation

Transition used across all pages except the homepage/index

The section name is quite self explanatory. I applied a fade transition to all pages except the homepage.

2.9 Fade transition

Initially, I forgot to add transitions after all the pages were completed. To fix this, I moved the finished version to frame 6.  Then, I duplicated the layers that required a fade transition and placed them on frames 1 and 5. I set the alpha to 0 on frame 1, and added a classic tween between the frames. This completed the transition.

About

For the About page, I mostly copied and pasted the content from my prototype.

2.10 About page

Career Timeline

For the career timeline, I mostly kept the content from the prototype, but changed the car transition from a parallax slide in Figma to a regular slide.

2.11 Career timeline page

I labeled each card’s content to make it easier to tell them apart. To make the next slide transition work, I used the following JavaScript code:

Next frame:

_this.btnnext.on('click', function () {

    _this.gotoAndStop(_this.currentFrame + 1);

});

Previous frame:

this.btnprev.on('click', function () {

    _this.gotoAndStop(_this.currentFrame - 1);

});

2.12 Career timeline - frames

For the button, I made the hover state slightly darker than the original color.

2.13 Next button, normal vs hover

Achievements

Again, I did not make many changes to the Achievements page. The main change was moving the achievement list from beside the button to being revealed after clicking the image/button of Max holding the trophy, which then displays all of his accomplishments in his F1 career. For the hover effect, I used the same interaction as the Max button on the homepage.

2.14 Achievements page

For this section, I applied the same method as the career timeline. For the button interaction and JavaScript code, please refer to the explanation above.

2.15 Achievement list page

Audio

For the audio, I wanted it to be muted by default. When the user clicks the unmute button, the audio plays and the icon changes from mute to sound on. I will explain this in two sections.

I used two audio files:

BGM: Synthwave Retro 80s Music | Royalty-free Music - Pixabay

Mouse click sound: https://freesound.org/people/Pixeliota/sounds/678248/

Icons

For the icons, I designed them in Figma first, then copied them as PNG files and pasted them into Adobe Animate. I made two icons: a muted and a sound on version.

2.16 Audio icons

Javascript

var _this = this;

var music = null;

var isMuted = true;


Sound on button 

_this.btnSoundOff.addEventListener("click", function () {

Click sound

    createjs.Sound.play("click");

Background music

    if (!music) {

        music = createjs.Sound.play("bgm", { loop: -1 });

    }

    music.paused = false;

    isMuted = false;

    _this.btnSoundOff.alpha = 0;

    _this.btnSoundOn.alpha = 1;

});


Sound off button

_this.btnSoundOn.addEventListener("click", function () {

Play click sound

    createjs.Sound.play("click");

    if (music) {

        music.paused = true;

    }

    isMuted = true;

    _this.btnSoundOn.alpha = 0;

    _this.btnSoundOff.alpha = 1;

});

New navigation JS

For the navigation, I initially used the template/wizard option, but everytime I navigated to another page, it opened a new tab. To avoid this, I tweaked the Javascript so that when switching pages, the content stays within the same tab.

The new version that I used: 

Home: 

_this.btnhome.on('click', function () {

    window.location.href = 'index.html';

});

About:

_this.btnabt.on('click', function () {

    window.location.href = 'about.html';

});

Career timeline:

_this.btncareer.on('click', function () {

    window.location.href = 'careertimeline.html';

});

Achievements:

_this.btnachievements.on('click', function () {

    window.location.href = 'achievements.html';

});

The old one (from wizard): 

_this.btnhome.on('click', function (){  

    window.open('index.html', '_blank'); 

});


From what I learned, using window.location.href = 'index.html' keeps the navigation in the same tab, which is what I wanted, instead of window.open('index.html', '_blank'), which opens a new tab and clutters the browser.

FINAL TASK

Netlify link: https://advinteractivefinal.netlify.app/

note: it takes a long time to load, and to play the audio you need to click the unmute button.

File project: https://drive.google.com/drive/folders/15DzfKhnVqAvY1W_ZJ9oEJ8x8iYjA8t48?usp=sharing

FEEDBACK

Week 10

This week, I showed my index/homepage progress to Mr. Shamsul, and he said that everything needs to be resized since it looks too big.

Week 11

Mr. Shamsul advised me to use separate files for each page to prevent issues in case the file gets corrupted.

Week 13

Mr. Shamsul helped fix my code since my navigation could not redirect to another page, and he suggested using frame labels instead of frame numbers to avoid the same issue.

REFLECTION

This module has taught me how to use a new app (Adobe Animate) and helped me improve my understanding of Javascript. I was able to learn the app by practicing during lectures and by exploring it on my own. I enjoyed the learning process in Adobe Animate because I think it's an interesting app that allows us to do many things. However, it requires a lot of exploration, as some of the shortcuts are different from other Adobe applications (as usual, lol).

Although I faced quite a few difficulties while using the app, I'm satisfied with how the final result turned out, even if it's simple. I also like how the app provides templates or wizards that can help when working with Javascript. However, to make the website fully functional, I still needed to do additional research and make changes, as I couldn't rely entirely on the templates. The audio feature in the app was also confusing at first, but I eventually managed to solve the issue.

Overall, I feel that Adobe Animate can complicate certain processes, but at the same time, it helped me gain a better understanding of Javascript. Because of that, the learning experience is really valuable to me.


Comments

Popular Posts