我有一個Flash文件,用於加載透明PNG(線條圖),並使用Flash來允許用戶選擇繪圖的顏色,並立即更改顏色。如何在Flash中反動態加載動態加載的PNG
這是所有的工作,它應該是。我使用UILoader組件來加載通過flashvars接收的圖像,然後根據需要更改顏色。
唯一的事情是,圖像有時看起來不是很平滑。我看過各種文章,人們談論在位圖上使用smoothing = true。但我不確定在哪裏設置它,或者它如何工作。
我是Flash和ActionScript的新手,任何人都可以幫助我嗎?以下是我的代碼(main.as)。我遺漏了changeColor()和getFlashvars()函數以及導入行。因爲我認爲這並不重要,並且儘可能保持簡單和簡短。
非常感謝任何幫助和或指針,你可以給我!
package {
public class Main extends MovieClip {
public function Main() {
init();
if(getFlashvars().img != undefined) {
if(getFlashvars().clr != undefined) {
loadImage(getFlashvars().img, getFlashvars().clr);
} else {
loadImage(getFlashvars().img);
}
} else {
loadImage('example.png', 'FFFFFF');
}
}
private function init() {
ExternalInterface.addCallback('changeColor', this.changeColor);
progressBar.visible = false;
progressBar.mode = 'manual';
progressBar.source = uiLoader;
uiLoader.scaleContent = true;
uiLoader.addEventListener(ProgressEvent.PROGRESS, eventImageProgress);
uiLoader.addEventListener(Event.COMPLETE, eventImageLoaded);
}
/**
* Load a new image from the given url. Replace the color in it with newColor
*/
public function loadImage(url:String, newColor:String='') {
//progressBar.visible = true;
uiLoader.load(new URLRequest(url));
if(newColor.length > 0) {
changeColor(newColor);
}
}
}
謝謝,這樣的事情是什麼,我期待的!我試過了,只設置了imageLoaded()中的任一行。因爲我已經通過UILoader加載了圖像。但這似乎不起作用,但也不會給出任何錯誤。有沒有可能在UILoader組件上設置它?或者我必須使用不同的組件來加載圖像? - 如果可能,我想繼續使用UILoader,因爲它也會自動爲我調整圖像大小。 – 2010-10-24 07:25:57