Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   class Images вопрос (http://www.flasher.ru/forum/showthread.php?t=145513)

DanQuimby 11.10.2010 00:52

class Images вопрос
 
У меня есть 30 обьектов , и вот у меня появилась мысль сделать
1 обьект и просто в конструкторе передавать его ID
сделал я MovieClip и сделал бланков 30 шт.

Код AS3:

package 
{
        import flash.display.MovieClip;
        public class CObject extends MovieClip
        {
                var        m_Type:uint;
                ////////////////////////////////////////
                public function CObject(Type:uint)
                {
                        m_Type = Type;
                        gotoAndStop(currentFrame  + Type);
                }
                function        renew()
                {
                }
        }
}

все в общем не плохо, но выводит он несколько тормознуто
есть еще какой нить способ такого характера.
был бы рад услышать критику с моим способом.

samana 11.10.2010 21:42

Скорее всего тормознуто из за другого кода в вашем документе, который мы не увидели, потому что в приведенном коде тормозить нечему.

DanQuimby 12.10.2010 10:26

ну там все тривиально , делаю массив задаю рандомные координаты
и через
Код AS3:

        addEventListener(Event.ENTER_FRAME,m_renew);

делаю изменение координат на 8

3p.station 12.10.2010 11:24

Цитата:

ниче не понимаю
У меня есть 30 обьектов , и вот у меня появилась мысль сделать
1 обьект и просто в конструкторе передавать его ID
сделал я MovieClip и сделал бланков 30 шт.

- это о чем вообще? что вы хотите сделать ? какой объект сделать ? каких бланков?

DanQuimby 12.10.2010 11:36

смотри, пока я только знаю один способ сделать спрайт
это сделать класс унаследоваться от мови клип
и сделать в библиотеке мувик и сликовать его с классом
то есть что бы сделать 30 обьектов мне нужно сделать 30 классов !!!!
а это много .. даже очень.
как можно избежать этой абракатабры.

3p.station 12.10.2010 12:05

Код AS3:

как можно избежать этой абракатабры.

разберитесь с понятием класс и экземпляр класса, без этого никак :)

и снова я не опнимаю задачу вашу, вы хотите сделать 30 экземпляров с залинкованного класса из библиотеки ? одного и тогоже ? Зачем?

DanQuimby 12.10.2010 12:10

хорошо давайте пофантазируем.
У вас есть 50 карт игральных
у вас есть сцена, как по вашему правильно вывести
2 и 35 карту.
Я хотел сделать 50 экземпляров класса Images Спрайт который
он визиализирует зависит от ID который я передаю в конструкторе

ps я просто не давно начал разбираться с ас3 , специфики я не знаю как лучше .

GBee 12.10.2010 12:16

Цитата:

и снова я не опнимаю задачу вашу, вы хотите сделать 30 экземпляров с залинкованного класса из библиотеки ? одного и тогоже ? Зачем?
Видимо все картинки лежат в одном мувике на разных кадрах. И создавая новый мувик, автор показывает нужный кадр. В принципе неплохая идея.

3p.station 12.10.2010 12:18

Цитата:

У вас есть 50 карт игральных
где есть? отдельно картинками на диске или в библиотеке или вы их загрузили лоадером и они в массиве?
Цитата:

Я хотел сделать 50 экземпляров класса Images Спрайт который
он визиализирует зависит от ID который я передаю в конструкторе
наверно еще я не проснулся но не могу понять о чем речь

DanQuimby 12.10.2010 12:20

Цитата:

Сообщение от 3p.station (Сообщение 942250)
Код AS3:

У вас есть 50 карт игральных

где есть? отдельно картинками на диске или в библиотеке или вы их загрузили лоадером и они в массиве?

а этом большая разница ?
они в библиотеке.то есть они уже известны и я их просто засовываю в библиотеку.

3p.station 12.10.2010 12:21

ага! тоесть у вас в библе 50 объектов и каждый вы линкуете ?

DanQuimby 12.10.2010 12:29

какой есть еще способ ? обьединить image и их показывать.
хотелось бы узнать.

ps да так и есть.

3p.station 12.10.2010 12:40

GBee посоветовал отлично

создайте в библе один мувик, а в нем в каждом кадре - ваше изображение
и показывайте тот кадр который нужно

или пройдитесь по всем кадрам и передайте каждый кадр в массив , а потом берите из массива картинки

DanQuimby 12.10.2010 12:43

Цитата:

Сообщение от 3p.station (Сообщение 942257)
GBee посоветовал отлично

создайте в библе один мувик, а в нем в каждом кадре - ваше изображение
и показывайте тот кадр который нужно

или пройдитесь по всем кадрам и передайте каждый кадр в массив , а потом берите из массива картинки

я как раз так и делаю , то есть беру мувик , и в каждый кадр
закидываю по карте, ну видно больше нет способов :)
значит мона на этом закончить :) насчет массива .. не не хотца.
Я думаю сделать класс Resource и он будет отдавать мне экземпляр мувика
найденный по id...

ps пойду делать :)

Добавлено через 5 минут
Цитата:

www.flashstudio.com.ua
какие тюльпанчики :) ...

Котяра 12.10.2010 13:26

Цитата:

