22.01.08, Martin Bommeli
AS3: Papervision3d - erste Versuche
Papervision3D ist eine Open Source 3d Engine auf Flash AS3 Basis. Anfang Dezember ist die alpha Version von Papervision3D 2.0 (Great White) rausgekommen...
Da ich in den letzten Tagen entlich mal AS3 "angeschaut" habe, dachte ich mir es kann ja nicht schaden mal n'bisschen mit Papervision rumzuspielen. Hier also mein erster Versuch :-) Mit Klick auf das Logo dreht es sich in seiner X oder Y Achse. Der Focus wird anhand der X Achse des Cursors berechnet...
bitte Flash Player installieren!
Beim zweiten Beispiel habe ich mal das gleiche Bitmap aus der Libary gezogen und per zufalls x, y und z Achse auf der Stage platziert. Mit Mausbewegung kann man auch einwenig im Raum rumsurfen.
bitte Flash Player installieren!
Download .fla FileHier ein Codeauszug des zweiten Beispiels:
import org.papervision3d.cameras.*;
import org.papervision3d.core.proto.*;
import org.papervision3d.core.*;
import org.papervision3d.events.*;
import org.papervision3d.scenes.*;
import org.papervision3d.materials.*;
import org.papervision3d.objects.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.render.*;
import org.papervision3d.view.*;
import caurina.transitions.Tweener;
var scene:Scene3D;
var camera:Camera3D;
var renderer:BasicRenderEngine;
var viewport:Viewport3D;
var p:Plane;
var bam:BitmapAssetMaterial;
initAll();
function initAll(){
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
init3D();
initObject();
}
function init3D(){
renderer = new BasicRenderEngine();
viewport = new Viewport3D(0, 0, true, true);
viewport.containerSprite.buttonMode = true;
addChild(viewport);
scene = new Scene3D();
camera = new Camera3D();
camera.x = 0;
camera.y = 0;
camera.z = -200;
camera.focus = 100;
camera.zoom = 1;
}
function initObject(){
bam = new BitmapAssetMaterial("cover");
bam.oneSide = false;
bam.smooth = true;
bam.interactive = true;
for(var i:uint=0; i<10; i++){
var p:Plane = new Plane(bam, 800, 166, 2, 2);
scene.addChild(p);
p.x = Math.random() * 777 - 222;
p.y = Math.random() * 777 - 222;
p.z = Math.random() * 777 - 222;
p.rotationY = Math.random() * 360;
p.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, showAni);
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, initRender);
stage.addEventListener(Event.MOUSE_LEAVE, renderAllStop);
}
function showAni(ev:InteractiveScene3DEvent) {
var newRotXPos:Number = ev.target.rotationX;
var newRotYPos:Number = ev.target.rotationY;
newRotXPos = (newRotXPos+360);
Tweener.pauseAllTweens();
Tweener.addTween(ev.target,{
rotationX: newRotXPos,
rotationY: newRotYPos,
time: 1.0,
transition:"easeOutQuart"
}
);
}
function initRender(e:Event):void{
stage.addEventListener(Event.ENTER_FRAME, renderAll);
}
function renderAllStop(e:Event):void{
stage.removeEventListener(Event.ENTER_FRAME, renderAll);
}
function renderAll(e:Event):void{
var newcamX = camera.x+Math.round((stage.mouseX-stage.stageWidth/2)/10);
var newcamY = camera.y+Math.round((stage.mouseY-stage.stageHeight/2)/10);
if(newcamX>-2000 && newcamX<2000){
camera.x = newcamX;
}
if(newcamY>-200 && newcamY<200){
camera.y = newcamY;
}
renderer.renderScene(scene, camera, viewport);
}
- Papervision Source
- Papervision Dokumentation
- Papervision Wiki
- Tweener Source
- Tweener Dokumentation
- AS3 Code-Snippets
- Papervision 360° Video
14.01.08, Boris Périsset
Feinheit runs now with Xerox DC12 and FSC-Paper.
Seit letzter Woch sind wir im neuen Büroraum eingerichtet und gleich mit dem ersten Tag den Drucker installiert. Eine noch rüstige DC12. Nicht mehr die jüngste, aber in einem Alter, in dem es sich lohnt Druck zu machen. Wir sind glücklich endlich durch zu starten ohne umher zu rennen, um anständige Ausdrücke für Präsentationen zu bekommen.Wir konnten den grossen Druckklotz zu super Konditionen von unseren grafischen Pflegeeltern beziehen. Feinheit bedankt sich herzlich bei Partner & Partner für ihr Angebot!

