Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-04-2008, 13:42   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2008
Ort: Bremen
Beiträge: 78
Farbwerte umrechnen: Hexadezimalwerte zu RGB

Hi,

ich bastle momentan an einen "Colorfader".

hier ist der code (ausm internet)
PHP-Code:
//
//// FIGLEAF SOFTWARE RGB to Hex
Math.rgbToHex = function(r,g,b){
    return(
r<<16 g<<b);
}
// PiXELWiT REVERSE ENGINEERING
Math.hexToRGB = function(hex){
    var 
red hex>>16;
    var 
grnBlu hex-(red<<16)
    var 
grn grnBlu>>8;
    var 
blu grnBlu-(grn<<8);
    return({
r:redg:grnb:blu});
}
//
//
// Check to see if an object2 has the same properties 
// with the same values as those in object1
Color.prototype.transObjSame = function (obj1obj2){
    for(var 
i in obj1){
        if(
obj1[i] != obj2[i]){
            return 
false;
        }
    }
    return 
true;
}
//
// PiXELWiT Color Prototypes
// http://www.pixelwit.com
//
// Just like setTransform but over a period of time
// func is called when desired transformation is reached
Color.prototype.fadeTransform = function(goalTransmilSecsfunc){
    if(
this.v){
        if( 
this.transObjSame(goalTransthis.v.goalTrans) ){
            
trace("Already going there");
            return;
// already heading to that trans obj so just wait
        
}else{
            
clearInterval(this.v.intrvl);
        }
    }
    var 
getTrans this.getTransform();
    if(
this.transObjSame(goalTransgetTrans)){
        
trace("already there");
        return;
// already at that trans obj so don't bother
    
}
    
this.= {};
    
this.v.goalTrans goalTrans;
    
this.v.milSecs milSecs;
    if(
typeof func == "function")this.v.func func;
    
this.v.startTime getTimer();
    
this.v.startTrans getTrans;
    
this.v.change = {};
    for(var 
i in goalTrans){
        
this.v.change[i] = goalTrans[i]-this.v.startTrans[i];
    }
    
this.transShift();
    if(
milSecs){
        
this.v.intrvl setInterval(this"transShift"1);
    }
}
Color.prototype.transShift = function(){
    
//trace("Running");
    
var ratio = (getTimer()-this.v.startTime)/this.v.milSecs;
    if(
ratio<1){
        var 
newTrans = {};
        for(var 
i in this.v.change){
            
newTrans[i] = this.v.startTrans[i]+ratio*this.v.change[i];
        }
        
this.setTransform(newTrans);
    }else{
        
this.setTransform(this.v.goalTrans);
        
clearInterval(this.v.intrvl);
        var 
myFunc this.v.func;
        
delete(this.v);
        if(
myFunc)myFunc();
    }
}
Color.prototype.fadeRGB = function(rgbmilSecsfunc){
    var 
goalTrans = {ra:0ga:0ba:0rb:rgb:gbb:baa:100ab:0};
    
this.fadeTransform(goalTransmilSecsfunc);
}
Color.prototype.fadeHex = function(goalHexmilSecsfunc){
    var 
goalRGB Math.hexToRGB(goalHex);
    
this.fadeRGB(goalRGB.rgoalRGB.ggoalRGB.bmilSecsfunc);
}
Color.prototype.fadeClearTrans = function(milSecsfunc){
    var 
goalTrans = {ra:100rb:0ga:100gb:0ba:100bb:0aa:100ab:0};
    
this.fadeTransform(goalTransmilSecsfunc);    
}
//
//
//
// Usage Example
//
//
// Some additional color cycling functions
function traceDone(){
    
trace("DONE FADING!");
}
//
function fadeRandHex(){
    var 
randHex Math.floor(Math.random()*0xFFFFFF);
    
myCO.fadeHex(randHexMath.floor(Math.random()*1000+100), fadeRandHex)
}
//
function fadeRandTransform(){
    var 
= {};
    
o.ra Math.floor(Math.random()*200-100);
    
o.ga Math.floor(Math.random()*200-100);
    
o.ba Math.floor(Math.random()*200-100);
    
o.rb Math.floor(Math.random()*512-256);
    
o.gb Math.floor(Math.random()*512-256);
    
o.bb Math.floor(Math.random()*512-256);
    
myCO.fadeTransform(o3000fadeRandTransform);
}
//
transArray = [];
transArray[0]={ra:-100rb:255ga:-100gb:150ba:0bb:0aa:100ab:0};
transArray[1]={ra:100rb:-61ga:-100gb:120ba:-100bb:255aa:100ab:0};
transArray[2]={ra:-100rb:139ga:10gb:0ba:-100bb:255aa:100ab:0};
transArray[3]={ra:100rb:255ga:100gb:0ba:-100bb:255aa:100ab:0};
lastTransArray 0;
function 
fadeArrayTrans(){
    
myCO.fadeTransform(transArray[lastTransArray], 2000fadeArrayTrans)
    
lastTransArray++;
    
lastTransArray%=transArray.length;
}
//
//
// Assign functions to buttons
CLEAR.onRelease = function(){
    
myCO.fadeClearTrans(1000);
}
/*RED.onRelease = function(){
    myCO.fadeRGB(255, 0, 0, 1000, traceDone);
}*/

ORANGIFY.onRelease = function(){
    
myCO.fadeTransform(transArray[0], 1000traceDone);
}
RANDHEX.onRelease fadeRandHex;
ARRAYTRANS.onRelease fadeArrayTrans;
RANDTRANS.onRelease fadeRandTransform;
//
//
//
RED.onRelease = function(){
    
myCO.fadeHex(0000002000traceDone);
}

myCO = new Color(SomeImageClip);
//
//
// 
das Problem ist bei den Funktionen Math.hexToRGB und Math.RGBToHex wird ein fehler ausgegeben und entferne ich das Math dann wird kein fehler suagegeben aber der Code funtioniert auch nicht.

Der code wurde in Flash mx oder älter geschrieben.

Würde man einen Hexwert in RGB umrechnen können wäre das alles kein Prob...

ich danke schonmal für die hilfe

mfG
zombienoxx ist offline   Mit Zitat antworten
Alt 03-04-2008, 13:49   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von zombienoxx Beitrag anzeigen
Würde man einen Hexwert in RGB umrechnen können wäre das alles kein Prob...
Kannste doch mit der Funktion aus dem Script:
PHP-Code:
hexToRGB = function (hex) {
    var 
red hex >> 16;
    var 
grnBlu hex-(red << 16);
    var 
grn grnBlu >> 8;
    var 
blu grnBlu-(grn << 8);
    return ({
r:redg:grnb:blu});
};
trace("r: "+hexToRGB(0xCA8724).r)
trace("g: "+hexToRGB(0xCA8724).g)
trace("b: "+hexToRGB(0xCA8724).b
Übrigens kannst du dir auch eine Tween-Klasse besorgen. Da gibt's dann auch so tolle Sachen wie colorTo().
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele