![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Привет всем.
Есть основная флэшка, движок игры. В ней много уровней, каждый уровень со своей специфической графикой и звуками. Однако физика и суть объектов в принципе не меняется. Т.е. на одном уровне деревянные бочки как препятствия на другом предположим арбузы и т.п. ![]() И вот встал вопрос - как эти ресурсы грузить? Очевидно, что не "россыпью" т.е. каждую картинку и звук отдельным файлом. Все ресурсы легче собрать в одну флэшку и подгружать её в движок. Но как тогда получить доступ к графике? Например у меня есть класс Препятствие у которого есть свойство MovieClip (либо Bitmap) и он очень хочет туда заполучить изображение из подгружаемой библиотеки. Как организовать swf с ресурсами чтобы их можно было как-то вменяемо вытащить уже в основной флэшке? Вменяемо это значит как-то вот так: где Picture предположим Sprite; вопрос скорее общий чем частный и понятно, что реализовать-то можно. Много как. Вопрос - как оптимальнее, структурированнее и удобнее. Фух. Если есть какие мысли или советы буду благодарен за помощь.
__________________
coming soon... |
|
|||||
|
[+1 25.07.08]
|
есть у элементов, в библиотеке расположенных, такое свойство Linkage, в котором можно прописать имя класса. вот так и организуются ресурсы во флешке. потом загружаешь флешку и обращаешься к ресурсу по созданному тобой имени.
|
|
|||||
|
Спасибо за совет, только КАК?
![]() Создал флэшку 1.swf. У символа в библиотеке в свойстве Linkage прописано имя класса MyBox. Далее пишу основную флэшку package {
import flash.events.*;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.DisplayObject;
public class main extends MovieClip{
var myloader:Loader = new Loader();
function main() {
myloader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplite);
myloader.load(new URLRequest("1.swf"));
}
function onLoadComplite(evt:Event)
{
var G:DisplayObject = myl.content;
//И вот как теперь?
//Очевидно, что любые вызовы формата
var R:MovieClip = new G.MyBox();
//или
addChild(G.MyBox);
//закончатся неудачей, потому что про свойство MyBox никому, кроме меня не известно :))))
}
}
}
__________________
coming soon... |
|
|||||
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
import flash.media.*;
dynamic public class Receiver_doc extends Sprite{;
public var loader:Loader;
public var req:URLRequest;
var Gerl_class:Class;
var Dog_class:Class;
var gerl_mc:MovieClip;
var dog_mc:MovieClip;
var i:int;
public function Receiver_doc() {
loader = new Loader();
//addChild(loader);
req = new URLRequest("House_mc.swf");
loader.load(req);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
}
public function onLoadProgress(param1:ProgressEvent):void {
txt.text = "PROGRESS " + int(100 * (param1.bytesLoaded / param1.bytesTotal)) + "%";
}
public function onLoadComplete(param1:Event):void {
removeChild(txt);
Gerl_class = loader.contentLoaderInfo.applicationDomain.getDefinition("MyBox") as Class;
gerl_mc = new Gerl_class();
addChild(gerl_mc);
gerl_mc.x = -250;
gerl_mc.y=-50;
gerl_mc = new Gerl_class();
addChild(gerl_mc);
gerl_mc.x = 100;
gerl_mc.y=-50;
}
}
}
|
|
|||||
|
Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
|
Alex Lexcuk, не именуют так переменные - Gerl_class.
|
|
|||||
|
Спасибо.
Это действительно работает. Только вот получается такая картина. У меня изометрия. Главный герой - 8 изображений поворота. Враги. 10 видов у каждого такая же петрушка - 80 изображений. текстуры: пол 13 видов. стены - 19 видов. прочие объекты - 12 объектов. в итоге имеем 132 уникальных изображений. Как это получается в коде? (левое опускаю) var MegaLoader:Loader
function give_me_please_a_piece_of_happiness(Name_of_Movie_Clip:String, TargetMovieClip:MovieClip):void{
var TempClass:Class;
TempClass = MegaLoader.contentLoaderInfo.applicationDomain.getDefinition(Name_of_Movie_Clip) as Class;
TargetMovieClip = new TempClass ();
}
//в основном коде
var MyHero:MovieClip;
give_me_please_a_piece_of_happiness("SmileFaceOfHero", MyHero);
__________________
coming soon... Последний раз редактировалось AlexStukoff; 23.10.2008 в 13:30. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Да и в словарик лучше иногда заглядывать
![]() |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,058
|
param1:Event - ну неужели так сложно прочитать один раз конвенцию...
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Скорее это вообще результат декомпиляции.
|
|
|||||
|
Конвенция это как я понимаю соглашение о том, как и что называть? правила формирования имен переменных, классов, функций и прочее?
Если не секрет, то где можно почитать?
__________________
coming soon... |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:31. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|