Сообщение от DanQuimby (Сообщение 942258)
какие тюльпанчики :) ...

А я всю жизнь был уверен, что это нарциссы..
спёрты с монстров - сразу видно.

3p.station 12.10.2010 13:35

яй - нарциссики да - а в начале мой любимый Херб ((( :
а кто такие монстры ? это артбитс

DanQuimby 12.10.2010 13:36

могу сказать однозначно это цветы ))

alatar 12.10.2010 14:13

Если речь именно о картах, то классов будет не 52. Делаете 13-ть клипов (карты от 2 до 9, валет, дама, король, туз и джокер), в каждом клипе по 4 кадра, на каждую масть. Таким образом, при создании колоды вы получите 52 клипа с 4-мя кадрами, вместо 52-х с 52-мя кадрами, что гораздо благотворнее скажется на потреблении памяти.

Добавлено через 1 минуту
Опишите конкретно задачу, чего вы пытаетесь добиться, вместо абстрактного "у меня есть 30 картинок".

GBee 12.10.2010 15:04

Я ничего не советовал, я думал, что автор так делает :о)))

3p.station 12.10.2010 15:16

Цитата:

Сообщение от GBee (Сообщение 942298)
Я ничего не советовал, я думал, что автор так делает :о)))

извините :rolleyes:

DanQuimby 12.10.2010 15:33

Цитата:

Сообщение от alatar (Сообщение 942281)
Если речь именно о картах, то классов будет не 52. Делаете 13-ть клипов (карты от 2 до 9, валет, дама, король, туз и джокер), в каждом клипе по 4 кадра, на каждую масть. Таким образом, при создании колоды вы получите 52 клипа с 4-мя кадрами, вместо 52-х с 52-мя кадрами, что гораздо благотворнее скажется на потреблении памяти.

Добавлено через 1 минуту
Опишите конкретно задачу, чего вы пытаетесь добиться, вместо абстрактного "у меня есть 30 картинок".

я так и хотел сделать , их разделить на колоды. Просто написал количество с "потолка"
в общем можно все закрывать, все что я хотел по данной теме я узнал.
Спасибо всем.

Котяра 12.10.2010 17:10

у меня 52 разных залинкованных класса.
при создании колоды 52 битмапа (или спрайта - если карты в векторе)
есть класс декоратор Card в котором:
Код AS3:

...
var classRef:Class = getDefinitionByName(CARD_ASSET_SUBNAME +this.id)
var cardShape:Bitmap /*или Sprite*/ = new classRef()

что-то типа того.

DanQuimby 12.10.2010 18:15

Цитата:

у меня 52 разных залинкованных класса.
страшно подумать что за солянка из 52х классов.Нее чур меня .
Так точно не буду делать, хоть убейте.И руки выдерну у кого
увижу, что бы они не мешались.

у меня получилось.
Код AS3:

var  card:CardObject = new CardObject(m_CardName);

просто в CardObject есть подмножество images, я просто передвигаю мувик
на позицию выбранной карты.
Единственное для меня запарно было "набить" мувик картами )) и др image

3p.station 12.10.2010 18:28

разница в том, что у Котяры памяти будет жраца в 52 раза меньше на эти карты ( :

Котяра 12.10.2010 19:22

Почему солянка? лежат себе 52 битмапы в каком нить отдельном swf или swc и никого не трогают. можно на лету меню дизайн карт и рубашек. Кроме этого я еще и кэширую битмапдаты. Т.е. для двух девяток червей использую одну и ту-же битмапдату, ну и рубашки соответственно.
У меня и по 1000 классов было (библиотека ресурсов) с именами вроде Tile_Grow_001

arkadattx 12.10.2010 19:29

Цитата:

У меня и по 1000 классов было (библиотека ресурсов) с именами вроде Tile_Grow_001
Просто интересно стало чем они отличались. Сорри за офтоп.

alatar 12.10.2010 19:31

Содержимым.

Котяра 12.10.2010 19:38

ручками ничего линковать не надо:
http://www.flasher.ru/forum/blog.php?b=112
а в cs5 можно групповые действия вроде делать (может и в cs4 - не знаю не работал в нём почти никогда)

arkadattx 12.10.2010 19:40

Котяра, спасибо за ссылку.
Потому и спросил, что с трудом верилось что все ручками...

DanQuimby 12.10.2010 20:19

Цитата:

Сообщение от Котяра (Сообщение 942370)
Почему солянка? лежат себе 52 битмапы в каком нить отдельном swf или swc и никого не трогают. можно на лету меню дизайн карт и рубашек. Кроме этого я еще и кэширую битмапдаты. Т.е. для двух девяток червей использую одну и ту-же битмапдату, ну и рубашки соответственно.
У меня и по 1000 классов было (библиотека ресурсов) с именами вроде Tile_Grow_001

возможно какой нить твой тест проектик увидеть ? ради развития

Котяра 12.10.2010 21:10

Цитата:

Сообщение от DanQuimby (Сообщение 942384)
возможно какой нить твой тест проектик увидеть ? ради развития

http://va-bank.com/
http://fortuna.ru
http://globalgameservice.com/
ну и ещё куча..
или ты имеешь в виду исходники? исходники не дам)


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

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