2013-11-21 3 views
0

매우 녹색 손가락으로 입력하고 있으므로 질문을 실례합니다. 예제를 통해 배우면서 ActionScript에서 이미지를로드하고 표시하려고했습니다. 나는 위와 대신 텍스트 블록의 bSurface에 이미지를 배치하려고ActionScript로 이미지로드 및 표시

... 
... 
var bmd2:BitmapData = bmd.clone(); 
var infoBM:Bitmap = new Bitmap(bmd2); 
var back:MovieClip = new MovieClip(); 
back.name = "back"; 
back.rotationX = -90; 
var bSurface:MovieClip = new MovieClip(); 
bSurface.y = int(... 
bSurface.z = int(... 
bSurface.addChild(infoBM); 

var overlay:Sprite = new Sprite(); 
overlay.graphics.beginFill(...); 
overlay.graphics.drawRect(0, 0, bSurface.width, bSurface.height); 
overlay.graphics.endFill(); 
bSurface.addChild(overlay); 
back.addChild(bSurface); 

var tf:TextField = new TextField(); 
tf... 
tf... 
tf... 
bSurface.addChild(tf); 
... 
... 

: 이것은 내가 일하고 원래의 예에서입니다. 지금까지 내가 함께 왔어요 :

var iSprite:Sprite = new Sprite(); 
var iMatrix:Matrix = new Matrix(); 
var bmData:BitmapData; 
bmData = new BitmapData(surface.width, surface.height, true, 123); 

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
loader.load(new URLRequest("c:\pixlr.png")); 
function onComplete (event:Event):void 
    { 
    bmData = Bitmap(LoaderInfo(event.target).content).bitmapData; 
    } 

iMatrix.tx = 0; 
iMatrix.ty = 0; 
iSprite.graphics.beginBitmapFill(bmData, iMatrix, false, true); 
iSprite.graphics.drawRect(0, 0, surface.width, surface.height); 
iSprite.graphics.endFill(); 

surface.addChild(iSprite); 

... 그리고 :

var bmData:BitmapData; 
bmData = new BitmapData(surface.width, surface.height, true, 123); 


var loader:Loader = new Loader(); 
var location:URLRequest = new URLRequest("c:\pixlr.png"); 
loader.load(location); 
bmData = Bitmap(loader.content).bitmapData; 

surface.addChild(bmData); 

을하지만 성공. 나는 며칠 동안 비참하게 실패했고, 도움을 크게 바랄 것입니다. 잘 부탁드립니다

,

소피아

답변

1

당신이 필요 이상이 더 복잡하게 만들고있어. Loader는 DisplayObject입니다. 이미지를로드 할 때 그래서 당신은 간단하게이 작업을 수행 할 수 있습니다

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
loader.load(new URLRequest("c:\pixlr.png")); 
addChild(loader); 

당신은 어떤 크기 나 위치, 또는에서 페이딩 수행 할 수 있습니다를 처리하는 onComplete를 이벤트를 사용할 수 있습니다.

+0

Hello Plastic Surgeon, 솔루션 고맙습니다. 그것은 완벽하게 작동합니다. 그러나 이미지 파일을 작업 할 수 있도록 동일한 디렉토리에 배치해야했습니다. 파일 경로가 실패하는 이유가 무엇입니까? 또한 예제는 이벤트 리스너가 없어도 잘 작동합니다. 그것을 위해 무엇이며, 그것 없이는 로더를 사용하는 것이 안전할까요? 다시 한번 고마워요. 중요한 것은 그것이 지금 작동한다는 것입니다. 많은, 많은, 많은 쓸모없고 고심하고 무지하게 시행 착오를 거친 후에입니다. – iSofia

+0

1. 이미지 경로는 "C : \ pixlr.png"입니다. 위 코드에서 해당 경로를 지정했습니다. 절대 경로 또는 상대 경로를 사용할 수 있습니다. 2. 이벤트 리스너가 필요하지 않습니다. 그것은 이미지가로드 된 시점을 알려주므로 이미지가로드되기 전에 전화를 걸지 않도록하고, 페이드 인 경우처럼로드 된 후에도 작업을 수행 할 수 있습니다. –

+0

당신은 단지 훌륭합니다. 결론은 당신이 내가 며칠 동안 성공적으로 고생하지 못한 문제를 해결 한 것입니다. 그 때문에 진심으로 감사드립니다. – iSofia

관련 문제