Actionscript 3 将actionscript从时间线移动到外部.as文件
我遇到了一个严重的问题,因为我对as3不太了解 我在一个项目中有一个actionscript代码,在时间线框架1中,代码是:Actionscript 3 将actionscript从时间线移动到外部.as文件,actionscript-3,actionscript,Actionscript 3,Actionscript,我遇到了一个严重的问题,因为我对as3不太了解 我在一个项目中有一个actionscript代码,在时间线框架1中,代码是: stop(); import flash.display.BitmapData; import flash.display.SimpleButton import flash.display.Bitmap; import flash.display.Loader; import flash.display.MovieClip;
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文件混合起来吗
我附加了所有源文件的下载链接
在框架中的文件AdgustColor中,有一个actionscript代码,我想将其转换为Main.as文件
在filescroller.fla中有原始的滚动条
当然,AdgustColor.fla在我从时间线框架1中删除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);
}
}
}