Wir sind schon recht amüsant und ab und zu auch
ein bischen gemein. Wir sind Feinheit. Danke!

Feinheit

22.01.08, Martin Bommeli

AS3: Papervision3d - erste Versuche

0 Kommentare

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 File

Hier 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.

0 Kommentare

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!

DC12_Printer

Partner & Partner
Xerox DC12 website
Bio Top 3 Website
FSC Website

11.01.08, Martin Bommeli

Flash: Actionscript 3 Compute-Spectrum

2 Kommentare

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

0 Kommentare

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!