PKJBBoa,mimetypeapplication/epub+zipPKJBB&META-INF/container.xml PKJBBz)a-META-INF/com.apple.ibooks.display-options.xml PKJBBX OEBPS/toc.ncx Victor et le diable Cover PKJBB UlOEBPS/styles.csshtml, body { width:450px; height:675px; margin:0; padding:0; border:0; outline:0; } #wrapper { position:absolute; left:0px; top:0px; width:450px; height:675px; overflow:hidden; margin:0; padding:0; } #main { position:absolute; top:0px; height:100%; margin:0; padding:0; } #main.left { left:0px; width:100%; } #main.right { left:-100%; width:200%; } div.selectionFrame { position:absolute; padding:0px; margin:0px; } div.item { padding:20px; margin:0px; border-width:0px; height:auto; white-space:pre-wrap; } img.item { padding:0px; margin:0px; border-width:0px; display:block; height:auto; } svg.item { padding:0px; margin:0px; border-width:0px; -webkit-tap-highlight-color:rgba(0,0,0,0); } video.item { padding:0px; margin:0px; border-width:0px; display:block; } audio { position:absolute; left:-200px; top:-100px; } .audioHotspot { visibility: hidden; } .audioPlayIcon { display:block; } .audioPauseIcon { display:none; } .active .audioPlayIcon { display:none; } .active .audioPauseIcon { display:block; } PKJBBz%%OEBPS/ibook.js/* * Based on Apple's iBook JS Framework * Stripped down and enhanced for Book Creator */ // Top-level object containing some core constants providing information about the environment. var iBook = {}; // Indicates whether the platform is an iBook.IS_IPAD. iBook.IS_IPAD = (navigator.platform == 'iPad'); // Indicates whether the platform supports touches. iBook.SUPPORTS_TOUCHES = ('createTouch' in document); // The interaction start event name iBook.START_EVENT = iBook.SUPPORTS_TOUCHES ? 'touchstart' : 'mousedown'; // The interaction move event name iBook.MOVE_EVENT = iBook.SUPPORTS_TOUCHES ? 'touchmove' : 'mousemove'; // The interaction end event name iBook.END_EVENT = iBook.SUPPORTS_TOUCHES ? 'touchend' : 'mouseup'; // The CSS selector for media elements. iBook.MEDIA_BASE_CSS_SELECTOR = '.ibooks-media'; // The HTML attribute for the audio source iBook.MEDIA_AUDIO_SOURCE_ATTRIBUTE = 'data-ibooks-audio-src'; // The HTML attribute for the audio reset on play iBook.MEDIA_AUDIO_RESET_ATTRIBUTE = 'data-ibooks-audio-reset-on-play'; // The HTML attribute for pausing iBooks read aloud iBook.MEDIA_PAUSE_READ_ALOUD_ATTRIBUTE = 'data-ibooks-pause-readaloud'; iBook.HYPERLINK_ATTRIBUTE = 'data-ibooks-link'; // CSS class name on active elements iBook.ACTIVE_CSS_CLASS = "active"; // Tap threshold value, in pixels iBook.TAP_THRESHOLD = 10; // TODO 2.4 - test this on a busy page with audio, video etc, multiple image links // TODO 2.4 - test for lots of different links e.g. pages, missing http://, phone no, email, iBooks store, iTunes. Write some test cases iBook.handleLink = function (e) { var link = "" + e.target.getAttribute(iBook.HYPERLINK_ATTRIBUTE); if (link.length > 0) { e.preventDefault(); window.location.href = link; } } /* ==================== BASE CONTROLLER ==================== */ function iBooksBaseController() { // Turn on for an onscreen log if (false) { var logArea = document.createElement("textarea"); logArea.id = "logArea"; logArea.style.position = "absolute"; logArea.style.bottom = "5px"; logArea.style.left = "5px"; logArea.style.width = "420px"; logArea.style.height = "150px"; logArea.style.zIndex = 4000; var body = document.getElementById("main"); body.appendChild(logArea); iBook.log = function (msg) { var logArea = document.getElementById("logArea"); if (!msg) msg = "null"; logArea.value = msg + "\n" + logArea.value; }; } else { iBook.log = function (msg) {}; } this.media = new iBooksMediaController(); // TODO 2.4 enable: this.link = new iBooksLinkController(); } // On DOM content loaded, instantiate the iBook base controller window.addEventListener("DOMContentLoaded", function() { window.iBookController = new iBooksBaseController(); }, false); /* ==================== ELEMENT PROTOTYPE ADDITIONS ==================== */ // Indicates whether the element has a given class name within its class attribute. Element.prototype.hasClassName = function (className) { return new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)').test(this.className); } // Adds the given class name to the element's class attribute if it's not already there. Element.prototype.addClassName = function (className) { if (!this.hasClassName(className)) { this.className = [this.className, className].join(' '); return true; } else { return false; } } // Removes the given class name from the element's class attribute if it's there. Element.prototype.removeClassName = function (className) { if (this.hasClassName(className)) { var curClasses = this.className; this.className = curClasses.replace(new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', 'g'), ' '); return true; } return false; } // Adds or removes the given class name from the element's class attribute based on a condition. If no // condition is set, the class will be added if it is not already present and removed if it is. Element.prototype.toggleClassName = function (className, condition) { if (condition == null) { condition = !this.hasClassName(className); } this[condition ? 'addClassName' : 'removeClassName'](className); } /* ==================== LINK CONTROLLER ==================== */ function iBooksLinkController() { var imgElements = document.documentElement.getElementsByTagName("img"); for (var i = 0, max = imgElements.length; i < max; i++) { var img = imgElements[i]; var link = "" + img.getAttribute(iBook.HYPERLINK_ATTRIBUTE); if (link.length > 0) { img.addEventListener("click", iBook.handleLink, false); } } } /* ==================== MEDIA CONTROLLER ==================== */ function iBooksMediaController() { this.allMedia = []; var audioElements = document.querySelectorAll(iBook.MEDIA_BASE_CSS_SELECTOR + "-audio"); if (audioElements) { for (var i = audioElements.length - 1; i >= 0; i--) { this.allMedia.push(new iBooksAudioController(audioElements[i])); } } var videoElements = document.documentElement.getElementsByTagName("video"); for (var i = 0, max = videoElements.length; i < max; i++) { this.allMedia.push(new iBooksVideoController(videoElements[i])); } } /* ==================== VIDEO CONTROLLER ==================== */ function iBooksVideoController(element) { this.media = element; this.media.addEventListener("play", this, false); } iBooksVideoController.prototype.pause = function() { this.media.pause(); } iBooksVideoController.prototype.handleEvent = function(event) { if (event.type == "play") { // iBooks will stop any other media automatically // but let's also call pause() on each item to reset the UI var allMedia = iBookController.media.allMedia; for (var i = 0, max = allMedia.length; i < max; i++) { if (allMedia[i].media != this.media) { allMedia[i].pause(); } } } } /* ==================== AUDIO CONTROLLER ==================== */ /** * This is called when we've found a valid iBooks audio HTML element. * * By default, audio will pause itself on touch, then resume playing when touched again. * To reset the audio track, include the HTML attribute iBook.MEDIA_AUDIO_RESET_ATTRIBUTE * and set the value to equal to true. * * For example: *
Play audio
* * @property {Object} element The required object to instantiate the iBooksAudioController */ function iBooksAudioController(element) { this.el = element; this.el.addEventListener(iBook.START_EVENT, this, false); this.src = this.el.getAttribute(iBook.MEDIA_AUDIO_SOURCE_ATTRIBUTE); this.resetAudioOnPlay = false; // For future maybe this.setAudio(); } // Creates a new audio element, set the source, then load it. iBooksAudioController.prototype.setAudio = function() { this.media = new Audio(); this.media.src = this.src; this.media.addEventListener("ended", this, false); document.documentElement.appendChild(this.media); } iBooksAudioController.prototype.play = function(){ var allMedia = iBookController.media.allMedia; for (var i = 0, max = allMedia.length; i < max; i++) { allMedia[i].pause(); } if (this.resetAudioOnPlay) { // Remove the existing element to prevent duplicates. document.documentElement.removeChild(this.media); this.setAudio(); } this.el.addClassName(iBook.ACTIVE_CSS_CLASS); this.media.play(); } iBooksAudioController.prototype.pause = function() { this.media.pause(); this.el.removeClassName(iBook.ACTIVE_CSS_CLASS); }; // When the audio ends, remove its active class iBooksAudioController.prototype.ended = function() { this.el.removeClassName(iBook.ACTIVE_CSS_CLASS); } /** * On touch start, add an event listener for touch end. Store the * touch start X, Y coordinates for later use. */ iBooksAudioController.prototype.touchStart = function(event){ this.startX = event.pageX; this.startY = event.pageY; window.addEventListener(iBook.END_EVENT, this, false); } /** * On touch end, remove our event listeners. Determine if the user action was a * tap, or gesture; if the action was a tap then add iBook.ACTIVE_CSS_CLASS * to the body class and prevent default. Otherwise, allow iBooks to handle the event. */ iBooksAudioController.prototype.touchEnd = function(event) { window.removeEventListener(iBook.END_EVENT, this, false); this.xTap = Math.abs(this.startX - event.clientX) < iBook.TAP_THRESHOLD || event.pageX == 0; this.yTap = Math.abs(this.startY - event.clientY) < iBook.TAP_THRESHOLD || event.pageY == 0; if (this.xTap && this.yTap) { event.preventDefault(); if (this.media.paused) this.play(); else this.pause(); } } // Event triage. iBooksAudioController.prototype.handleEvent = function(event) { switch(event.type){ case iBook.START_EVENT: this.touchStart(event); break; case iBook.END_EVENT: this.touchEnd(event); break; case "ended": this.ended(); break; } } PKJBBxOEBPS/page000.xhtml Cover Page
image
Victor et le diable
Auteurs : Clément Hovaere Antoine Doridot
Éditions Argote
PKJBBHOEBPS/page001.xhtml Page 1
image
Il marcha des jours durant, il se disait que s'il devait y avoir une pyramide quelque part, il la verrait forcément. Mais un jour, alors qu 'il commençait à se décourager Il trouva enfin ce fameux chemin. Fou de joie, il reprit des forces et se mit à courir. Atteignant le bout du chemin, il vit une grotte.Il ignorait le malheureux que cette grotte était habitée par un horrible dragon.
Il était une fois un jeune garçon qui s'appelait Victor . Il avait été envoyé par son seigneur Louis pour aller délivrer sa femme. En effet, elle avait été enlevée par le diable sur son île des enfers. Victor toujours fidèle à son seigneur avait accepté sans hésiter cette délicate mission. Sur le chemin, il vit un vieil homme qui combattait un monstre. Il l'aida à combattre cet horrible adversaire. En échange de ce service, le vieil homme lui donna une fourche avec des pouvoirs électriques uniques.
image
Il la traversa mais marcha sur une brindille et le dragon qui dormait se réveilla aussitôt et lui dit :" Que fais-tu là étranger ? Tu veux passer peut-être? Tu dois m'affronter pour cela et me battre. Si tu perds, tu perdras la vie."
Mais le vieil homme qui avait une longue expérience lui dit que pour aller voir le diable il fallait obligatoirement passer par le chemin de la pyramide. Victor se mit donc en quête de ce fameux chemin.
PKJBBK OEBPS/page002.xhtml Page 2
image
Il marcha des jours durant, il se disait que s'il devait y avoir une pyramide quelque part, il la verrait forcément. Mais un jour, alors qu 'il commençait à se décourager Il trouva enfin ce fameux chemin. Fou de joie, il reprit des forces et se mit à courir. Atteignant le bout du chemin, il vit une grotte.Il ignorait le malheureux que cette grotte était habitée par un horrible dragon.
Il était une fois un jeune garçon qui s'appelait Victor . Il avait été envoyé par son seigneur Louis pour aller délivrer sa femme. En effet, elle avait été enlevée par le diable sur son île des enfers. Victor toujours fidèle à son seigneur avait accepté sans hésiter cette délicate mission. Sur le chemin, il vit un vieil homme qui combattait un monstre. Il l'aida à combattre cet horrible adversaire. En échange de ce service, le vieil homme lui donna une fourche avec des pouvoirs électriques uniques.
image
Il la traversa mais marcha sur une brindille et le dragon qui dormait se réveilla aussitôt et lui dit :" Que fais-tu là étranger ? Tu veux passer peut-être? Tu dois m'affronter pour cela et me battre. Si tu perds, tu perdras la vie."
Mais le vieil homme qui avait une longue expérience lui dit que pour aller voir le diable il fallait obligatoirement passer par le chemin de la pyramide. Victor se mit donc en quête de ce fameux chemin.
PKJBBb ~~OEBPS/page003.xhtml Page 3