Home > Adobe Flex > Flex Sub-applications, Sandboxes & SWFLoader (Part 1)

Flex Sub-applications, Sandboxes & SWFLoader (Part 1)

A few months ago, I embarked on a project for 24 Hour Fitness that involved something I had only heard about at the 2008 Adobe MAX conference in San Francisco – “flex sub-applications”. There, I attended a lecture by Alex Harui on Flex Framework Features to Support Large Applications (listen to the lecture here on Adobe TV). I must admit the lecture had probably put many to sleep, but I was fascinated by the concept and to this day (granted, MAX was just a few months ago) I believe this will become a very important topic to many as the complexity and possibilities available in large-scale Adobe Flex applications becomes ever apparent.

For this reason, I appended a “Part 1″ to the title of this article as I don’t know if I can squeeze my experience with sub-applications into just one writing and I certainly plan in the coming months to venture even farther into these murky waters.

I think Alex’s main point behind his lecture was to unveil the new Marshall Plan bundled with Flex 3.2 (released during MAX). But before I can describe what the Marshall Plan is, it’s important to know why it came about.

Most applications you’ll ever build in Flex are probably on the smaller scale, ranging from anywhere between a few hundred kilobytes (final SWF size) to several megabytes of compiled Flex code (including the Flex framework). This doesn’t include embedded images or other assets which could dramatically increase that size (I typically try very hard NOT to embed assets to keep the final SWF as lean as possible). Some applications could be significantly larger, spanning hundreds or thousands of commands (if you use Cairngorm or other such MVC architecture), classes and MXML.

It’s always very important to understand that the entire application frame of your final SWF will be downloaded to the client in one shot. This could be a lengthy wait for some and the solution has always been to break up that large application into pieces, or “modules” that could be loaded and unloaded during runtime.

The possibility of caching some code in the client’s Flash Player for re-use by other applications was also created by using Runtime Shared Libraries (RSL’s). But because of “full class integration” (the ability to reference classes in the RSL by classname), the RSL must be compiled with the same version of Flex as the main application. RSL’s also have the disadvantage of not being unloadable. Once an RSL has been loaded at the onset of application startup, it’s there to stay.

Modules are another example of re-using functionality. Modules are collections of classes compiled into a SWF and are loaded by ModuleLoader. Classes in modules are not directly referenced by the main application. Instead both refer to a shared interface (IDataGrid, for example). This is called “partial class integration”. Modules can also be unloaded and removed from memory. Unfortunately because the main application and module share at least some assets, modules, too must be compiled by the same version of Flex as the main application.

Which brings us to a new concept called “sub-applications”, released as a part of Flex 3.2 in November, 2008 at Adobe’s MAX conference in San Francisco. Sub-applications have NO class integration, which is needed to support multi-versioning .

Sub-applications are completely individual, separate applications (identified by the root tag), compiled into a SWF that is loaded by a parent application through the SWFLoader component (you can also use Loader and added the loader object as a child to SWFLoader).

Previously, Flex 2 also supported the concept of sub-applications in that you could use SWFLoader to load another SWF application. You could even access properties in the sub-application from the main application using the SystemManager class. Unfortunately, Flex 2 was only able to load the sub-application into the same “SecurityDomain” (or sandbox) as the parent application. By playing in the same sandbox, the sub-application could have unrestricted access to variables in the main application…an unwanted side-effect especially if the sub-app is untrusted (say, written by a third-party).

With Flex 3.2, you have a little more control over how the sub-application SWF is loaded, primarily through two properties of SWFLoader. One is trustContent (which existed in Flex 2) and the other is loadForCompatibility (new as of Flex 3.2). And the changes in the Flex source code revolving around the new loadForCompatibility feature really serve as the basis for the new Marshall Plan.

The trustContent property specifies whether the sub-application is loaded into the same SecurityDomain as the host. This property is defaulted to false, which means SWF content loaded from separate domains (xyz.com instead of abc.com) will load without error if the separate domain does not have a crossdomain.xml policy file declaring that your domain has rights to access its content. This is preferred behavior, however your parent application would not be able to access the SWF content (via SWFLoader.content). This property is directly tied to the SWFLoader.loaderContext.securityDomain property and can also be set manually via ActionScript.

