[swfmill] (flash8) add linkage to jpg/png directly - *STILL* possible ? + Fonts (Text version of previous post)
MARTIN Pierre
hickscorp at gmail.com
Tue Jul 18 09:05:12 EDT 2006
Okay... That's your're final answer i bet :-)
Originaly i was asking if there was a way to do this, not if swfmill
*was* like the flash IDE, or if what i wanted to achieve was present
since flash 8 or what. So please readers, don't consider this as *the*
answer, if someone has another guess i'm interested. And since i read
just here:
http://www.osflash.org/pipermail/swfmill_osflash.org/2005-October/000264
that there is a version which is supposed to handle a "bitmap" importing
with direct linkage function, i'm really exited to know if it was true
or not :-)
Now just for those who needs the function, attached is a very simple
class which handles bitmap loading. Each time you ask for a bitmap it is
loaded but *NOT* unloaded. So when you ask for the same bitmap twice, it
is much more faster to get it if it was cached to memory. Be careful
thought, it *can* consume a lot of memory if you misstake with the cache
parametter. It can be used like this:
CBitmapManager.GetBitmap("bmpPipo"); // Loads the bitmap named
"bmpPipo" and cache it for later calls.
CBitmapManager.GetBitmap("bmpPipo", false); // Loads the bitmap named
"bmpPipo" but doesn't "cache" it.
import flash.display.BitmapData;
// The simple Bitmap Loader class. Handles caching of requested bitmaps.
class com.CreativeHazard.UI.CBitmapManager {
// Set to true if you compile with the Macromedia's compiler.
private static var REAL_MM_FLASH :Boolean = false;
// A simple array which will hold "cached" bitmaps.
private var alLoaded :Array = null;
// The current singleton instance.
private static var cInstance :CBitmapManager = new
CBitmapManager();
// Main constructor, which is private to avoid external instanciation.
private function CBitmapManager() {
alLoaded = new Array();
}
// Returns a requested Bitmap from it's "linkage" ID. If bCache
isn't given, it's defaulted to true.
public static function GetBitmap(szID:String, bCache:Boolean)
:BitmapData {
// Look up for an existing version of the bitmap in the cache array.
if (cInstance.alLoaded[szID]!=undefined)
return cInstance.alLoaded[szID];
// Default the caching parametter.
if (bCache==undefined)
bCache = true;
var cToRet :BitmapData;
// If compiling with MM, just load the bitmap from it's linkage ID.
if (REAL_MM_FLASH) {
cToRet = BitmapData.loadBitmap(szID);
// The given linkage ID was wrong. Stop here.
if (cToRet==undefined)
return undefined;
}
// If compiling with MTASC, the bitmap linkage ID doesn't exist.
// SWFMill has put the bitmap in a container with the linkage ID.
else {
// Load the container.
var mcLoader :MovieClip = _root.attachMovie(szID,
"mcLoader", _root.getNextHighestDepth());
// If undefined, the
if (mcLoader==undefined)
return undefined;
// Initialize the bitmap planes depending on the loaded MC size.
cToRet = new
BitmapData(mcLoader._width, mcLoader._height, true, 0x0);
// Draw the loaded MC into our bitmap planes.
cToRet.draw(mcLoader);
// Remove the loaded MC from the stage.
mcLoader.removeMovieClip();
}
// If the caching argument was true, store the result.
if (bCache)
cInstance.alLoaded[szID] = cToRet;
// All done!
return cToRet;
}
// Internal singleton method. Just returns the existing instance or
Instanciate it.
private static function GetInstance() :CBitmapManager {
return cInstance;
}
}
Anyway thanks for your help. Luke, do you know about the 2 other
questions (Font smoothing, project maintenance)?
Friendly regards, and good big mega hyper luck with the project...
Pierre.
P.S.: Do you actually need additionnal developpers on this project, or
is your team "full" yet? Just to know ;-)
Luke Schreur wrote:
>>> While in the MMFlash IDE, when i place a picture in the library
>>> and assign it a "linkage" name, it is then accessible directly
>>> with this name.
>>>
>
> Well, swfmill isn't the Flash IDE. Also, this feature only exists in the
> Flash IDE since version 8.
>
>
>>> That's kind of dirty
>>>
>
> There is nothing dirty about it. It is just the way it works :)
>
>
> -----Original Message-----
> From: swfmill-bounces at osflash.org [mailto:swfmill-bounces at osflash.org]
> On Behalf Of MARTIN Pierre
> Sent: Tuesday, 18 July 2006 11:44
> To: swfmill at osflash.org
> Subject: Re: [swfmill] (flash8) add linkage to jpg/png directly -
> *STILL* possible ? + Fonts (Text version of previous post)
>
> Well, it's almost this :-)
>
> Actually, my library looks like this (don't mind the "bitmap-id" stuff,
> it's only some late testing):
> <?xml version="1.0" encoding="iso-8859-1" ?>
> <movie version="9" width="640" height="480" framerate="31">
> <background color="#646464"/>
> <library>
> <frame>
> <clip id="imgPanelB" bitmap-id="imgPanelB"
> import="library/Artwork/Bottom.png"/>
> <clip id="imgPanelT" bitmap-id="imgPanelT"
> import="library/Artwork/Top.png"/>
> <clip id="imgPanelL" bitmap-id="imgPanelL"
> import="library/Artwork/Left.png"/>
> <clip id="imgPanelR" bitmap-id="imgPanelR"
> import="library/Artwork/Right.png"/>
> <clip id="imgPanelBL" bitmap-id="imgPanelBL"
> import="library/Artwork/BottomLeft.png"/>
> <clip id="imgPanelBR" bitmap-id="imgPanelBR"
> import="library/Artwork/BottomRight.png"/>
> <clip id="imgPanelTL" bitmap-id="imgPanelTL"
> import="library/Artwork/TopLeft.png"/>
> <clip id="imgPanelTR" bitmap-id="imgPanelTR"
> import="library/Artwork/TopRight.png"/>
> <clip id="imgPanelTR" bitmap-id="imgPanelTR"
> import="library/Artwork/TopRight.png"/>
> <clip id="imgPanelRH" bitmap-id="imgPanelRH"
> import="library/Artwork/ResizeHandle.png"/>
> <font id="Fnt_Generic_10"
> import="library/Artwork/Arial.ttf"/>
> </frame>
> </library>
> </movie>
>
> While in the MMFlash IDE, when i place a picture in the library and
> assign it a "linkage" name, it is then accessible directly with this
> name. Eg: Bitmap.loadBitmap("linkage_name"). The problem with my SWFMill
>
> is that the bitmap is put *in* a movieclip, which name is the specified
> linkage ID. So my flash workaround is what you told, loading the MC
> first, then getting the bitmap.
> That's kind of dirty, and since i want my sources to be compilable
> either from MMFlash and mtasc + swfmill, i had to code this:
> private function GetBitmap(szID:String) :BitmapData {
> if (CClientGameEngine.REALMMCFLASH) {
> return BitmapData.loadBitmap(szID);
> } else {
> var mcLoader :MovieClip = _root["mcLoader"];
> mcLoader = _root.attachMovie(szID, "mcLoader",
> _root.getNextHighestDepth());
> var bitLoad :BitmapData = new
> BitmapData(mcLoader._width, mcLoader._height, true, 0x0);
> bitLoad.draw(mcLoader);
> mcLoader.removeMovieClip();
> return bitLoad;
> }
> }
>
> What i want to achieve is to really have the bitmap "named" with the
> linkage string, exactly like it would be in MMCFlash...
>
> Well, anyway thanks for your answer. Hope you will have another idea :-)
>
> Pierre
>
> Luke Schreur wrote:
>
>> I hope this is what you are trying to do. In the first frame you
>>
> create
>
>> your library (similar to Flash's export in first frame). Then you
>>
> import
>
>> a bitmap into your library. Then you place the bitmap inside a library
>> movieclip. Now you can attach the movieclip to the stage or whatever.
>>
> I
>
>> did this from the top of my head so there could be typos:
>>
>> <?xml version="1.0" encoding="iso-8859-1" ?>
>> <movie width="320" height="240" framerate="12">
>> <background color="#ffffff"/>
>>
>> <frame>
>> <library>
>> <clip id="foo"
>> import="library/foo.jpg"/>
>> <clip id="FooClip">
>> <place id="foo"
>> name="myFooInstance" x="10" y="10" depth="1" />
>> </clip>
>> </library>
>> </frame>
>> </movie>
>>
>> In AS2.0
>>
>> attachMovie("FooClip", "myFooClip", 0);
>>
>> Hope this helps...
>>
>> -----Original Message-----
>> From: swfmill-bounces at osflash.org [mailto:swfmill-bounces at osflash.org]
>> On Behalf Of MARTIN Pierre
>> Sent: Tuesday, 18 July 2006 10:48
>> To: swfmill at osflash.org
>> Subject: [swfmill] (flash8) add linkage to jpg/png directly - *STILL*
>> possible ? + Fonts (Text version of previous post)
>>
>> Sorry, last post seemt to be a bit tricky to read because of my HTML
>> formating... Here is a text version so everybody will be able to read
>>
> it
>
>> in the archive.
>>
>>
>>
> ------------------------------------------------------------------------
>
>> --------
>>
>> Hello list people,
>>
>> I'm trying to understand the how to use SWFMill to use bitmaps in my
>> movieclips, accessed from AS2 only.
>> I have tried a lot of workarounds, and have currently one which works
>> with the SWFMill "bug" (Which attach the bitmap within a container).
>>
>> Recently, i have found this post:
>>
>>
> http://www.osflash.org/pipermail/swfmill_osflash.org/2005-October/000264
>
>> .html
>> and so have tried to make the attached 0.2.11.1 version to work the
>>
> way
>
>> i want.
>> Anyway, and after a ton of tests, i can't manage it to attach my
>>
> bitmap
>
>> the proper way.
>>
>> So my question is, is it a solved issue? Have i to keep my
>> movieclip-container-size-detection-loadbitmap-tricky workaround?
>>
>> Another question, very simple. Is it possible to avoid the "smooth"
>> effect when using SWFMill imported fonts? For instance, if i want to
>>
> get
>
>> an embeded version of the "Arial" (Some of windows default fonts) size
>>
>
>
>> 10 in my SWF, what is the trick to avoid antialiasing?
>>
>> Last question, because the online "official" version is still the
>> 0.2.11, and because i only have found the 0.2.11.1 version with a luck
>>
>
>
>> on the mailing list, i really appreciate if someone can tell me where
>>
> to
>
>> get latest versions. If this developpement is dead, is Dan now
>>
> involved
>
>> in another, more recent, similar project i can use? I know a bit about
>>
>
>
>> HAXE, but it seems very unstable and "fragile", and i really wish to
>> keep my FLAME set up as it is now...
>>
>> Anyway, thanks a lot for any kind of answer.
>> Friend regards,
>> Pierre.
>> P.S.: Please excuse my poor english. BTW i'm french and the french
>>
> lack
>
>> of documentation really hurts ;-)
>>
>> _______________________________________________
>> swfmill mailing list
>> swfmill at osflash.org
>> http://osflash.org/mailman/listinfo/swfmill_osflash.org
>>
>>
>>
>
> _______________________________________________
> swfmill mailing list
> swfmill at osflash.org
> http://osflash.org/mailman/listinfo/swfmill_osflash.org
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: HicksCorp.vcf
Type: text/x-vcard
Size: 257 bytes
Desc: not available
Url : http://osflash.org/pipermail/swfmill_osflash.org/attachments/20060718/64ecfe9c/HicksCorp-0001.vcf
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 2430 bytes
Desc: S/MIME Cryptographic Signature
Url : http://osflash.org/pipermail/swfmill_osflash.org/attachments/20060718/64ecfe9c/smime-0001.bin
More information about the swfmill
mailing list