Je vais bientôt avoir besoin d'une perruque pour remplacer les cheveux que j'ai arrachés en ce qui concerne ce problème! J'ai un élément flash sur mon site Web qui est une galerie XML. Il est supposé se fondre parfaitement avec l'arrière-plan. J'ai importé un PNG qui a la transparence dont un bord est le bord de mélange avec l'autre BG. Bien sûr, il y a un changement de couleur sur Mac et Windows. J'ai essayé d'importer du PSD, de l'enregistrer au format JPG, d'utiliser GammaSlamma pour supprimer le profilage, toutes sortes de choses. Je pensais que j'allais avoir à ajuster manuellement l'image pour correspondre et ensuite servir deux fichiers Flash différents en fonction de l'OS de l'utilisateur ou quelque chose de fou comme ça, mais ensuite j'ai vu que AS3 supporte la correction des couleurs et beaucoup de gens ont semblé le trouver utile. Inutile de dire que j'étais très excité Cependant, je n'ai jamais utilisé AS3 auparavant, et je suis en train de développer un gros mal de tête.Flash AS3 Correction de couleur
J'ai trouvé un diaporama gratuit de remplacement qui est AS3 mais je n'ai aucune idée où ajouter ce code dans
codeque selon http://kelsocartography.com/blog/?tag=as3-color-correction est tout ce qu'il faut.
stage.colorCorrection = ColorCorrection.ON;
Le code pour la galerie (désolé pour un si long extrait):
//----------------------------------------------------------------------------------------------------
// XMLSlideshow.as
// 19 Feb 2009
// www.simplistika.com
//----------------------------------------------------------------------------------------------------
package com.simplistika
{
import flash.display.*;
import flash.events.*;
import flash.net.URLRequest;
import flash.utils.Timer;
//Color correction
import flash.display.ColorCorrection;
stage.colorCorrection = ColorCorrection.ON;
//----------------------------------------------------------------------------------------------------
// class definition
//----------------------------------------------------------------------------------------------------
public class XMLSlideshow extends cXMLApp
{
//----------------------------------------------------------------------------------------------------
// member data
//----------------------------------------------------------------------------------------------------
private var mTimer : Timer;
private var mPlaceholder1 : Loader = new Loader();
private var mPlaceholder2 : Loader = new Loader();
private var mControl : mcControl = new mcControl();
private var mSlide : int;
//----------------------------------------------------------------------------------------------------
// slideshow setup
//----------------------------------------------------------------------------------------------------
private var mFile : String = "http://www.simplistika.com/files/ssp/Slideshow.xml"; // path to xml file
private var mInterval : uint = 8000; // slide interval
//----------------------------------------------------------------------------------------------------
// constructor
//----------------------------------------------------------------------------------------------------
public function
XMLSlideshow(
) : void
{
trace(this + " " + "XMLSlideshow.constructor");
mTimer = new Timer(mInterval, 0);
mPlaceholder1.contentLoaderInfo.addEventListener(Event.OPEN, fOpen);
mPlaceholder1.contentLoaderInfo.addEventListener(Event.COMPLETE, fResult);
mPlaceholder2.contentLoaderInfo.addEventListener(Event.OPEN, fOpen);
mPlaceholder2.contentLoaderInfo.addEventListener(Event.COMPLETE, fResult);
//this.addEventListener(MouseEvent.MOUSE_OVER, fOnMouseOver);
//this.addEventListener(MouseEvent.MOUSE_OUT, fOnMouseOut);
//this.addEventListener(MouseEvent.CLICK, fOnClick);
mTimer.addEventListener(TimerEvent.TIMER, fTimer);
addChild(mPlaceholder1);
addChild(mPlaceholder2);
addChild(mControl);
mSlide = 0;
mControl.btnForward.alpha = mControl.btnBack.alpha = mControl.btnPause.alpha = 0.0;
//mControl.btnForward.buttonMode = mControl.btnBack.buttonMode = mControl.btnPause.buttonMode = true;
mControl.btnForward.visible = mControl.btnBack.visible = false;
super(mFile);
super.addEventListener("XMLLoaded", fStart);
}
//----------------------------------------------------------------------------------------------------
// fStart
//----------------------------------------------------------------------------------------------------
private function
fStart(
e : Event
) : void
{
trace(this + " " + "XMLSlideshow.fStart");
fLoadImage();
}
//----------------------------------------------------------------------------------------------------
// fOnMouseOver
//----------------------------------------------------------------------------------------------------
/* private function
fOnMouseOver(
e : MouseEvent
) : void
{
switch (e.target.name)
{
case "btnPause":
mTimer.running ? mControl.txtDesc.text = "Pause" : mControl.txtDesc.text = "Play";
break;
case "btnForward":
mControl.txtDesc.text = "Next";
break;
case "btnBack":
mControl.txtDesc.text = "Back";
break;
default:
return;
}
mControl.txtDesc.alpha = 1;
e.target.alpha = 0.7;
}
//----------------------------------------------------------------------------------------------------
// fOnMouseOut
//----------------------------------------------------------------------------------------------------
private function
fOnMouseOut(
e : MouseEvent
) : void
{
switch (e.target.name)
{
case "btnPause":
case "btnForward":
case "btnBack":
e.target.alpha = 0.5;
mControl.txtDesc.alpha = 0;
return;
}
}
//----------------------------------------------------------------------------------------------------
// fOnClick
//----------------------------------------------------------------------------------------------------
private function
fOnClick(
e : MouseEvent
) : void
{
trace(this + " " + "XMLSlideshow.fOnClick " + e.target.name);
switch (e.target.name)
{
case "btnPause":
if (mControl.txtDesc.text == "Pause")
{
mTimer.stop();
mControl.btnBack.visible = mControl.btnForward.visible = true;
mControl.txtDesc.text = "Play";
}
else
{
mTimer.start();
mControl.btnBack.visible = mControl.btnForward.visible = false;
mControl.txtDesc.text = "Pause";
}
return;
case "btnForward":
mSlide == mItems - 1 ? mSlide = 0 : mSlide++;
break;
case "btnBack":
mSlide == 0 ? mSlide = mItems - 1 : mSlide--;
break;
default:
return;
}
fLoadImage();
} */
//----------------------------------------------------------------------------------------------------
// fLoadImage
//----------------------------------------------------------------------------------------------------
private function
fLoadImage(
) : void
{
getChildIndex(mPlaceholder1) != 0 ?
mPlaceholder2.load(new URLRequest(mData.slide[mSlide].url)) :
mPlaceholder1.load(new URLRequest(mData.slide[mSlide].url));
}
//----------------------------------------------------------------------------------------------------
// fTimer
//----------------------------------------------------------------------------------------------------
private function
fTimer(
e : TimerEvent
) : void
{
mSlide == mItems - 1 ? mSlide = 0 : mSlide++;
fLoadImage();
}
//----------------------------------------------------------------------------------------------------
// fOpen
//----------------------------------------------------------------------------------------------------
private function
fOpen(
e : Event
) : void
{
mTimer.stop();
}
//----------------------------------------------------------------------------------------------------
// fResult
//----------------------------------------------------------------------------------------------------
private function
fResult(
e : Event
) : void
{
if (!mControl.btnForward.visible)
mTimer.start();
getChildIndex(mPlaceholder1) == 0 ? fNextImage(mPlaceholder1) : fNextImage(mPlaceholder2);
}
//----------------------------------------------------------------------------------------------------
// fKenBurns
//----------------------------------------------------------------------------------------------------
private function
fNextImage(
vPlaceholder : Loader
) : void
{
setChildIndex(vPlaceholder, this.numChildren - 2);
vPlaceholder.alpha = 0;
vPlaceholder == mPlaceholder1 ? cTween.to(mPlaceholder2, {alpha:0}, 1) : cTween.to(mPlaceholder1, {alpha:0}, 1);
cTween.to(vPlaceholder, { alpha:1 }, 1);
}
//----------------------------------------------------------------------------------------------------
} // class
//----------------------------------------------------------------------------------------------------
} // package
Vous pouvez voir que j'ajouté « la correction des couleurs » là-bas, mais je reçois cette erreur quand je lance le fichier:
ReferenceError: Error #1065: Variable stage is not defined.
at global$init()
Une suggestion? Merci ...
Je suis désolé d'avoir une telle douleur, mais où pourrais-je ajouter la première partie? Lorsque j'ai essayé votre # 2, j'ai eu cette erreur: ReferenceError: Erreur # 1065: L'étape variable n'est pas définie. \t à com.simplistika :: XMLSlideshow $ cinit() \t à global $ init() ----- Je l'ai ajouté sous le "private var mSlide: int;" ligne. – Sara
On dirait que le XMLSlideshow se fait avant que la scène ne puisse l'être. J'ai mis à jour ma réponse sur la façon de mettre en œuvre # 1 dans la classe. – Obto
merci. Je pense que je l'ai eu à travailler via l'étape 1 et il reprend la couleurCorrection étant ajouté. Mais encore je reçois toujours l'erreur: ReferenceError: Erreur # 1065: Variable ColorCorrection n'est pas défini. \t at com.simplistika :: XMLSlideshow/_added() ---- Je ne comprends tout simplement pas pourquoi ColorCorrection n'est pas une variable! – Sara