you must force those movieclips to load before you use have access to them. what i usually do is to set the export frame for classes to 2, and then go through the library and uncheck 'export in first frame' for all exported Mc's. then, on frame 2, make a single key frame and place an instance of all exported mc's on the stage, but out of view. in frame 1, i'll have a stop action and preloader code, and when all is loaded, gotoAndPlay frame 3.
On 6/16/07, Alexander Farber <[EMAIL PROTECTED]> wrote:
Dear flash coders, I've created a class representing playing cards and it works quite well for me: http://preferans.de/flash/Card.as http://preferans.de/flash/Card.fla To reduce the file size (from 300K to 120K), I don't keep images of complete 32 cards in the library, but instead I hold the 4 suit images (spades, hearts, clubs, diamonds) and 4 x 3 pictures (jack, queen and king) there and then create a card image "on the fly": public function set index(n:Number):Void { __index = n; pic_mc = this.createEmptyMovieClip('pic_mc', 10); var depth:Number = 10; var rank:Number = CARDS[n].rank; var suit:Number = CARDS[n].suit; var color:String = suit < DIAMONDS ? 'Black' : 'Red'; var eye:String = (UNKNOWN == rank || (JACK <= rank && rank <= KING)) ? CARDS[n].label : eye = SUITS[suit]; for (var key:String in EYE_POS[rank]) { var pos_obj:Object = EYE_POS[rank][key]; pic_mc.attachMovie(eye, eye + depth + '_mc', depth++, pos_obj); } // ...and so on: attach 2 card indices in the corners } Those suits and jack-queen-king images are all MovieClips in the library, with the following settings: Identifier: Hearts Class: Export for ActionScript [X] Export for runtime sharing [_] Export in first frame [X] My problem is that when I'm trying to postpone loading those MovieClips by unchecking the "Export in 1st frame" and by setting File->Publish Settings...->Flash-> ActionScript 2.0->Settings...->Export Frame for Classes to 2 or 10, then my movie stops working: the cards are empty, no suits and no jack-queen-kings are shown. Also my preloader TextField only show ups shortly :-( Does it make any sense to convert the MovieClips to Graphics in the library? The "Export in 1st frame" check box is (sometimes???) greyed out then... Thank you Alex PS: Here is the code from my Actions layer (to be found in http://preferans.de/flash/Card.fla ) stop(); var depth:Number = 10; var load_txt:TextField = this.createTextField('load_txt', depth++, Stage.width / 2, Stage.height / 2, 300, 100); onEnterFrame = function() { var loaded:Number = getBytesLoaded(); var total:Number = getBytesTotal(); load_txt.text = loaded + ' / ' + total; if (loaded >= total && loaded > 100) { delete onEnterFrame; gotoAndPlay('MAIN'); } }; //////////////////// And in the frame "MAIN" /////////// stop(); load_txt._visible = false; for (var i:Number = 0; i < Card.CARDS.length; i++) { var card_mc:MovieClip = this.attachMovie('Card', 'card' + i + '_mc', depth++); with (card_mc) { index = i; _x = card_mc._width / 2 + Math.floor(Math.random() * (Stage.width - card_mc._width)); _y = card_mc._height / 2 + Math.floor(Math.random() * (Stage.height - card_mc._height)); _rotation = Math.floor(Math.random() * 9 - 4); addEventListener('clicked', this); } } function clicked(evt_obj:Object):Void { var card_mc:MovieClip = evt_obj.target; // put the clicked card at the top card_mc.swapDepths(depth++); } _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com
-- John Van Horn [EMAIL PROTECTED] _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com