Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Загрузка битмапов из подгружаемой SWF (http://www.flasher.ru/forum/showthread.php?t=129242)

dark256 27.08.2009 17:19

Загрузка битмапов из подгружаемой SWF
 
В библиотеке подгружаемой свф-ки лежит серия картинок с включенными Export for AS и Export in first Frame. Идентификаторы вида 1.png, 2.png и т.д.

В осн свф-ке на стэйдже лежит клип sota. Внутри него еще клип surf.

Код AS1/AS2:

import flash.display.BitmapData
 
var LIB = _root.createEmptyMovieClip("LIB",6000)
 
var my_mcl:MovieClipLoader = new MovieClipLoader       
var my_lst:Object = new Object
my_mcl.addListener(my_lst)
 
my_mcl.loadClip( "surfaces.swf", LIB )
 
my_lst.onLoadInit = function( LIB:MovieClip)
{
        trace (my_mcl.getProgress( LIB ).bytesTotal)
 
        var linkageId:String = "1.png"
 
        var myBitmapData:BitmapData = BitmapData.loadBitmap(LIB.linkageId)
 
        trace(myBitmapData instanceof BitmapData)
 
        sota.surf.attachBitmap(myBitmapData, 1)
}

Данные получены (объем типа байтов есть), в клипе пусто, на трэйсе - false
Либо я неправильно обращаюсь к instances в библиотеке подгруженной свф-ки,
либо на шкалу грузящей свф-ки я вобще не могу перетаскивать битмапы из подгружаемых свф-ок?

Или как?

Добавлено через 16 минут
Вот как вариант в подгружаемую свф-ку вставил функцию

Код AS1/AS2:

import flash.display.BitmapData
 
function getBitMap( mov:MovieClip, linkageId:String )
{
        var myBitmapData:BitmapData = BitmapData.loadBitmap(linkageId)
        mov.attachBitmap(myBitmapData, 10)       
}

Из основной свф-ки соответсвенно вызов
Код AS1/AS2:

my_lst.onLoadInit = function( LIB:MovieClip) 
{
    LIB.getBitMap(sota.surf, "1.png")
}

Заработало.... но как-то это некрасиво... нет?

Добавлено через 2 часа 1 минуту
Ну что ж тут поделать-то?
Вышеозначенный способ загрузки картинок поверхности использован тут:

http://vskazke.ds-game.ru/CONSTRUCTOR.html

Сгенерите поле 7 на 7. Залить текстуркой. Поводить мышкой. Гексы "оплывают" при наведении мышки! И так после каждого движения карты....

Код AS1/AS2:

var mark:MovieClip = setUpContainer()
var window:Rectangle = new Rectangle(viewX, viewY, viewXW, viewYW);
mark.scrollRect = window
 
function setUpContainer():MovieClip {
var mc:MovieClip = _root.createEmptyMovieClip("mark",1000)       
var content:MovieClip = mc.createEmptyMovieClip("content", 100)       
//content.cacheAsBitmap = true
return mc
}

Закомментил кэшбитмапа - эффект пропал. Типа на этом - все? Не судьба уже? :(

Добавлено через 17 часов 16 минут
Еще проблема - у подгружаемых битмапов получаются драные края. Те что диагональные. Как будто картинки состыкованы не вплотную. Уменьшение расстояния между клипами не помогает - все равно остается эффект "щели" между картинками.
Код AS1/AS2:

        mov.attachBitmap(myBitmapData, this.getNextHighestDepth())
        mov.forceSmoothing = true

Не помогает. Ощущение что к картинке добавляется по краю какой-то паразитный цвет, как в gif, matte.... Какие-нибудь настройки в данном случае существуют?

И ведь все эти топики - от лени..... Лень 500 картинок ручками конвертить в 500 клипов!....
Кстати - нет ли для флэша (IDE) каких-нть утилит чтобы автоматизировать этот процесс? Макросы там какие-то или еще что?


Часовой пояс GMT +4, время: 16:13.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.