수업 프로젝트에서 나는 "Pissed Off Pigs"에 대해 연구 중이다. (나는 생각한다. 돼지는 복수하고 걱정하지 않는다. 나는 그렇지 않다. 그것을 발표 할 예정입니다!) 비트 맵에서 채우기로 동그라미를 만들고 싶습니다 (충돌 수학이 쉽기 때문에 원). 그들이 지금 어떻게 보이는지입니다. 물론비트 스크립트에서 작업 할 투명도를 얻는 방법
은 흰색이 문제입니다. 아래는 "돼지"클래스입니다. 어떤 아이디어? 나는 GIF, PNG, 8 비트 PNG 등을 시도해 봤는데 아무런 효과가없는 것 같다. 이미지 자체는 20 픽셀이며 원의 반지름은 10 픽셀입니다 (따라서 20 픽셀 크기). 여기에 내가 사용하고 이미지입니다 :
는 그리고 나는 이미지마다 시간을로드하지 않아도 아마 나는 새로운 돼지를 만들 때의 BitmapData을 통과 단지 클래스 외부 이미지를로드한다 알고 I 새로운 돼지를 만들지 만 지금은 작동합니다! (Sorta).
매트릭스가 문제를 번역합니까?
오, 나는 bmpImage.transparent를 확인하고 true를 반환합니다 (생성자에서 true를 지정하지 않은 경우에도 마찬가지 임).
`패키지 { import flash.display. ; import flash.net.; import flash.events. ; import flash.geom.; import flash.display.BitmapDataChannel;
public class pig extends Sprite {
public var radius:uint;
public var velocity:Vec2;
public var tt:Sprite;
public var pigLoader:Loader;
public var bmpImage:BitmapData;
public var framesAlive:uint;
public function pig(xx:uint, yy:uint, radius:uint, vx:Number, vy:Number, sprite:String){
this.x = xx;
this.y = yy;
this.radius = radius;
this.velocity = new Vec2(vx, vy);
pigLoader = new Loader();
pigLoader.load(new URLRequest(sprite));
pigLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, picLoaded);
}
private function picLoaded(event:Event):void {
bmpImage = new BitmapData(pigLoader.width, pigLoader.height, true);
bmpImage.draw(pigLoader);
tt = new Sprite();
var matrix:Matrix;
matrix = new Matrix();
matrix.translate(-10, -10);
tt.graphics.beginBitmapFill(bmpImage, matrix, false, false);
tt.graphics.drawCircle(0, 0, this.radius)
tt.graphics.endFill();
this.addChild(tt);
}
}
}
`
코드를 추가해 주셔서 감사합니다. 나는 첫 번째 버전을보고 내가 생각할 수있는 모든 것을 시도했다. 나는 다음과 같은 것을 계속 시도했다 : var pigPic : Bitmap = pigLoader.content; 하지만 "암시 적 강제 변환"오류가 발생했습니다.그 pigLoader는 공공 장소 였으므로 어느 곳에서나 접근 할 수 있었지만 분명히 참조가 아닙니다. – tooshel
돼지마다 이런 로더를 사용해야한다고 생각합니까? 그 부분을 꺼내서 돼지의 생성자에 "pigLoader.content"를 매개 변수로 전달하면 안됩니까? – tooshel
내가하고있는 것처럼 개인적으로 각 돼지 인스턴스에 대해 새 인스턴스를로드하지 않습니다. 내가 할 일은 웹에서 한 번 GIF를로드하고 Loader의 전체 처리기에서 BitmapData (loader.content.bitmapData)에 대한 참조를 저장하는 것입니다. 비트 맵 데이터를 가져올 수있는 권한을 부여하기 위해 이미지를 제공하는 서버에 올바른 crossdomain.xml 정책 파일이 있으면이 작업을 수행 할 수 있습니다. 그런 다음 각 돼지 스프라이트를 구성 할 때 비트 맵 데이터 참조를 전달하고 새 Bitmap (비트 맵 데이터)을 내부적으로 수행하여 자식으로 첨부하는 비트 맵 표시 객체를 만듭니다. –