Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions 02-oop-inheritance/fun.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
class movie { // Making class movie

constructor(title, year, duration){
this.title = title;
this.year = year;
this.duration = duration;
}



play(title){
var playVideo = document.getElementById(title);
playVideo.reset();
playVideo.play();
}
pause(title){
var pauseVideo = document.getElementById(title);
pauseVideo.pause();
}
resume(title){
var resumeVideo = document.getElementById(title);
resumeVideo.play();
}
}

function playVideo(data) {
var myVideo = document.getElementById(data);
myVideo.play(data);
}

function pauseVideo(data) {
var myVideo = document.getElementById(data);
myVideo.pause(data);
}

function resumeVideo(data) {
var myVideo = document.getElementById(data);
console.log(myVideo);
myVideo.resume(data);
}


// instance of objects movie.
// Not sure what do you mean when you say "play with them in the console."

let StarWars = new movie("Star Wars - A new hope", "1977", "2h 5m");
let Interstellar = new movie("Interstellar", "2014", "2h 49m");
let TheGodfather = new movie("The Godfather", "1972", "2h 58m");
console.log(StarWars);
console.log(Interstellar);
console.log(TheGodfather);

98 changes: 98 additions & 0 deletions 02-oop-inheritance/fun2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
class EventEmitter {

constructor() {
this.listeners = {

}
}
on(event, listener) {
if ('event' in this.listeners) {
this.listeners[event].push(listener);
}
this.listeners[event] = [];

}
emit(event) { // don't sure what to do here

console.log(this.listeners[event]);
/*this.listeners[event].forEach(function(fn){
console.log("executing a listener");
fn.call(window.event);
})*/
}
off(event, listener) {
if ('event' in this.listeners){
var del = this.listeners[event].pop();

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si hay varios listener registrados para el mismo evento, esto no sabe cuál elimina, solo saca de a uno

console.log("Deleted", del);
}
else {
console.log("empty");
}
}
}


class movie extends EventEmitter {
constructor(title, year, duration) {
super();
this.title = title;
this.year = year;
this.duration = duration;
}

play() {
console.log("playing ", this.title);
super.emit('play');
}
pause() {
super.emit('pause');
}

resume() {
super.emit('resume');
}

}

// functions for play pause and resume

function playVideo(data){
var video = document.getElementById(data);
video.play();
if(data.value=="Resume")
{
data.value="Play";
}
}

function pauseVideo(data) {
var myVideo = document.getElementById(data);
myVideo.pause(data);
}

function resumeVideo(data) {
var myVideo = document.getElementById(data);
console.log(myVideo);
myVideo.resume(data);
}

var myEventEmitter = new EventEmitter();
myEventEmitter.on('Play Event', playVideo);

var firstEventButton = document.getElementById("firstEvent");
firstEventButton.addEventListener('click', function(){
myEventEmitter.emit('Play Event');
},false);
console.log(myEventEmitter);



// instances

var StarWars = new movie("Star Wars - A new hope", "1977", "2h 5m");
var Interstellar = new movie("Interstellar", "2014", "2h 49m");
var TheGodfather = new movie("The Godfather", "1972", "2h 58m");
console.log(StarWars);
console.log(Interstellar);
console.log(TheGodfather);

27 changes: 27 additions & 0 deletions 02-oop-inheritance/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<!doctype html>

<html lang="en">
<head>
<meta charset="utf-8">

<title>Topic 02</title>
<meta name="description" content="Exercises">
<meta name="author" content="Martin Aranda">
</head>

<body>


<section>
<div>
<video id="Star Wars" src="video_1.mp4">
</video>
<input id ="firstEvent" type="button" onclick="playVideo('Star Wars')" value="Play" ></input>
<input type="button" onclick="pauseVideo('Star Wars')" value="Pause"></input>
<input type="button" onclick="resumeVideo('Star Wars')" value="Resume"></input>
</div>
</section>

<script src="fun2.js"></script>
</body>
</html>
Binary file added 02-oop-inheritance/video_1.mp4
Binary file not shown.