Partner & Partner
Xerox DC12 website
Bio Top 3 Website
FSC Website
11.01.08, Martin Bommeli
Flash: Actionscript 3 Compute-Spectrum
Ende 2006 habe ich für ein SFUG Meeting einen kleinen Equalizer entwickelt. Diesen habe ich wiedermal hervorgenommen und etwas erweitert.
bitte Flash Player installieren!
mp3 File: cgibbsallstateunion.mp3
Hier ein Codeauszug:
SWFObject Einbindung
var so = new SWFObject("soundvisualizer.swf","swfid","500","150","9");
so.addVariable("trackname","All State union");
so.addVariable("trackartist","C. Gibbs");
so.addVariable("autostart","0");
so.addVariable("file","test.mp3");
so.write("mp3_player");
AS3
/**************************************************
spectrum_show() - BytesArray auslesen und darstellen
****************************************************/
private function spectrum_show(e:Event):void{
var lineY:Number;
var gMC:MovieClip;
var ba:ByteArray = new ByteArray();
var bytesL:Number = snd.bytesLoaded;
var bytesT:Number = snd.bytesTotal;
var bytesP:Number = bytesL/bytesT*100;
txt1.autoSize = TextFieldAutoSize.RIGHT;
txt1.text = Math.round(bytesP)+"% geladen";
if (bytesP == 100) {
txt1.text = "";
}
txt1.x = stage.stageWidth-txt1.width;
gMC = spectrum_mc;
gMC.graphics.clear();
gMC.grundlinie_mc.width = gMC.fade_mc.width = stage.stageWidth;
lineY = gMC.grundlinie_mc.y;
SoundMixer.computeSpectrum(ba,true,1);
var i:uint;
for (i=0; i<512; i+=1) {
var a:Number = ba.readFloat();
var num:Number = a*lineY;
var lineW:Number = 5;
var lineX:Number;
lineX = i*stage.stageWidth/512;
//Balken nach oben
gMC.graphics.beginFill(0x4FA6FF,1);
gMC.graphics.drawRect(lineX,lineY,lineW,-num/2);
//Balken nach unten
gMC.graphics.beginFill(0x4FA6FF,2);
gMC.graphics.drawRect(lineX,lineY,lineW,num/2);
}
}
- Kompleter AS3 Code dieses Players
- SoundMixer Klasse in den livedocs
- computeSpectrum bei gotoAndLearn.com
- AS3 Sound Spectrum Contest
10.01.08, Moritz Zumbühl
Die ganze Story des iPhone - Impacts auf die von mir gehassten Telecoms
Persönlich bin ich ja nach der Suche nach meinem eigenen MOnopol. Ich will genau so eines wie es die Swisscoms, Oranges und AT&T's dieser Welt haben. Denn was wir fürs Telefonieren und Kommunizieren ausgeben ist für mich irgendwie immer wieder extrem überraschend, im Sinne - wie wir Konsumenten dumm sind und uns so viel Geld für das Plaudern aus den Taschen ziehen lassen.
Als Internet-Mensch bin ich vor allem Sauer auf die Telecoms weil sie jegliche sinnvolle Entwicklung von Handy-Applikationen mit ihren Preisstrukturen unmöglich machen. Vor 8 Jahren wurde mit WAP das mobile Internet versprochen, was dabei herauskam ist eine der grausamsten Technologien die es je gab im Computer-Buisness. Heute kostet der Transfer eines Megabytes auf ein Handy mit einem Basic-Abo der Swisscom 10 CHF. Ein Witz wenn man mich fragen würde.
Ich habe schon verschiedenste eigene Ideen oder Kundenanfragen für Handyprojekte abgeklärt und alle sind daran gescheitert weil die Telecoms ihre Netze schützen als seien sie der Gral der Gräler.
Letztes Jahr hat sich aber viel getan in diesem Gebiet und ich sehe das erste mal Licht in einem sehr dunklen Fleck meines Betätigungsfeldes. Wieso: Lest diesen Artikel vom Wired-Magazin. Eine sehr aufschlussreiche Erklärung und Erzählung über die Geschichte des iPhones und seines Impacts auf die Telecoms.
Alles wird besser und wie immer wird es in der Schweiz noch etwas länger dauern. Wann kriegen wir das iPhone endlich hier? LOS JETZT!
10.01.08, Thileeban Thanapalan
BIRD'S NEST - Herzog & de Meuron in China - der neue Schweizer Dokumentarfilm
Der Dokumentarfilm des Jahres kommt in die Schweizerkinos ;-)
BIRD'S NEST Webseite

