---
title: "ändra alpha med as"
type: "forum-thread"
url: "https://www.webforum.nu/amne/flash/97740-ändra-alpha-med-as"
topic: "Flash"
topic_url: "https://www.webforum.nu/amne/flash"
author: "matthew"
published: "2004-02-19T16:46:14.000Z"
updated: "2004-02-24T18:57:39.000Z"
replies: 7
views: 293
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/flash/97740-ändra-alpha-med-as"
---

# ändra alpha med as

## #1 — matthew, 2004-02-19T16:46Z

Hejsan,
jag undrar hur jag gör en snygg fade på ett mc med actionscript?
Är helt ny på detta! men har iaf gjort ett försök.

```php
function fadeOut()
{
	if(targetClip._alpha<=0)
	{
		return true;	
	}
	else
	{
		x=(targetClip._alpha) -1;
		targetClip._alpha=x;
		setInterval(fadeOut(), 1000);
		status = "Status: " + targetClip._alpha;
	}
}

btn_next.onRelease = function() 
{
		if(fadeOut())
			displayObject(getNext());
};
```

 

Har också provat med setInterval(fadeOut(), 1000) i det rekursiva anropet.Bilden fadas direkt, så någon nertoning syns inte.vad kan jag göra?

mvh,
matt

Permalänk: https://www.webforum.nu/p/97740

## #2 — MickeA.com, 2004-02-20T07:31Z

Jag gjorde följande en gång:

```php
mitt_mc.onEnterFrame = function(){
mitt_mc._alpha++;
     
     if(mitt_mc._alpha >= 100){
          trace("Klar...");
     }
}
```

Sen är det att rekommendera att i ifsatsen när det är klart så att säga, att du då tar bort onEnterframe funktionen.

Det här är ytterliggare ett sätt, hur processorvänligt vet jag inte hur det är, men det är ett senare problem ;)

Permalänk: https://www.webforum.nu/p/1280304

## #3 — Kalliban, 2004-02-23T11:54Z

annars är nog en prototype att föredra.

```php
// speed = hastigheten i millisekunder
// dec = hur mycket som ska "försvinna" åt gången
MovieClip.prototype.fadeOut = function(speed, dec) {
	var alpha = 100;
	fadeIt = function() {
		if (_alpha<=0) {
			clearInterval(itv);
		} else {
			alpha -=  dec;
			_alpha = alpha;
		}
	};
	itv = setInterval(fadeIt, speed);
};
// aktivera funktionen på vilket mc som helst, t.ex.
hello.fadeOut(50, 10);
// 50 = speed  och  10 = dec
```

Permalänk: https://www.webforum.nu/p/1284860

## #4 — matthew, 2004-02-23T18:01Z

Tack för ditt svar!!

men varför ska jag använda prototype?
Har ingen aning om vad det är!

Har skrivit om koden nu, fade functionen verkar fungera fast nu är det något annat som blir fel.

När jag en gång tryckt fram en bild så fadas den fram och tillbaka hela tiden. Den slutar aldrig... Kanske en logik miss men det tror jag inte.

```php
function init(success) 
{ 
    if(success) 
    { 
        rootHandler=this.firstChild; 
        currentObject = rootHandler.firstChild; 
         
        if(currentObject != null) 
            displayObject(currentObject); 
    } 
} 

function displayObject(obj) 
{ 
    if(fadeOut(); 
        targetClip.loadMovie(obj.attributes.imgURL); 

    if(fadeIn(); 
     
    btn_next._visible = (currentObject.nextSibling != null)?1:0; 
    btn_previous._visible = (currentObject.previousSibling != null)?1:0; 
} 

function fadeOut() 
{     
    return x =(targetClip._alpha--<=0)?true:(setInterval(fadeOut,600)); 
} 

function fadeIn() 
{ 
    return x =(targetClip._alpha++>=100)?true:(setInterval(fadeIn,600)); 
} 

function getNext() 
{ 
    return currentObject = currentObject.nextSibling; 
} 

function getPrevious() 
{ 
    return currentObject = currentObject.previousSibling; 
} 

btn_next.onRelease = function() {displayObject(getNext());}; 
btn_previous.onRelease = function() {displayObject(getprevious());};
```

Kan det bli fel om alphan sätts till ett negativt tal eller om det blir större än 100?

Permalänk: https://www.webforum.nu/p/1285050

## #5 — matthew, 2004-02-23T22:55Z

Nu vet jag hur prototype funkar... Det verkar användbart!!

Jag undrar fortfarande vad som händer om alphan sätts till ett negativt tal eller större än 100.

hmm undra om jag måste sätta clearInteraval?!

Permalänk: https://www.webforum.nu/p/1285180

## #6 — Mika3l, 2004-02-23T23:07Z

Är det negativt blir det väl 0 och är det större än hundra blir det väl hundra?

Permalänk: https://www.webforum.nu/p/1285188

## #7 — Kalliban, 2004-02-24T18:52Z

varför ange ett negativt tal?
håll dig till tal mellan noll och hundra, finns väl ingen anledning att ange andra värden? ;)

Permalänk: https://www.webforum.nu/p/1285511

## #8 — Kalliban, 2004-02-24T18:57Z

om du nu inte vill "fada" tillbaka den...
då har jag ändrat prototypen lite åt dig, så att den känner av det automatiskt:

```php
MovieClip.prototype.fade = function(speed, dec, method) {
	var alpha = _alpha;
	fadeIt = function () {
		if (method == "in") {
			if (_alpha>=100) {
				clearInterval(itv);
			} else {
				alpha += dec;
				_alpha = alpha;
			}
		} else if (method == "out") {
			if (_alpha<=0) {
				clearInterval(itv);
			} else {
				alpha -= dec;
				_alpha = alpha;
			}
		}
	};
	itv = setInterval(fadeIt, speed);
};
dittMC.fade(100, 10, "out");
dittMC.fade(100, 10, "in");
```

Permalänk: https://www.webforum.nu/p/1285512

---

Tråden på webben: https://www.webforum.nu/amne/flash/97740-ändra-alpha-med-as
