여기 상황이 있습니다. 나는 cs5.5에서 프로젝트를 위해 플래시 웹 사이트를 만들고 있는데 페이지 레이아웃은 배경 이미지를 무작위로 분해하고 다음 프레임을로드하고 싶다. (CS3에서는 타임 라인 효과가 있지만 제거되었다. cs4 +). Tweener.as V1.33 (AS2 용)을 사용하여 이미지를 폭발시키는 AS2 스크립트를 찾았지만 누구나 AS3에서 작동하도록하는 방법을 알고 있습니까? 감사합니다AS2 이미지 폭발이 AS3으로 변환됩니다.
코드는 다음과 같습니다
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
import caurina.transitions.Tweener;
//
var container:MovieClip = this.createEmptyMovieClip("container_mc", this.getNextHighestDepth());
var bmp:BitmapData = BitmapData.loadBitmap("careca");
var grid:Number = 20;
var rect:MovieClip;
var depth:MovieClip = this;
var spacement:Number = 0;
var count:Number = 0;
var rows:Number = 0;
var a:Number, b:Number, c:Number, d:Number;
var rects:MovieClip = depth.createEmptyMovieClip("rects_mc", depth.getNextHighestDepth());
var pieces:Array = new Array();
//
container.attachBitmap(bmp, container.getNextHighestDepth());
container._visible = false;
//
function init() {
create();
}
function randRange(min:Number, max:Number) {
var randomNum:Number = Math.round(Math.random()*(max-min+1)+(min-.5));
return randomNum;
}
function clearBitmaps() {
rects.swapDepths(0);
rects.removeMovieClip();
}
function create() {
for (a=1; a<=Math.round(container._height/grid); a++) {
drawLine();
rows++;
}
rects._x = Stage.width/2-rects._width/2;
rects._y = Stage.height/2-rects._height/2;
}
function drawLine() {
for (b=0; b<Math.round(container._width/grid); b++) {
rect = rects.createEmptyMovieClip("rect"+String(rows)+String(b)+"_mc", rects.getNextHighestDepth());
bmp[i] = new BitmapData(grid, grid, true);
//
bmp[i].copyPixels(bmp, new Rectangle(grid*b, grid*rows, grid, grid), new Point(0, 0));
rect.attachBitmap(bmp[i], rect.getNextHighestDepth());
rect.initX = (rect._width+spacement)*b;
rect.initY = (rect._height+spacement)*rows;
rect.randomX = randRange(-Stage.width, Stage.width);
rect.randomY = randRange(-Stage.height, Stage.height);
rect.randomRotation = randRange(10, 360);
rect.randomScale = randRange(0, 100);
rect.randomAlpha = 0;
rect.cacheAsBitmap = true;
rect._x = rect.initX;
rect._y = rect.initY;
//
pieces.push(rect);
}
setTimeout(animPieces, 1000);
}
function animPieces() {
for (c=0; c<pieces.length; c++) {
rect = pieces[c];
Tweener.addTween(rect, {_scale:rect.randomScale, _rotation:rect.randomRotation, _x:rect.randomX, _y:rect.randomY, _alpha:0, time:5, transition:"easeOutExpo", onComplete:clearBitmaps});
}
}
//
init()
출처 : Lemlinh.com
다시 연락해 주셔서 감사합니다. 밑줄을 편집하여 AS3 문서에 붙여 넣으면 수많은 오류가 발생했습니다. [link] (http://i70.photobucket.com/albums/i87/2SK9/Help/Screenshot2011-11-24at151648.png)에서 어떤 아이디어를 볼 수 있습니까? – Sayo1337
ActionScript 2 파일을 게시하는 것처럼 보입니다. 게시 설정을 확인하고 ActionScript 3로 변경하십시오. – pioSko
이 스크립트를 자세히 읽어보고 주셔서 감사합니다. 오류를 컴파일하고 TweenMax를 사용했습니다 (팁 XD 덕분에 더 좋은 마일입니다).하지만 이제는 " TypeError : 오류 # 1034 : 형식 강제 변환에 실패했습니다 : "container_mc"를 flash.display.DisplayObject로 변환 할 수 없습니다. as3_fla :: MainTimeline/frame1() "출력 오류, 아이디어가 있습니까? \t – Sayo1337