Home Blog erstellt am: : 12/03/08 Zuletzt aktualisiert : 03/01/10 18:47 / 126 veröffentlichte Einträge
 

V. Event Handler

5. Event Handler  (V. Event Handler) Verfasst: Sonntag, den 30. März 2008 10:09

http://www.mediaevent.de/javascript/event_handler.html ... Infos

kleines Beispiel : neues dashcode projekt und dann malen ... 3 Boxes mit irgendwelchen Farben...

und nur die main.js etwas ändern ...siehe Grafik

 

main.js:

 

// Function: load()
// Called by HTML body element's onload event when the web application is ready to start
//
function load()
{
    dashcode.setupParts();
 document.getElementById('box').onclick = tuNix;
 document.getElementById('box1').onclick = tuNix;
 document.getElementById('box2').onclick = tuNix;
  }

function tuNix(evt) {
 this.setAttribute('style','background: red');
}

man kann auch auch folgendes mit gleiher Wirkung benutzen :

document.getElementById('box1').onclick = function(evt) {
   this.setAttribute('style','background: red'); }

mit dieser Methode kann man immer nur ein event zum element  verbinden...

wenn ann mehere events mit einem element verbinden möchte muss man die event registirien..

document.getElementById('box').addEventListener ("click", tuNix, false);
oder mit

element.addEventListener('click', function(evt) {
   this.setAttribute ('style','margin: 1px;');
   }, false);

man kann diese auch wieder removen ...

element.removeEventListener(String eventType, 
                            Function handler, 
                            Boolean useCapture);
Permalink

5.0.1 keycode  (V. Event Handler) Verfasst: Sonntag, den 30. März 2008 11:19

Also hatte die alte Beta R1 vom Sim noch die falschen keycodes angezeigt wurde dieses so wie es aussieht in R2 behoben ... die Leertaste hat nun auch den keycode 32 ... daür schein das 3d canvas aus der vorherigen Rubrik keine Reaktion mehr ...hmmm

hier noch ein interesanter quellcode schnipsel:

<form>
<p>
<input type="text" name="act" id="act" size="40" value="Aktivier mich doch mal!" />
</p>
</form>
<div id="response"></div>
<script type="text/javascript" charset="utf-8">
<!--
function myFunc(evt) {
    evt = (evt) ? evt : ((window.event) ? window.event : "");
    var elem = (evt.target) ? evt.target : evt.srcElement;
    var response = document.getElementById ('response');
    response.innerHTML = '<span style="color: firebrick">Ereignis ' + evt.type
                       + '<br />Ereignis-auslösendes HTML-Element (target oder srcElement) ' + elem.tagName
                       + '<br />Maustaste (button) ' + evt.button
                       + '<br />Maustaste (which) ' + evt.which
                       + '<br />Strg oder Ctrl-Taste gedrückt (ctrlKey) ' + evt.ctrlKey
                       + '<br />Shift-Taste gedrückt (shiftKey) ' + evt.shiftKey
                       + '<br />Alt-Taste gedrückt (altKey) ' + evt.altKey
                       + '<br />Taste (keyCode) ' + evt.keyCode
                       + '<br />Position (clientX/clientY) ' + evt.clientX + '/' + evt.clientY
                       + '<br />Position (pageX/pageY) ' + evt.pageX + '/' + evt.pageY
                       + '<br />Position (screenX/screenY) ' + evt.screenX + '/' + evt.screenY
                       + '<br />Position (x/y) ' + evt.x + '/' + evt.y
                       + '</span>';
}

var action = document.getElementById ('act');
action.onclick = myFunc;
action.onfocus = myFunc;
action.onkeydown = myFunc;
-->
</script>

Permalink

5.0.2 fingertip x/y  (V. Event Handler) Verfasst: Sonntag, den 30. März 2008 22:36

neues projekt ;-) index.html erweitern das der body wie folgt aussieht: 

