我需要一些帮助。
我有一个类文件,并导入了它,如下图所示:

这个文件的代码是:
package
{
import flash.display.Sprite;
import fl.motion.AdjustColor;
import flash.filters.ColorMatrixFilter;
import fl.events.SliderEvent;
public class Main extends Sprite
{
private var color:AdjustColor = new AdjustColor();
private var filter:ColorMatrixFilter;
public function Main():void
{
/* Required to create initial Matrix */
color.brightness = 0;
color.contrast = 0;
color.hue = 0;
color.saturation = 0;
/* Add Listeners function */
addListeners();
}
private final function addListeners():void
{
colorPanel.brightSL.addEventListener(SliderEvent.CHANGE, adjustBrightness);
colorPanel.contSL.addEventListener(SliderEvent.CHANGE, adjustContrast);
colorPanel.hueSL.addEventListener(SliderEvent.CHANGE, adjustHue);
colorPanel.satSL.addEventListener(SliderEvent.CHANGE, adjustSaturation);
}
private final function adjustBrightness(e:SliderEvent):void
{
color.brightness = e.target.value;
update();
}
private final function adjustContrast(e:SliderEvent):void
{
color.contrast = e.target.value;
update();
}
private final function adjustHue(e:SliderEvent):void
{
color.hue = e.target.value;
update();
}
private final function adjustSaturation(e:SliderEvent):void
{
color.saturation = e.target.value;
update();
}
private final function update():void
{
filter = new ColorMatrixFilter(color.CalculateFinalFlatArray());
image.filters = [filter];
}
}
}现在我想从时间线导入这个文件。是否可以;I我从文档属性中删除类名,然后从时间线(frame1)中导入它,如: import Main
什么都没发生。
谢谢!
发布于 2012-11-01 03:29:39
对于我认为你正在做的事情,更好的方法应该是这样的。
下面是一个示例:http://dopserv1.dop.com/ColorMatrixExample.swf
现在来解释一下;在你的FLA中:
import Main;
var main:Main = new Main();
addChild(main);而你的Main.as类将是:
package
{
import flash.display.Sprite;
import fl.motion.AdjustColor;
import flash.filters.ColorMatrixFilter;
import fl.events.SliderEvent;
import flash.events.Event;
public class Main extends Sprite
{
private var color:AdjustColor = new AdjustColor();
private var filter:ColorMatrixFilter;
private var panel:ColorPanel;
private var image:Image;
public function Main():void
{
/* Required to create initial Matrix */
color.brightness = 0;
color.contrast = 0;
color.hue = 0;
color.saturation = 0;
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
panel = new ColorPanel();
panel.x = 15;
panel.y = 15;
addChild(panel);
image = new Image();
image.x = 150;
image.y = 150;
addChild(image);
panel.brightSL.addEventListener(SliderEvent.THUMB_DRAG, adjustBrightness);
panel.contSL.addEventListener(SliderEvent.THUMB_DRAG, adjustContrast);
panel.hueSL.addEventListener(SliderEvent.THUMB_DRAG, adjustHue);
panel.satSL.addEventListener(SliderEvent.THUMB_DRAG, adjustSaturation);
}
private function adjustBrightness(e:SliderEvent):void
{
color.brightness = e.target.value;
update();
}
private function adjustContrast(e:SliderEvent):void
{
color.contrast = e.target.value;
update();
}
private function adjustHue(e:SliderEvent):void
{
color.hue = e.target.value;
update();
}
private function adjustSaturation(e:SliderEvent):void
{
color.saturation = e.target.value;
update();
}
private function update():void
{
filter = new ColorMatrixFilter(color.CalculateFinalFlatArray());
image.filters = [filter];
}
}
}现在,在我的FLA库中,我简单地导入了一个图像,从中制作了一个电影剪辑,并为它指定了一个链接名称Image。创建后,将其从舞台中删除。
然后,对于您的colorPanel,我将4个滑块下药到舞台上,根据您的类中的名称对它们进行命名,并使用实例名称ColorPanel从它们中创建了一个影片剪辑。创建后,将其从舞台中删除。
另请注意:我将您的SliderEvent.CHANGE更改为SliderEvent.THUMB_DRAG,正如我所期望的那样,这更符合您的要求。
https://stackoverflow.com/questions/13165793
复制相似问题