저는 많은 객체를 사용하는 Flex 어플리케이션에서 작업하고 있습니다. LED, 전구, 게이지는 플래시에서 생성됩니다. 객체는 내부적으로 여러 개의 작은 무비 클립으로 구성되어 있으며 내부에 자체 논리가 있습니다. 초기 요구 사항 중 하나는 런타임에 개체를로드해야하므로 SWC가 아닌 SWF로 내보냈습니다. 그러나로드 된 SWF를 복제하려고 할 때 문제가 발생했습니다. MovieClip 클래스에는 기존 MovieClip을 복제 할 수있는 복제 생성자 또는 메서드가 없습니다. 이 방법으로 우리는 많은 시간을 소모하는 hdd로부터 매번 객체를 로딩하게됩니다. ActionScript 3와 같은 언어에 이러한 메커니즘이없는 것이 가능합니까? 우리는 뭔가를 놓친 적이 있습니까? 그렇지 않다면 유일한 해결책은 Flash Component Kit을 사용하고 일부 사용자 정의 구성 요소를 만들어 컴파일시 SWC로 포함시키는 것입니다.Flex 응용 프로그램에서 외부 SWF 사용 - MovieClip 복제?
답변
MovieClip을로드 한 후 여기에 표시된대로 getDefinitionByName()을 사용할 수 있습니까?
http://livedocs.adobe.com/flex/3/langref/flash/utils/package.html#getDefinitionByName()
당신은 더는 무비 클립을 복제하는 방법으로 내장이없는 점에서 정확합니다. 그러나 해결 방법이 있습니다. 내가 보는 것처럼 가장 좋은 방법은 영화 클립 클래스를 제공하는 것입니다.
실제 수업을 만들 필요는 없습니다. 복사해야하는 가장 큰 동영상 클립에 링크를 설정할 때 클래스 필드에 아무 이름이나 써주세요. 당신을위한 이름은 영화 클립을위한 LED 영화 클립, 다른 이름 등등입니다.
이제는 개체를 시작할 수있는 클래스가 있습니다. 당신이 영화 클립 중 하나를 그랩 할 때
없음 다음과 같은 방법으로 복제 할 수 있습니다
public function DuplicateDisplayObject(dO:DisplayObject):DisplayObject
{
if(dO == null)
return null;
var dOClass:Class = Object(dO).contructor;
return DisplayObject(new dOClass());
}
이 당신이 실제로 첫번째 영화 클립 중 하나의 보류를 얻을 수있는 원인으로 가정합니다. 그리고 무비 클립의 상태를 복사하지 않는다는 사실을 기억하십시오. 또 다른 중요한 점은 영화 클립을 클래스에 연결 한 경우에만 작동한다는 것입니다. 클래스가 존재하지 않아도됩니다 (플래시는 빈 클래스를 생성합니다). 그들을합니다 ( 플렉스 컴파일러에 대한 "외부 라이브러리 경로"태그 참조)를 포함 없이 클래스에 대해 컴파일
- 및 ( 런타임에 그들을로드 :
다른 솔루션이 될 수 swf에서).
- 클래스에 대해 RSL (런타임 공유 라이브러리)로 컴파일하면 sw 이 런타임에로드됩니다.
Adobe는 웹 사이트에서 쉽게 찾을 수 있어야합니다.
좀 더 이색적인 해결책은 객체의 바이트 코드를 복사하는 것입니다. displaylist에있는 항목과 제대로 작동하는지 확실하지 않습니다.
getDefinitionByName()을 사용하여 솔루션 정보 : 올바르게 기억하면 movieclips 가짜 클래스를 제공해야합니다. getQualifiedClassName은 MovieClip 클래스 만 반환하기 때문에. 그러나 나는 틀릴 수 있습니다.
또 다른 해결책 :
private function duplicateImg(sourceLoaderInfo:LoaderInfo, target:Image):void
{
var ba:ByteArray = sourceLoaderInfo.bytes;
var dupCliploader:Loader = new Loader();
dupCliploader.contentLoaderInfo.addEventListener(
Event.COMPLETE, bytesLoaded);
dupCliploader.loadBytes(ba);
}
private function bytesLoaded(event:Event):void
{
var mc:MovieClip = event.currentTarget.content as MovieClip;
_img.source = mc;
_img.width = mc.width;
_img.height = mc.height+5;
}
- 1. 외부 swf 파일에서로드 된 복제 모양
- 2. 외부 swf 제어 flex 응용 프로그램을?
- 3. FlashLite 및 AS2의 MovieClip 복제
- 4. AS3의 MovieClip 드래그 및 복제
- 5. Flex 4.5 모바일 응용 프로그램에서 PopUpManager 사용
- 6. Flash/Flex 응용 프로그램에서 Ogg Vorbis 사용
- 7. flex 응용 프로그램에서 딥 링크
- 8. 루핑 생성자를 발생시키는 Air 응용 프로그램에서 외부 .swf 파일로드
- 9. AS3 외부 swf 중지
- 10. WindowsPhone 7 응용 프로그램에서 외부 ResourceDictionary 사용
- 11. Liferay : 외부 응용 프로그램에서 구성된 역할 사용
- 12. 다른 응용 프로그램에서 인쇄 후 빈 Swf
- 13. C# 응용 프로그램에서 swf 파일의 경로를 확인하십시오.
- 14. 오류는 외부 SWF
- 15. 여러 모듈이있는 응용 프로그램에서 런타임 공유 라이브러리 사용 (Flex)
- 16. Flex 애플리케이션에서 swf 파일 캐싱
- 17. 외부 응용 프로그램에서 wordpress 3.x.x 함수 사용
- 18. 응용 프로그램에서 여러보기 사용
- 19. SWF 3을 ActionScript 3 프로젝트에로드 (Flex Builder)
- 20. Flex 3에서 FlashVars 사용
- 21. Flex SDK에서 자동으로 SWF 생성
- 22. 크기 조정 기능이있는 새로운 Air 윈도우에 외부 SWF 응용 프로그램로드
- 23. Flex : 로컬 외부 SWF를로드 할 때 응용 프로그램이 무한대로로드됩니다.
- 24. 외부 응용 프로그램에서 브라우저 탭을 열거하십시오.
- 25. 인트라넷 Flex 응용 프로그램에서 로컬 파일 실행
- 26. flex 응용 프로그램에서 오류 메시지 구성
- 27. Flex 웹 응용 프로그램에서 서버로 이미지 업로드
- 28. 외부 Swf - sandbox 위반로드 중
- 29. xml 및 외부 swf 문서
- 30. 다른 swf 파일을로드하는 swf가있는 Flex Swfloader
이것은 올바른 방법이 그것에 대해이다. 플래시에서 심볼을 클래스에 연결해야합니다. 그렇게하면 어떤 이름을보아야하는지 알 수 있습니다! ;) –