“FlashPlatform SourceIntegration”的版本间的差异
来自Blueidea
第7行: | 第7行: | ||
'''此方法會增加swf文件的大小。慎。''' | '''此方法會增加swf文件的大小。慎。''' | ||
− | ( | + | (此示例您需要在項目根目錄下放置bunny.jpg文件。如果找不到指定文件會返回一個編譯錯誤。) |
<syntaxhighlight lang="actionscript"> | <syntaxhighlight lang="actionscript"> | ||
package { | package { | ||
第88行: | 第88行: | ||
==載入其他類型文件== | ==載入其他類型文件== | ||
− | + | 使用URLLoader或URLStream | |
+ | (此示例您需要在項目根目錄下放置book.txt文件。如果找不到指定文件會返回一個編譯錯誤。) | ||
+ | <syntaxhighlight lang="actionscript"> | ||
+ | package { | ||
+ | import flash.display.Shape; | ||
+ | import flash.display.Sprite; | ||
+ | import flash.display.StageAlign; | ||
+ | import flash.display.StageScaleMode; | ||
+ | import flash.events.Event; | ||
+ | import flash.net.URLLoader; | ||
+ | import flash.net.URLLoaderDataFormat; | ||
+ | import flash.net.URLRequest; | ||
+ | import flash.utils.ByteArray; | ||
+ | |||
+ | [SWF(width="128", height="128")] | ||
+ | /** | ||
+ | * The <code>Text</code> class.<br/> | ||
+ | */ | ||
+ | public class Test extends Sprite { | ||
+ | //========================================================================== | ||
+ | // Constructor | ||
+ | //========================================================================== | ||
+ | /** Constructor */ | ||
+ | public function Test() { | ||
+ | stage.align = StageAlign.TOP_LEFT; | ||
+ | stage.scaleMode = StageScaleMode.NO_SCALE; | ||
+ | $loader = new URLLoader(); | ||
+ | $loader.dataFormat = URLLoaderDataFormat.BINARY; | ||
+ | $loader.addEventListener(Event.COMPLETE, loader_completeHandler); | ||
+ | $loader.load(new URLRequest("book.txt")); | ||
+ | } | ||
+ | private var $loader:URLLoader; | ||
+ | //========================================================================== | ||
+ | // Event listeners | ||
+ | //========================================================================== | ||
+ | private function loader_completeHandler(event:Event):void { | ||
+ | const DATA:ByteArray = $loader.data; | ||
+ | } | ||
+ | } // <- end class -> | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | 注意$loader.data在URLLoaderDataFormat常量不同時需要以不同的類型訪問 | ||
+ | URLLoaderDataFormat.BINARY >> ByteArray | ||
+ | URLLoaderDataFormat.TEXT >> String | ||
+ | URLLoaderDataFormat.VARIABLES >> Object; |
2011-04-13T23:41:58的版本
資源集成。
嵌入素材
以嵌入圖片為例。最簡單快速的方式。
此方法會增加swf文件的大小。慎。
(此示例您需要在項目根目錄下放置bunny.jpg文件。如果找不到指定文件會返回一個編譯錯誤。)
package { import flash.display.Bitmap; import flash.display.Shape; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; [SWF(width="128", height="128")] /** * The <code>Text</code> class.<br/> */ public class Test extends Sprite { //========================================================================== // Constructor //========================================================================== /** Constructor */ public function Test() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; const B:Bitmap = new $clazz() as Bitmap; addChild(B); } [Embed(source="bunny.jpg")] private var $clazz:Class; } // <- end class -> }
運行後效果如下。

外部載入素材
此示例效果和上面一樣,只是改為讀入而非綁定。
package { import flash.display.Loader; import flash.display.Shape; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.net.URLRequest; [SWF(width="128", height="128")] /** * The <code>Text</code> class.<br/> */ public class Test extends Sprite { //========================================================================== // Constructor //========================================================================== /** Constructor */ public function Test() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; $loader = new Loader(); $loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_completeHandler); $loader.load(new URLRequest("bunny.jpg")); } private var $loader:Loader; //========================================================================== // Event listeners //========================================================================== private function loader_completeHandler(event:Event):void { addChild($loader); } } // <- end class -> }
注意Flash對下載有並發連接數限制。 所以請不要使用
for(var i:int = 0; i < n; i++) { var loader:Loader = new Loader(); loader.load(new URLRequest("img" + i + ".jpg")); }
載入其他類型文件
使用URLLoader或URLStream (此示例您需要在項目根目錄下放置book.txt文件。如果找不到指定文件會返回一個編譯錯誤。)
package { import flash.display.Shape; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.utils.ByteArray; [SWF(width="128", height="128")] /** * The <code>Text</code> class.<br/> */ public class Test extends Sprite { //========================================================================== // Constructor //========================================================================== /** Constructor */ public function Test() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; $loader = new URLLoader(); $loader.dataFormat = URLLoaderDataFormat.BINARY; $loader.addEventListener(Event.COMPLETE, loader_completeHandler); $loader.load(new URLRequest("book.txt")); } private var $loader:URLLoader; //========================================================================== // Event listeners //========================================================================== private function loader_completeHandler(event:Event):void { const DATA:ByteArray = $loader.data; } } // <- end class -> }
注意$loader.data在URLLoaderDataFormat常量不同時需要以不同的類型訪問 URLLoaderDataFormat.BINARY >> ByteArray URLLoaderDataFormat.TEXT >> String URLLoaderDataFormat.VARIABLES >> Object;