<body onload="load();">
 <div id="content">
 <div style="color:red;" id="response"></div> </div>
    <div apple-part="com.apple.Dashcode.part.text" class="apple-text apple-no-children" apple-default-image-visibility="hidden" apple-text-overflow="ellipsis" id="footer" apple-group="text"></div>

</body>
main.js erweitern:

function load()
{
    dashcode.setupParts();
 document.getElementById('content').onclick = tuNix;
}
function tuNix(evt) {
 this.setAttribute('style','background: blue');
 var response = document.getElementById('response');
 evt = (evt) ? evt : ((window.event) ? window.event : "");
 response.innerHTML = 'Type ' + evt.type + ' clientX ' + evt.clientX + ' clientY ' + evt.clientY ;
 }

Permalink

5.1 es bewegt sich  (V. Event Handler) Verfasst: Montag, den 31. März 2008 21:28

so nun habe ich von Apple erfahren das der Bug aus einer älteren Rubrik bei der Bewegung tasächlich da ist ... jedoch kann man als workaround das opasity weglassen dann klappt es ...

Achtung aber nur im SIM auf dem 1.1.4 spingt die Grafik einfach ... Im Sim macht die Sache aber eindruck !

http://izero.host4free.de/mxy2 (link für iphone SIM Safari!!!)

also ich hab dieses mal ein Active Indicator eingefügt (noch ohne Bewegung da ich die Parts nicht öffnen lasse wegen fehlermeldung!) ist aber egal was man hier nimmt ... am besten malt man sich ein Raumschiff ;-)))) lol der Shape ist nicht notwendig !

index.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd ">
<html>
<head>
    <title>mxy</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, minimum-scale=1.0">
    <link rel="apple-touch-icon" href="HomeScreenIcon.png">
    <link rel="stylesheet" href="main.css">
    <link rel="stylesheet" type="text/css" href="Parts/ActivityIndicator.css">
   
    <script type="text/javascript" src="Parts/setup.js" charset="utf-8"></script>
        <script type="text/javascript" src="main.js" charset="utf-8"></script>
    <script type="text/javascript" src="Parts/ActivityIndicator.js" charset="utf-8"></script>
</head>
<body onload="load();">
 <div id="content">
 <div apple-part="com.apple.Dashcode.part.ovalwebshape" apple-style="image-theme: 1; image-shape: 2; image-button-type: 3; image-opacity: 1.00; image-top-color: 1,1,1,1; image-bottom-color: 0.615400016,0.615400016,0.615400016,1; image-radius: -1,-1,-1,-1; image-border: 1; image-border-color: 0.529399991,0.529399991,0.529399991,1; image-border-width: 1; shine-strength: 0.90; shine-alpha-level: 0.67; shine-height: 0.50; glass-arc-height: 0.06; shadow-include-shadow: 0;" id="ovalShape">
</div>
 <img apple-part="com.apple.Dashcode.part.activityindicator" src="Images/ActivityIndicator.png" id="activityIndicator">
  </div>
 
 <div style="color:red;" id="response"></div> 

</body>
</html>

main.js:

//
// Function: load()
// Called by HTML body element's onload event when the web application is ready to start
//
function load()
{
    // dashcode.setupParts();
 document.getElementById('content').onclick = tuNix;
 var sicht = document.getElementById("activityIndicator");
    sicht.style.display = 'none';
 response.innerHTML = 'tip finger on screen'; 
}
function tuNix(evt) {
 this.setAttribute('style','background: blue');
 var response = document.getElementById('response');
 evt = (evt) ? evt : ((window.event) ? window.event : "");
 response.innerHTML = 'Type ' + evt.type + ' clientX ' + evt.clientX + ' clientY ' + evt.clientY ;
  sicht = document.getElementById("activityIndicator");
    sicht.style.display = 'block';
document.getElementById("activityIndicator").style.left= evt.clientX +"px"; /* x verschieben */
document.getElementById("activityIndicator").style.top= evt.clientY +"px"; /* y verschieben */
}

