EDIT: Do câu trả lời tôi thay đổi mã được đăng. Tôi đã thêm dòngSecurity.allowDomain("*")
và dòng đó ném cho tôi một lỗi. Vì vậy, làm thế nào có thể được thực hiện?Làm thế nào để chạy một SWF bên ngoài trong một ứng dụng Flex?
Tôi muốn chạy ứng dụng Action Script 3.0 vào ứng dụng Flex. Để làm điều này tôi đã thực hiện như sau:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication windowComplete="loadSwfApplication()" xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private function loadSwfApplication()
{
// The next line throws me an error.
Security.allowDomain("*");
var urlRequest:URLRequest = new URLRequest("path/to/the/application.swf");
swfLoader.addEventListener(Event.COMPLETE, loadComplete);
swfLoader.load(urlRequest);
}
private function loadComplete(completeEvent:Event)
{
var swfApplication:* = completeEvent.target.content;
swfApplication.init(); // this is a Function that I made it in the Root class of swfApplication
}
]]>
</mx:Script>
<mx:SWFLoader id="sfwLoader"/>
</mx:WindowedApplication>
Vấn đề là trong sự kêu gọi của swfApplication.init();
AIR chơi ném cho tôi một ngoại lệ:
an sandbox vi phạm: tập tin gọi: /// đường /to/the/application.swf không thể truy cập Giai đoạn do ứng dụng sở hữu: /SWFApplicationLoader.swf.
Điều này là do đâu đó trong application.swf
tôi sử dụng giai đoạn như thế này:
if (root.stage != null)
root.stage.addEventListener(Event.REMOVED, someFunction);
root.stage.stageFocusRect = false;
Làm thế nào tôi có thể tải ứng dụng này swf và SỬ DỤNG sân khấu mà không cần bất kỳ vấn đề?
Tính năng này có hoạt động trên nền tảng di động không? Nếu có, bạn có thể viết trình phát Flash cho iOS. – sydd
Bất kỳ ý tưởng nào tại sao tính năng này hoạt động với một mảng byte nhưng không hoạt động với thành phần của trình swfloader? – buddyp450