PK ːHoa, mimetypeapplication/epub+zipPK ːH| META-INF/container.xml
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()
{
// or
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)
{
// iBook.log("adding image click:" + link);
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)
{
// iBook.log("iBooksAudioController construction:" + 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)
{
// iBook.log("iBooksAudioController.prototype.touchStart");
this.startX = iBook.getEventClientX(event);
this.startY = iBook.getEventClientY(event);
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)
{
/*
iBook.log("iBooksAudioController.prototype.touchEnd");
iBook.log("event.pageX=" + event.pageX);
iBook.log("event.clientX=" + event.clientX);
if (event.changedTouches && event.changedTouches.length == 1)
iBook.log("event.changedTouches.item(0).clientX=" + event.changedTouches.item(0).clientX);
*/
window.removeEventListener(iBook.END_EVENT, this, false);
this.xTap = (Math.abs(this.startX - iBook.getEventClientX(event)) < iBook.TAP_THRESHOLD);
this.yTap = (Math.abs(this.startY - iBook.getEventClientY(event)) < iBook.TAP_THRESHOLD);
if (this.xTap && this.yTap) {
event.preventDefault();
if (this.media.paused)
this.play();
else
this.pause();
}
}
// Event triage.
iBooksAudioController.prototype.handleEvent = function(event)
{
// iBook.log("iBooksAudioController.prototype.handleEvent:" + event.type);
switch(event.type){
case iBook.START_EVENT:
this.touchStart(event);
break;
case iBook.END_EVENT:
this.touchEnd(event);
break;
case "ended":
this.ended();
break;
}
}
PK ːH; OEBPS/page000.xhtmlCover Page Eigene Texte überarbeitenDeutsch.PK ːHR OEBPS/page001.xhtmlPage 1 Lese deinen Text vor und nehme ihn auf!Füge deine Aufnahme hier ein:
Überarbeite nun deinen Text, indem du ihn dir noch einige Male anhörst. Achte dabei auf die Dinge, der folgenden Seiten. Bearbeite jeweils Seite für Seite und höre deinen Text jeweils einmal an.
Notizen:
Hast du eine Einleitung, einen Hauptteil und einen Schluss?Mache dir jedes Mal Notizen.PK ːH7=O OEBPS/page002.xhtmlPage 2 Lese deinen Text vor und nehme ihn auf!Füge deine Aufnahme hier ein:
Überarbeite nun deinen Text, indem du ihn dir noch einige Male anhörst. Achte dabei auf die Dinge, der folgenden Seiten. Bearbeite jeweils Seite für Seite und höre deinen Text jeweils einmal an.
Notizen:
Hast du eine Einleitung, einen Hauptteil und einen Schluss?Mache dir jedes Mal Notizen.PK ːH_. . OEBPS/page003.xhtmlPage 3 Notizen:
Hast du an unterschiedliche Satzanfänge gedacht?Notizen:
Kontrolliere deinen Text auf Adjektive (Wiewőrter)!PK ːH:/ / OEBPS/page004.xhtmlPage 4 Notizen:
Hast du an unterschiedliche Satzanfänge gedacht?Notizen:
Kontrolliere deinen Text auf Adjektive (Wiewőrter)!PK ːHyƣ OEBPS/page005.xhtmlPage 5 Notizen:
Achte dieses Mal auf Wortwiederholungen.Notizen:
Hast du an alle W-Fragen gedacht? PK ːH{ OEBPS/page006.xhtmlPage 6 Notizen:
Achte dieses Mal auf Wortwiederholungen.Notizen:
Hast du an alle W-Fragen gedacht? PK ːH OEBPS/page007.xhtmlPage 7 Schreibe nun noch einmal deinen Text noch einmal verbessert auf. Schreibe ihn in dein Heft und denke dabei an deine Notizen. PK ːHź
OEBPS/page008.xhtmlPage 8 Schreibe nun noch einmal deinen Text noch einmal verbessert auf. Schreibe ihn in dein Heft und denke dabei an deine Notizen. PK ːHU 1 OEBPS/CI_FED8D070-77ED-4BDD-8DDF-0F82D7BF60C8.pngPNG
IHDR ]Dz sBIT|d :IDATx1r[Iz]-nUK`O \>ĩ 1Ҝˉ#q*fHCF8# R s_ x*_%$<