main.css:

body {
    margin: 0px;
    min-height: 356px;
    font-family: Helvetica;
    background-image: url(Images/backgroundStripes.png);
    background-repeat: repeat;
}

#footer {
    position: relative;
    font-family: 'Helvetica Neue';
    font-size: 10pt;
    text-overflow: ellipsis;
    overflow: hidden;
    color: rgb(76, 86, 108);
    text-shadow: rgb(255, 255, 255) 0px 1px 0px;
    -webkit-margin-top-collapse: separate;
    margin-top: 10px;
    width: 156px;
    margin-left: auto;
    margin-right: auto;
}

#content {
    position: relative;
    -webkit-margin-top-collapse: separate;
    -webkit-margin-bottom-collapse: separate;
    min-height: 326px;
    height: auto;
    width: auto;
}

#activityIndicator {
-webkit-transition-property: left,top;
-webkit-transition-duration: 3s,3s;
    width: 32px;
    height: 32px;
    display: block;
    -webkit-margin-top-collapse: separate;
    position: absolute;
    right: auto;
    bottom: auto;
    margin-top: 0px;
    top: 254px;
    left: 232px;
}

#response {
    margin-top: 0px;
    -webkit-margin-top-collapse: separate;
}

#ovalShape {
    width: 34px;
    border-top-width: 0px;
    border-right-width: 1px;
    border-bottom-width: 0px;
    border-left-width: 1px;
    -webkit-border-image: url(Images/ovalShape.png) 0 1 0 1 stretch stretch;
    margin-top: 0px;
    -webkit-margin-top-collapse: separate;
    height: 34px;
    position: absolute;
    right: auto;
    bottom: auto;
    left: 137px;
    top: 146px;
}

____________

Nachtrag: leider konnte ich bis jetzt keinen Weg finden die Coordinaten in der Bewegung auszulesen , so dass z.B. Kollisionen mit anderen Grafiken schwer zu berechnen wären....

evt. funktioniert das wenn die Bewegung doch herkömlich programiert wird oder mit canvas

____

Noch was ... die canvas im dashcode manuell einfügen und den Malkasten stecken lassen .. sonst codes der editor uns alles platt ....

Permalink

5.2 canvas test  (V. Event Handler) Verfasst: Donnerstag, den 03. April 2008 10:37

<html>
  <head>
    <title>Canvas Test</title>
    <script type="application/x-javascript">
      var files = ["http://libpng.org/pub/png/img_png/stefan_pal_rgba.png",
                   "http://libpng.org/pub/png/img_png/RedbrushAlpha-0.25.png"];
      var fileIndex = 0;
      var img = new Image();
      img.src = files[fileIndex];
      function draw() {
        var ctx = document.getElementById('canvas').getContext('2d');
        ctx.save();
        ctx.translate(Math.random()*400 + 100, Math.random()*400 + 100);
        var scale = Math.random()*2;
        ctx.scale(scale, scale);
        ctx.rotate(Math.random()*360);
        ctx.drawImage(img, 0, 0);
        ctx.restore();
        setTimeout(draw, 200);
      }
      function switchImage() {
        fileIndex = (fileIndex+1)%files.length;
        img.src = files[fileIndex];
      }
    </script>
  </head>
  <body onload="draw();" onclick="switchImage();">
    <h1>Canvas</h1>
    <canvas id="canvas" width="600" height="600"/>
  </body>
</html>
___________________

neues Proj. .. Fuss und content löschen und html Inhalt kompl in der index.html austauschen ... fertig

tzja die tatsache das es im dashcode auch nach dem stopen des Programmes immernoch im editor läuft finde ich etwas erschreckend ....

_____________

läuft auch erstaunlicherweise auf dem 114 phone gut

http://izero.host4free.de/ctest/

der IE schnallt das natürlich nicht !

Info Link zu Canvas Allgemein:

http://entwickler.de/zonen/portale/psecom,id,99,news,41454,p,0.html

 

Permalink