Setting trustContent to true is equivalent to copying the loaded SWF to your own server and loading it from there. This is one way to get around any security sandbox restrictions you might experience, however I also noticed that it also can cause other complications, most notably with singleton’s like Cairngorm’s ServiceLocator (which I’ll discuss in a later post).

The loadForCompatibility property specifies whether the sub-application is loaded into a peer ApplicationDomain as the parent (when set to true), or into a child ApplicationDomain (when set to false). This flag only pertains to applications loaded within the same SecurityDomain (if trustContent == true).

Child ApplicationDomains inherit classes from the parent (like UIComponent, Container, etc). This can cause obvious problems if both applications were compiled with different versions of Flex. A child sub-application written in Flex 3.2 may not wish to inherit the UIComponent definition of its parent application that was written in Flex 4. The loadForCompatibility flag forces SWFLoader to load the sub-application into a separate ApplicationDomain (when true) which keeps the definitions for these classes separate. This is most needed for multi-versioned applications. This flag should only be set to true if you know both applications will always be compiled with the same version of Flex.

In my next article, I’ll discuss some of the pitfalls I ran into with sub-applications and specifically, Cairngorm-based sub-applications. Stay tuned!

Categories: Adobe Flex Tags:
  1. December 2nd, 2024 at 00:01 | #1

    岐阜県 岐阜放送(GBS) 平日 5:45 – 7:
    05 2020年7月3日放送分をもって打ち切り。全ての仕事を投げ出し、放棄して会社を辞める」という本来あるべき選択肢が、当時の私にはありませんでした。 2014年9月1日に損保ジャパン日本興亜システムズに商号変更し、2016年10月1日に現社名に再度商号変更。経団連〈技術教育の画期的振興策の確立〉,63年11月経済同友会〈工業化に伴う経済教育〉(高校社会科内容の刷新),65年5月日経連〈後期中等教育〉,68年11月経済同友会〈大学教育の基本問題〉,69年2月日経連〈当面する大学問題〉等々である。

  2. December 2nd, 2024 at 00:05 | #2

    ヒストリー、信用情報)がないと商取引で信用されず、いくら現金を持っていても住宅を購入する際などに融資を受けられないことがある。 お住まいは赤坂御用地内にあり、電車通勤。大内糺 著「皇室の危機-「菊のカーテン」の内側からの証言」、宝島30編集部 編『「皇室の危機」論争』宝島社、1993年11月、5-34頁。 “上皇ご夫妻、仙洞御所に入居 代替わりでの引っ越し完了”.旧梨本宮、皇籍離脱以前:守正王妃伊都子、朝鮮王朝最後の皇太子妃で戦後は大韓民国国籍となった李方子の実母。

  3. December 2nd, 2024 at 00:12 | #3

    法文上の表記から、個人で指定管理者になることはできないと解される。 “. よしもと芸人 ペレ草田「Pele Station」. “TVh テレビ北海道”.補償内容がすぐに分かり比較検討ができること。非弁膜症性心房細動が全体の約半数を示し、その他に急性心筋梗塞、心室瘤、リウマチ性心疾患、人工弁、心筋症、洞不全症候群、感染性心内膜炎、非細菌性血栓性心内膜炎、心臓腫瘍などが含まれる。

  4. December 2nd, 2024 at 00:19 | #4

    人間離れした身体能力を持ち、強い正義感を持つ熱血青年。 「福沢良」名義。成人式を迎えておらず、貴族の能力が未覚醒の状態だが、それでもユニオンの改造人間を圧倒する実力を持つ。 そこで、先生は、次の時代を担う日本の若者に、世界のどの舞台に立っても堂々と自分の意志で行動できる人になってもらいたい、という熱き思いで、大正14年(1925年)に本校を創立され、もうすぐ100周年を迎えます。 なお、『新スタートレック』の続編である『スタートレック:ピカード』では初めてロミュラン星の崩壊後の世界が描かれたが、ロミュラン星の崩壊に至るまでの経緯などが微妙に異なる。

  5. December 2nd, 2024 at 00:47 | #5

    本日は第2期インターンシップ生の長束さんと第11期インターンシップ生のみなさんが陣中見舞いに来てくださいました。 “吉永小百合&天海祐希、日本版『最高の人生の見つけ方』で18年ぶり共演”.

    テレビアニメ新編集版第1話。 テレビアニメ新編集版第3話。
    テレビアニメ新編集版第4話。 テレビアニメ第4話。Blu-ray Disc/DVD 第2巻収録。 テレビアニメ第12話。Blu-ray Disc/DVD 第5巻収録。 テレビアニメ第2期第11話。 テレビアニメ第2期第6話。
    テレビアニメ第2期第3話。 テレビアニメ第14話。Blu-ray Disc/DVD 第6巻収録。 テレビアニメ第11話。Blu-ray Disc/DVD 第4巻収録。
    テレビアニメ第2話。Blu-ray Disc/DVD 第1巻収録。

  6. December 2nd, 2024 at 00:56 | #6

    “大人気ラジオドラマ「NISSANあ、安部礼司-BEYOND THE AVERAGE-」筧美和子と佐野ひなこがOL役でラジオドラマ初共演! 2000年 *三井信託銀行、三井倉庫、山九、丸善、岩谷産業、西華産業、日本ピストンリング、東京製綱、昭和電線電纜、志村化工、三菱製鋼、日本電工、日本冶金工業、日本金属工業、品川白煉瓦、ノリタケカンパニーリミテド、日本カーボン、東洋ゴム工業、日本油脂、旭電化工業、日本合成化学工業、日本化学工業、日本カーバイド工業、ラサ工業、東邦レーヨン、富士紡績、ホーネンコーポレーション、日本甜菜製糖、住友石炭鉱業、三井鉱山、ニチロ、東燃、*富士銀行、*第一勧業銀行、*日本興業銀行、国際電信電話、日本証券金融、鉄建建設 大和証券グループ本社、NTTドコモ、第二電電、東日本旅客鉄道、住友海上火災保険、安田信託銀行、住友信託銀行、静岡銀行、東海銀行、大和銀行、日本興業銀行、ジャスコ、イトーヨーカ堂、セブン-イレブン・

  7. December 2nd, 2024 at 01:04 | #7

    なお、合併前の1929年(昭和4年)にも先述の「名古屋地下鉄道」として直通路線の構想は存在したが、着工までに至らなかった。 また、020の支店コードは横浜店ではなく、横浜港店に割り当てがされており、前述のような県庁所在地名店舗の支店コードの下一桁が0にならない場合もある。 などに使われていたが、現在使用されているかどうかは不明。 55年体制が崩壊した中、自民党は単独での再建を諦めて、創価学会を後ろ盾とする公明党との自公連立政権が始まった。

  8. December 2nd, 2024 at 07:36 | #8

    『株式会社ダイエー及び株式会社光洋の経営統合ならびに近畿エリアにおけるスーパーマーケット事業の運営の承継に関する基本合意書締結のお知らせ』(プレスリリース)ダイエー、光洋、イオン(3社連名)、2018年10月10日。株式会社紀伊國屋書店 (2015年12月15日).
    2015年12月15日閲覧。 “【7/30無料ライブ配信】チャイナPOP研究会「羅小黒戦記」その先の中国ポップカルチャーの世界へ”.

    109話「ボーグ暗黒フロンティア計画」で初登場。劇場版第3弾の終盤ではその正体が、ヴィンチ家が人類の発展に貢献する知識の源である「プロメテウスの宮殿」であることが明らかになった。

  9. December 3rd, 2024 at 01:54 | #9

    企業側は大学生に職場体験の機会を与えてくれているのであって、アルバイトのように個人との労働契約ではありません。 そこはそれ、在に生れた女だけあつて、働くことは家内も克(よ)く働く。
    「校内では禁酒禁煙」の校則は真面目に守っている。断酒をし、抗うつ剤等を飲み休養すれば生きていて良かったと思える日々が必ず来ると私は考えます。当インターンシップに参加するまでは建設現場に参加したことは無く、全てが新しい体験でした。免責設定と少額請求について解説します。北海道限定で北海道日本ハムファイターズの選手とコラボレーション企画商品が期間限定で発売されている。

  10. December 3rd, 2024 at 02:25 | #10

    “悪魔くん / 水木 しげる 著”. “貸本版悪魔くん 普及版 3|水木しげる”.
    小学館コミック.初代悪魔くん役・ “『貸本版 悪魔くん』(水木 しげる):水木しげる漫画大全集”.

    “悪魔くん:新作アニメ制作 佐藤順一が総監督 2代目悪魔くんのビジュアルも”.
    MANTANWEB.保険業に関しては、保険業法を根拠法とし、金融庁による監督を受ける。産婦人科へ行ってすぐに、邪魔な小百合を殺害するため地下牢へ行くが、彼女に迫る危険を察知した倉田の計らいで、すでにすずたちにより晴海のアパートへと移されていた。

  11. December 3rd, 2024 at 02:31 | #11

    2016年5月27日時点のオリジナルよりアーカイブ。玉木研二「オバマ大統領に伝えたい 広島、71年の営み」『毎日新聞』毎日新聞社、2016年5月27日。長年の大量飲酒により様々な問題を起こしてきて、その度に母親に尻拭いをさせてきて自分は現実から逃避する人生を歩んできて、問題や現実に立ち向かう気力、もっと言えば生きる気力させも失せてきておりました。 』と挨拶すると、『うん、しっかりね』と、先ほどの迫力のあった顔からは想像もできない笑顔が返ってきた。 1948年(昭和23年)5月16日 – 白紙ダイヤ改正。

  12. December 3rd, 2024 at 05:17 | #12

    また、終身保険は養老保険の保険期間を生命表の生存者が0になった時点に伸ばしたものである。 その時点は会社によって異なっており概ね105歳付近が理論上の満期となっている。純保険料とは、保険金の支払に充てるために徴収される保険料であり、付加保険料とは、それ以外に保険会社の事業経費として徴収される保険料である。技術面や費用面の課題から、自社でメタバースを構築するのが難しい場合は、既存のメタバース構築プラットフォームの利用も検討してみましょう。

  13. December 3rd, 2024 at 08:19 | #13

    とある町へ差掛かつた頃、急に車夫は車を停めて、冷々(ひや/″\)とした空気を呼吸し乍(なが)ら、額に流れる汗を押拭つた。 『始めえ–』敬之進は戯れに指揮するやうな調子で言つた。 』と敬之進は身を慄(ふる)はせ乍ら、『時に瀬川君、まだ斯の通り日も暮れないのに、洋燈(ランプ)を持つて歩くとは奈何(どう)いふ訳だい。 『実に瀬川君なぞは羨ましいよ。何卒(どうか)して我輩も、もう一度君等のやうに若くなつて見たいなあ。 その結果、ニヒリスティックな価値相対主義の考え方に基づき、何事も信じないという態度を共有する集団ができあがってしまった。 これからライバーをしようと考えている人は枠主としてはもちろん、リスナーと信頼関係を築き、楽しむことがSpoonで稼ぐ一番のコツです。

  14. December 3rd, 2024 at 08:19 | #14

    DT討伐時はエレクから譲り受けたライフル型のディーディオスを使用。 DT討伐時はエレクから譲り受けた剣状のディーディオスを使用。 その際にはペットと同じ通信機を使用していた。 2022年3月、中国ビリビリで小島瑠璃子とのコラボ動画が配信(【矢野浩二】崩溃行为大赏,浩二哥专访小岛瑠璃子最先崩溃的居然是!?)。紺の討伐後、本当に死んだかどうか疑問を抱きKTとともにセングレンとマリアンの行動を調査するが、結局一行の芝居に騙されて取り逃がしてしまう。前述の100ミリマシンガンのマガジンの自動給弾装置がついており、小隊単位での戦闘の火力支援となる。

  15. December 3rd, 2024 at 09:15 | #15

    短い就活期間を勝ち抜くには今から準備を! まさに就活のとき、みんな第一志望じゃないところを第一志望って言っていて、「お前ら本気かよ?日本の就活スケジュールは次のように変遷を遂げています。 サポートメンバーには、藤本ひかり(ベースex.
    お金ではなく、人をどう育てていくかということが大切だと思います。僕はコンテンツクリエイターになって、のめり込んで背負いたいと思います。最後に、僕の同世代のためにも、この時代どう生きたらいいのかというアドバイスをいただければ。代表作をつくればいいと思う。 “西野七瀬 乃木坂46からの卒業を発表”.第3話ではそこで同級生だった青芝学院高校の高杉が自分たちを罵ったことにイラついた倉木を制し彼を殴り退学処分になりかけたが、久美子から「人生はいつだってやり直せる」と教えられ、投げやりな態度を改めていった。

  16. December 4th, 2024 at 02:08 | #16

    I couldn’t resist commenting. Well written!

  17. December 4th, 2024 at 02:34 | #17

    築地魚河岸内に入居している店舗は、豊洲市場で営業している卸業者や仲卸業者などに限定されており、もともと築地場内市場に入っていた仲卸業者が中心となっています。 ついで37年,社会党内閣の下で初等・ 3月19日 – インドでヒンドゥー至上主義の人民党による連立政権成立。笑いの金メダル – エンタの神様 – さとこいめぐさん – 爆笑オンエアバトル –
    大人のコンソメ – リチャードホール – 平成教育2005予備校 – 本能のハイキック!

  18. December 4th, 2024 at 06:57 | #18

    4月28日 – ロムロ・ 4月28日 – ドミトリ・ 4月29日 – リナ・ 4月29日
    - ワン・ 4月30日 – ショーン・ 4月27日 – パトリック・
    5月11日 – アンドレス・ 5月11日 – クリスティアン・ 5月10日 – ブレント・ 5月10日 – エドワード・ 5月14日 – マーク・

  19. December 4th, 2024 at 08:20 | #19

    賞与(ボーナス)の要求に対して、会社から回答が申し渡された。 とはいえ庶民にとっては、求められる学力もさることながら、上流階級に物怖じしない必要があるなど、精神的にも非常にハードルの高い校風のため、特待生となるには余程図太い神経が必要と噂されている。抗リン脂質抗体症候群、ウィリス動脈輪閉塞症(もやもや病)、血管炎や凝固異常、奇異性脳塞栓症(Paradoxical brain embolism)などが原因としてよく知られている。 3月13日、組合からの賃金・ この苦しみを治療につなげることが治療の唯一のチャンスなのに、家族は「問題を表沙汰にしたくない」などの世間体や、金融機関のとりたてに負け て、かわりに払ってしまうのです。

  20. December 4th, 2024 at 08:47 | #20

    御身は己達をも陸をも海をも滅ぼすだろう。御身の陰翳の物凄い腭(あぎと)を開(ひら)いてくれられい。激辛唐揚げを買うと、御手洗が彼女自身が安部の部下ということで1個おまけをくれた。第6話で鳥乙女と入れ替わりで登場しなくなった。葉月恋ちゃん(山岸里紗)が登場。自分が観られなかったからともう一度再生しようとする有里を止め、これが呪いのビデオかもしれないと怖がります。自然の秩序を紊(みだ)したのか。 また、自宅から参加することができるので新型コロナへの感染リスクを大幅に減らすことができます。 2017年入社)882名対象の質問紙調査に基づき分析を行った。増税の前にやることがあると、歳出カットや成長戦略を行なう必要性が唱えられてきたが、問題を先送りしてきた結果である。

  21. December 4th, 2024 at 09:18 | #21

    A motivating discussion is definitely worth comment. I believe that you ought to publish more about this subject matter, it may not be a taboo subject but usually people do not speak about such topics. To the next! All the best.

  22. December 4th, 2024 at 16:03 | #22

    Pretty! This has been an extremely wonderful post. Many thanks for supplying this information.

  23. December 4th, 2024 at 23:11 | #23

    Oh my goodness! Incredible article dude! Thank you, However I am encountering troubles with your RSS. I don’t know the reason why I am unable to subscribe to it. Is there anybody else having similar RSS issues? Anybody who knows the solution can you kindly respond? Thanks!

  24. December 5th, 2024 at 06:19 | #24

    An impressive share! I have just forwarded this onto a colleague who had been doing a little homework on this. And he actually bought me breakfast simply because I stumbled upon it for him… lol. So allow me to reword this…. Thanks for the meal!! But yeah, thanx for spending the time to talk about this matter here on your web page.

  25. December 5th, 2024 at 18:36 | #25

    Excellent article! We will be linking to this great post on our site. Keep up the great writing.

  26. January 1st, 2025 at 13:35 | #26

    I blog quite often and I seriously appreciate your information. This great article has really peaked my interest. I am going to bookmark your blog and keep checking for new information about once a week. I subscribed to your Feed as well.

  27. January 13th, 2025 at 16:26 | #27

    Having read this I thought it was very enlightening. I appreciate you spending some time and effort to put this article together. I once again find myself personally spending a significant amount of time both reading and leaving comments. But so what, it was still worthwhile!

  28. January 19th, 2025 at 06:31 | #28

    She ultimately fulfilled this command by slaying a clone of Luke referred to as Luuke Skywalker, whom Palpatine had made in an try to make use of him against the unique, although this plot ultimately would fail because of Mara’s fatal attack on the clone.

  29. January 19th, 2025 at 07:01 | #29

    By taking possession of our health and properly-being, prioritizing self-care, and reflecting on our health and nicely-being, we will ensure that we’re taking the necessary steps to maintain our health and properly-being.

  30. January 19th, 2025 at 11:06 | #30

    PEI – Alternative Insight.

  31. January 19th, 2025 at 11:29 | #31

    Do you think you’d question the speed of a Chevrolet Cheetah?

  32. January 19th, 2025 at 11:32 | #32

    That mentioned, no international standard has but been agreed upon and because of its lengthy-established tradition of discretion, the art market as a whole remains resistant to increased transparency.

  33. January 19th, 2025 at 11:45 | #33

    Managing debt can really feel powerful, but a free printable debt thermometer is a great tool to help you on your journey.

  34. January 19th, 2025 at 14:07 | #34

    I instructed my daughter to do this for something occurring at college and now she does it all the time.

  35. January 19th, 2025 at 15:06 | #35

    Kotaku named the game as one in every of their game of the yr nominees.

  36. January 20th, 2025 at 10:20 | #36

    颅In addition to the lap-by-lap reporting, color analysis and scoops from the pit reporters, NASCAR broadcasts feature a slew of high-tech features that will blow your wheels off, or maybe just annoy you.

  37. January 20th, 2025 at 11:54 | #37

    What makes the situation more unpalatable is that the Bank of Eire fund the mortgage offers available through the Publish Workplace.

  38. January 21st, 2025 at 03:29 | #38

    Each of the blue gears freewheel on the yellow shaft on the completely different charges managed by their ratios to the layshaft.

  39. January 21st, 2025 at 04:01 | #39

    The greater issue appears to be the outright challenge to the current monetary policy of the Federal Reserve and recent comments from Ben Bernanke.

  40. January 21st, 2025 at 04:31 | #40

    For many people, taxes take the center part during tax filing season, however proper tax planning implies looking further at the Kind 1040 you undergo the inner Income Service every year.

  41. January 21st, 2025 at 04:39 | #41

    In 2018, he re-joined Eintracht Frankfurt on loan, earlier than signing completely the following season.

  42. January 21st, 2025 at 05:00 | #42

    Our staff has over 70 years of mixed expertise in personal damage and wrongful loss of life cases.

  43. January 21st, 2025 at 05:22 | #43

    Opposite to expectations, Hyeong-seok manages to dodge Jin-seong’s punches and even lands a shocking knockout punch, leaving the whole college in shock.

  44. January 21st, 2025 at 05:27 | #44

    A complete property plan lets you make preparations for incapacitation prematurely, so you aren’t helpless when the time comes.

  45. January 21st, 2025 at 05:34 | #45

    Nevertheless, Weinberger bought an answer out of Faulkner, who admitted that his testimony was merely opinion, continuing the argument that it could be several years before the railroad may be capable to undertake it.

  46. January 21st, 2025 at 05:34 | #46

    All successful Forex traders have one thing in common – they risk smartly.

  47. January 21st, 2025 at 05:44 | #47

    Now it counts as a accomplished 5 wave decline and yesterday’s bounce gets the RSI out of oversold territory.

  48. January 21st, 2025 at 05:59 | #48

    Nashville at that time was still a small settlement in an unlimited wilderness, however its central location and status because the state capital made it the political, industrial, financial and religious heart of the state.

  49. January 21st, 2025 at 06:17 | #49

    It implies that your whole monthly debt, including mortgage, should be no more than 36 p.c of your monthly revenue.

  50. January 21st, 2025 at 06:38 | #50

    Hynes, Mary Ellen (1993).

Comment pages
  1. No trackbacks yet.