我遇到了一个严重的问题,因为我对 as3 不太了解。
我在时间轴第一帧的项目中有一个动作脚本代码,代码是:
stop();
import flash.display.BitmapData;
import flash.display.SimpleButton
import flash.display.Bitmap;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.errors.IOError;
import flash.events.ProgressEvent;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLVariables;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.utils.ByteArray;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequestHeader;
import flash.geom.ColorTransform;
import flash.geom.Matrix;
import flash.display.LoaderInfo;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import com.drooza.*;
import caurina.transitions.Tweener;
const thumbWidth:int = 90;
const numThumbsShown:int = 5;
var thumb_array:Array = [];
var thumbContainer:Sprite = new Sprite(),
pictureContainer:Sprite = new Sprite();
var leftMostThumb:int = 0; //for sliding thumbs
var currentThumb:int = 0;
var thumbsXML:XMLReader = new XMLReader("gallery.xml");
var thumbcurrentThumbList:XMLList;
var pictureLoader:Loader;
//var _browseBtn: SimpleButton;
thumbsXML.init();
thumbsXML.addEventListener(Event.COMPLETE, thumbCompleteHandler);
pictureContainer.addEventListener(MouseEvent.CLICK, gotoLargePicture);
pictureContainer.buttonMode = true;
pictureContainer.mouseChildren = false;
pictureContainer.x = 10;
pictureContainer.y = 10;
addChild(pictureContainer);
addChildAt(thumbContainer, getChildIndex(mask_mc) - 1);
with(thumbContainer)
{
mask = mask_mc;
x = mask_mc.x;
y = mask_mc.y;
}
thumbsXML.parseXML = function() {
clearContainer(thumbContainer);
try {
// <gallery albumDir="albums/">
// <album galleryDir="album-1/" thumbDir="thumbs/" sizedDir="sized/" largeDir="large/">
// <image url="2009-Lotus-Evora-Front-1280x960.jpg"><![CDATA[Caption for the image 1]]></image>
trace(thumbsXML.xmlData..album.length() + " albums found.");
for each(var album:XML in thumbsXML.xmlData..album)
{
trace("ALBUM: \n" + album);
for each(var image:XML in album.image)
{
trace("THUMB\n" + image);
//create client thumbs and add them to container
var thumb:Thumb = new Thumb();
thumb.imageLoader = new ImageLoader(thumb);
thumb.x = (thumbContainer.numChildren * (thumbWidth + 10));
thumb.imageLoader.loadImage(thumbsXML.xmlData.@albumDir + album.@dir + album.@galleryDir + album.@thumbDir + image.@url);
thumb.addEventListener(MouseEvent.CLICK, thumbClickHandler);
thumbContainer.addChild(thumb);
thumb_array[thumb_array.length] = thumb;
thumb.item = new Item({
image:thumbsXML.xmlData.@albumDir + album.@dir + album.@galleryDir + album.@largeDir + image.@url,
sized:thumbsXML.xmlData.@albumDir + album.@dir + album.@galleryDir + album.@sizedDir + image.@url,
thumb:thumbsXML.xmlData.@albumDir + album.@dir + album.@galleryDir + album.@thumbDir + image.@url,
description:image.text()
});
}
}
leftArrow.addEventListener(MouseEvent.CLICK, moveLeft);
rightArrow.addEventListener(MouseEvent.CLICK, moveRight);
showThumbContents();
}
catch(e:Error)
{
trace(":: Error parsing XML.");
trace("Caught: " + e.getStackTrace());
}
}
function thumbClickHandler(e:MouseEvent):void {
var thumb:Thumb = e.target as Thumb;
currentThumb = thumbContainer.getChildIndex(thumb);
showThumbContents();
}
function showThumbContents():void {
var thumb:Thumb = thumbContainer.getChildAt(currentThumb) as Thumb;
clearContainer(pictureContainer);
try
{
pictureLoader = new Loader();
pictureLoader.load(new URLRequest(thumb.item.sized));
pictureLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, IOErrorHandler);
pictureLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
pictureLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, pictureCompleteHandler);
pictureContainer.addChild(pictureLoader);
}
catch(e:TypeError){
trace("Error showing thumb contents.\n\t" + e.getStackTrace());
}
}
function gotoLargePicture(e:MouseEvent = null):void {
trace("GOTO LARGE PICTURE");
var thumb:Thumb = thumbContainer.getChildAt(currentThumb) as Thumb;
navigateToURL(new URLRequest(thumb.item.image), "_blank");
}
function IOErrorHandler(e:IOErrorEvent):void {
trace("IOErrorEvent!:" + e);
}
function onProgressHandler(e:ProgressEvent):void {
trace("ProgressEvent: " + e);
loading_mc.visible = true;
}
function pictureCompleteHandler(e:Event):void {
//trace("Complete! " + e);
//pictureContainer.x = 275 - (pictureContainer.width / 2)
loading_mc.visible = false;
}
function adjustThumbs():void {
var temp:int = 0;
while(temp <= currentThumb - numThumbsShown)
temp += numThumbsShown;
leftMostThumb = temp;
slideThumbs();
}
function moveLeft(e:MouseEvent):void {
if(leftMostThumb > 0)
leftMostThumb -= numThumbsShown;
slideThumbs();
}
function moveRight(e:MouseEvent):void {
if(leftMostThumb < int(thumbContainer.numChildren - numThumbsShown))
leftMostThumb += numThumbsShown;
slideThumbs();
}
function slideToThumb(thumbNum:int):void {
leftMostThumb = thumbNum;
slideThumbs();
}
function slideThumbs():void {
var slide:Object = {x:mask_mc.x - leftMostThumb * (thumbWidth + 10), time:.5, transition:"easeOut"};
Tweener.addTween(thumbContainer, slide);
//Tweener.addTween(clientTitleContainer, slide);
}
function prevThumb(e:MouseEvent):void {
currentThumb--;
if(currentThumb <= 0)
currentThumb = thumbContainer.numChildren - 1;
//showDescription();
showThumbContents();
}
function nextThumb(e:MouseEvent):void {
currentThumb++;
if(currentThumb >= thumbContainer.numChildren)
currentThumb = 0;
//showDescription();
showThumbContents();
}
function clearContainer(container:DisplayObjectContainer):void {
while(container.numChildren > 0)
container.removeChildAt(0);
}
function thumbCompleteHandler(e:Event){
trace("thumbsXML loaded. ");
thumbsXML.removeEventListener(Event.COMPLETE, thumbCompleteHandler);
}
//_browseBtn = browseBT;// new SimpleButton ( ) ;
//_browseBtn.useHandCursor = true;
browseBT.addEventListener ( MouseEvent.CLICK, _handleMouseEvent ) ;
//_fileFilter = new FileFilter ( "Image", "*.jpg;*.gif;*.png;" ) ;
function _handleMouseEvent ( evt : MouseEvent ) : void
{
//_fileRef = new FileReference ( ) ;
//_fileRef.browse ( [_fileFilter] ) ;
//_fileRef.addEventListener ( Event.SELECT, _onImageSelect ) ;
blackmask.blackmastin.gotoAndPlay(2);
}
现在我有另一个项目,我想放置此代码,但该项目从外部 .as 文件加载 actionscript 代码。
该代码是:
package
{
import flash.display.Sprite;
import fl.motion.AdjustColor;
import flash.filters.ColorMatrixFilter;
import fl.events.SliderEvent;
import com.flashcube.Transformer;
import flash.events.MouseEvent;
public class Main extends Sprite
{
private var color:AdjustColor = new AdjustColor();
private var filter:ColorMatrixFilter;
private var faceTransform:Transformer;
public function Main():void
{
/* Required to create initial Matrix */
color.brightness = 0;
color.contrast = 0;
color.hue = 0;
color.saturation = 0;
var newZIndex = 10;
/* Add Listeners function */
addListeners();
addListeners2();
addListeners22();
}
private final function addListeners():void
{
faceTransform = new Transformer(image2);
faceTransform.color = 0x000FFF;
faceTransform.showCenterCircle = true;
faceTransform.selectedColor = 0x000000;
faceTransform.selectedAlpha = 0.5;
faceTransform.allowScaleProportion = true;
faceTransform.allowRotateProportion = false;
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];
}
private final function addListeners2():void
{
colorPanel2.brightSL.addEventListener(SliderEvent.CHANGE, adjustBrightness2);
colorPanel2.contSL.addEventListener(SliderEvent.CHANGE, adjustContrast2);
colorPanel2.hueSL.addEventListener(SliderEvent.CHANGE, adjustHue2);
colorPanel2.satSL.addEventListener(SliderEvent.CHANGE, adjustSaturation2);
}
private final function adjustBrightness2(e:SliderEvent):void
{
color.brightness = e.target.value;
update2();
}
private final function adjustContrast2(e:SliderEvent):void
{
color.contrast = e.target.value;
update2();
}
private final function adjustHue2(e:SliderEvent):void
{
color.hue = e.target.value;
update2();
}
private final function adjustSaturation2(e:SliderEvent):void
{
color.saturation = e.target.value;
update2();
}
private final function update2():void
{
filter = new ColorMatrixFilter(color.CalculateFinalFlatArray());
image2.filters = [filter];
}
//-------------------------------------------------
private final function addListeners22():void
{
image.addEventListener(MouseEvent.CLICK, friendMaker);
}
private final function friendMaker(evt:MouseEvent):void {
//setChildIndex(image2,stage.numChildren-1);
setChildIndex(image,numChildren+1);
}
}
}
请问有人可以帮我混合第一个代码 int 第二个 .as 文件吗?
我附上了一个包含所有源文件的下载链接。
在框架中的文件 AdgustColor 中,有我想要转换到 Main.as 文件的操作脚本代码。
在文件scroller.fla 中有原始的Scroller。
当然,在我从时间轴帧 1 中删除 actionscript 代码之前,AdgustColor.fla 不起作用。
下载: 我的文件