2012-03-22 1 views

답변

0

BitmapDatadraw(IDrawable) 기능을 사용하면 모든 것이 동일하면 SecurityDomain입니다.

이 기술은 렌더링하려는 모든로드 된 요소의 SecurityDomain이 요청을 작성한 코드 (아마도 swf의 도메인)의 도메인을 허용하는 경우에만 사용할 수 있습니다.

BitmapData.draw(IDrawable)에 대한 문서를 확인하십시오. 모든 자식 객체 (Sprite 또는 MovieClip 객체의 경우) 소스 객체와 가 호출자와 같은 도메인하지 않거나

있습니다 : 그것은이이 SecurityError 때 발생 말한다 에 의해 호출자가 액세스 할 수있는 내용이 아닌 경우 Security.allowDomain() 메서드를 호출해야합니다. 이 제한 사항은 이 응용 프로그램 보안 샌드 박스의 AIR 내용에는 적용되지 않습니다.

이것의 결과는 당신이 통제하지 않는 도메인의 내용을로드하는 표준 Loader를 사용하는 경우가 발생하지 않는 한, 당신은 (콘텐츠가 포함 된 DisplayObjectContainer의 비트 맵 "스냅 샷"을 만들 수 있다는 것입니다 모든 도메인 또는 도메인에서 명시 적으로 액세스 할 수 있습니다. 도메인을 제어하는 ​​경우 crossdomain.xml (비 swf 콘텐츠의 경우) 또는 Security.allowDomain() swf 콘텐츠의 호출을 사용하여 도메인을 제어 할 수 있어야합니다. 로드 된 swf는 allowDomain 호출을해야합니다.

(JPG 또는 GIF와 같은 다른 도메인의 정적 이미지를 포함한 스냅 샷을 얻으려는 경우 직접 이미지 데이터를로드하고 해당 AS3 디코더를 사용하여 비트 맵으로 디코딩 할 수 있습니다

0

짧은 대답 : 번호 그러나 배포 할 PHP와 같은 서버 측 기술에 액세스 할 수있는 경우에는 일시적으로 해결할 수 있습니다 (예 : Loader 표준을 사용하는 것이 아닙니다). swf. 해결 방법은 PHP를 사용하여 이미지를 프록시하는 것입니다. PHP 스크립트는 cUrl을 사용하여 이미지를로드하고 yuor swf는 동일한 도메인에서 시작되었으므로로드 할 수 있습니다.

다음은 간단한 프록시 스크립트의 예입니다. 프로덕션 환경에서는 권한이없는 사용자가 스크립트에 액세스하지 못하도록 스크립트를 강화해야합니다.

<?php 

$post_data = $HTTP_RAW_POST_DATA; 

$header[] = "Content-type: text/xml"; 
$header[] = "Content-length: ".strlen($post_data); 

$ch = curl_init($_GET['path']); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 

if (strlen($post_data)>0){ 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
} 

$response = curl_exec($ch);  
$response_headers = curl_getinfo($ch);  

if (curl_errno($ch)) { 
    print curl_error($ch); 
} else { 
    print_r(curl_getinfo($ch)); 
    curl_close($ch); 
    header('Content-type: ' . $response_headers['content-type']); 
    print $response; 
} 


?> 
+0

이렇게하면 내 문제가 확실히 해결됩니다. 고마워. – pikar

관련 문제