![]() |
создание кнопок с картинками, запись звуков
Здравствуйте.
Прошу особо не ругать и сразу не пинать. Вот хочу сделать следующее: чтобы был у меня swf-файл, а в нем две кнопки с картинками в них (или правильно говорить - на них?), при нажатии по первой кнопке нужно проигрывать звук (который тоже содержится в этом же swf-файле), а по нажатии на вторую - проигывание останавливалось бы. Но я совершенно нулевой во флеше. По идее, нужно бы сделать следующее: 1. Создать клип. 2. Создать две кнопки. 3. Загрузить в них картинки (если это возможно - или это как-то по-другому делается). 4. Предварительно (как-то, не знаю как) конвертировать wav (или mp3 ) - файл во что-то, что в виде ресурса подшить к будущему swf-файлу. 5. Навесить на кнопки события. Начинаю делать - файл Butts.as: class Butts { function Butts() { _root.createEmptyMovieClip("startButton", 0); // все, приехали, я не знаю, как создать кнопки и, тем более, загрузить в них картинки } // точка входа здесь static function main() { var p = new Butts(); } } Я не знаю даже как создать кнопки, связать с ними переменные и загрузить в них картинки. Сказать, что перерыл хелп - не могу, но искал. Я принципа не понял - что к чему. Поэтому прошу ответить, как это сделать. |
вообщем звук помещаешь в библотеку, даёшь ему Linkage допустим "mySound"...
На кнопку PLAY вешаешь: on (release) { mySound = new Sound(); mySound.attachSound("mySound"); mySound.start ("mySound", 999); } На кнопку STOP: on (release) { mySound.stop (); } |
Вложений: 1
Цитата:
а, уже ответили... но, тем не менее лови пример. правда я две кнопки в одну соместил. может понравиться :) |
Очень благодарен за столь быстрые ответы, но очень сильно прошу меня простить, поскольку у меня задача немного другая. Я, прежде всего, не могу открыть файлы *.fla - у меня нет для этого никаких редакторов. Мне нужно, имея только один или несколько исходных текстов, которые понимает компилятор mtasc, создать эти кнопки, загрузить в них рисунки, причем не из внешних каких-то файлов, а из ресурсов самого будущего swf-файла; то же самое и для звуков.
|
так если это нетривиально, то скажите об этом, буду хотя бы знать.
|
Цитата:
Синонимы слова "тривиальный": банальный, затасканный, заурядный, избитый, неоригинальный, пошлый, шаблонный. Я даже не знаю, что и сказать. :cool: А про компилятор mtasc, увы не слышал. :confused: |
анонимщик, да, это нетривиально.
|
ну хорошо.
прошу тогда подсказать, что и где нужно почитать, чтобы я мог видеть пути решения проблемы. |
Цитата:
|
Вам может и легко "аттачить", а я могу сделать только с внешним файлом, а как этот самый внешний файл всунуть в виде ресурса в сам swf, а потом оттуда их загружать?
|
ну просто в мувик грузи сам файл допустим
_root.mc.loadMovie ('my.jpg'); |
Парень, тебе что за кнопки нужны? Есть два пути - если стандартные плей, стоп, вперёд/назад - то можешь поглядеть в коллекции Buttons, расположенной в меню Window/Other panels/Common libraries/Buttons. Естественно, в меню Flash. Погляди в папке Playback.
Если тебе же надо какие-то разэтакие картинки обязательно грузить, это можно сделать так - кинуть в ролик две кнопки, импортировать в библиотеку (или нарисовать) картинки, в свойствах linkage выдать им идентификаторы, скажем, image1 и image2, после чего в брошенных кнопках в инспекторе свойств засадить те же самые строчки - image1 и image2 в свойство icon и повесить на кнопки обработчики, которые тебе дали. В принципе, конечно, можешь сделать присваивание также программно. Ответил я на твой вопрос? |
Цитата:
|
короче в ситуации с внешними файлами ... загрузить в библиотеку и от туды их аттачить неполучится, но ни что нам не мешает создавать мустые мувики и подгружать в них картинки ;)
|
Вы меня простите, но, если не знаете, вообще не отвечайте.
Еще раз говорю. У меня, елки палки, нет ничего, кроме компилятора mtasc, который компилирует флешовые исходники в swf. У меня нет никаких FlashMX, библиотек, каких то Other panels и т.д. Чтобы совсем было понятно, разъясняю. Мне нужно написать программу (например, на с, паскале, бэйсике или т.п., это наважно на чем, хоть на языке bat-файлов), которая бы создавала исходник флеша, скомпилировав который, мы бы получили swf-файл, при запуске которого на просмотр видели бы следующее: есть две кнопки, одна запускает проигрывание некоего звука, вторая его останавливает. swf-файл должен быть самодостаточным, т.е. в нем должны быть и картинки для кнопок, и звуки. bmp-файлы для кнопок задаются из этой самой моей программы, то же самое для звука. Пожалуйста, если будете отвечать, прошу вас, приведите хоть какой-нибудь код. |
Вы бы, батенька, чуть терпимее. Используемый вами компилятор отнюдь не стандартен, чтоб вы знали, так что не удивляйтесь. Это во-первых. Во-вторых, в работе вам нужен класс MovieClip, как минимум, его описание лежит по адресу http://flashcodersny.org/assets/Flash_MX_2004_Classes/, если уж так не хочется ставить Flash.
Интересуйтесь также методами createEmptyMovieClip, loadMovie, attachMovie, Sound. Учтите, что любой метод может быть определён примерно таким способом: obj.draw = function() { this.clear; this.moveTo(0, 10); this.lineTo(10, 10); } картинки можете грузить через obj.loadMovie. Также обратите на onMouseDown, onMouseUp, onKeyPress и так далее. Переопределить можете аналогично. Не теряйте только параметры при описании функции-перехватчика. |
Сорри, не метод, а объект Sound.
|
Спасибо, извините.
Можно узнать, какой компилятор предпочтительнее? А по ссылке уже смотрю. Для меня, при моем "знании" флеша, очень полезно. Еще раз извините, но Вы не могли бы буквально в трех абзацах рассказать принцип работы флеша (как программист программисту), а то я, честно сказать, совсем ничего не понял. Флешовые объекты - это объекты в том же смысле, что и в объектно-ориентированных (или в объектных) языках программирования? Есть ли наследоание, инкапсуляция и т.д.? Я так понял, что MovieClip - какой-то контейнер, что ли, совершенно необходимый для работы? Может их быть несколько? Какая логика работы в этом случае? |
Чаще всего Flash воспринимается не как компилятор, а как средство разработки медиа-контента, который (контент) может содержать, а может и не содержать скрипты. Поэтому вопрос с точки зрения "swf с помощью компилятора" звучит экзотически. Я, например, ещё никогда не использовал сторонних систем :).
Используемый в скриптах ActionScript имеет две версии - первую и вторую. Мой пример использует первую, до икоты близкую к JavaScript и отвечающую тому же стандарту ECMA-262 (кажется). Вторая версия - реализованная скорее ближе к обёртке - более объектно-ориентированна. Все принципы ООП поддерживаются. Различие между версиями достаточно слабое - использовать можно обе, не замечая даже, где граница. Почти все объекты, которые можно использовать, происходят от MovieClip. Это базовый класс. Существуют также стандартные глобальные объекты, нр, _root, _global. От себя добавлю, что я бы рыл в направлении классов кнопки - Button, SimpleButton, у них есть практически всё что надо (текст, картинка, события и всё прочее), единственное, на что навскидку не могу сказать - как вцепить в неё внешнюю картинку. Тут проблема в том, что наиболее общепринятая практика - создание шаблонов, по которым потом можно плодить экземпляры сколь угодно. Так вот, в стандартную кнопку (класс Button) можно легко посадить картинку, вложенную в такой шаблон - кнопка внутри себя сама создаст экземпляр объекта-иконки по шаблону и будет с ним распоряжаться, а картинку в иконку уже можно и перегружать (сам не пробовал, честно скажу, но не вижу, почему бы и нет). А чтобы создать такой шаблон программно, надо использовать, как мне кажется, что-то вроде registerClass. |
Хотя можно попробовать просто вызвать для объекта кнопки тот же attachMovie, перехватить события и реагировать соответственно. Если очень хочется, можно написать производный класс от кнопки.
|
loadMovie. Совсем внимание потерял.
|
>> Почти все объекты, которые можно использовать, происходят от MovieClip. Это базовый класс.
Я очень извиняюсь, а когда упразднили Object? Меня долго не было, может я пропустил самое интересное? |
Хорошо, от Object :) Но для визуальных элементов MovieClip - базовый :) Я, например, не пытался бы что-то визуальное производить от Object.
|
>> различие между версиями достаточно слабое - использовать можно обе, не замечая даже, где граница.
наверное, меня точно давно не было. вы, наверное, батенька оперируете непосредственно байт-кодами, раз вам не видна граница. она там действительно слабо различима, если не сказать больше. |
>> Хорошо, от Object
Ну слава богу, празднуем возвращения джедая, пардон, Object'a. |
да ради бога.
|
>> Но для визуальных элементов MovieClip - базовый
Хотелось бы спросить еще (может, еще чего изменилось, а я не в курсе), Button, TextField - это по Вашему визуальные элементы? |
и какие же они? прошу просвещения :).
|
Берешь компилятор C++ и изобретаешь велосипед (Flash). А потом внедряешь в него mtasc и получаешь swf и все делов то...
З.Ы. ... |
2MaxLife
Ну раз они визуальные, то Вам, наверное, будет полезно узнать, чьими наследниками они являются. ActionScript Language Reference - это источник The Button class inherits from the Object class. The TextField class inherits from the Object class. |
Ну, как вы сами ранее указали, самый первый класс в цепочке, действительно, Object.
Однако, осмелюсь процитировать справку: Button class Inheritance MovieClip > UIObject class > UIComponent class > SimpleButton class > Button ActionScript Class Name mx.controls.Button Но, опять признаю Вашу правоту, в основе всего действительно лежит Object. Предлагаю оставить полемику на эту тему :). (без стремления обидеть) |
ты говоришь о компоненте Button а мы о элементе Button (когда создаешь новый символ Button ,MovieClip , Graph) это совсем разные баттоны, просто название совпадает
|
Согласен, но, когда вы обращаетесь к ним из скрипта, вы всё равно обращаетесь к ним как к экземплярам MovieClip, не так ли?
|
Цитата:
Мы обращаемся к MovieClip, Math, Button, LoadVars , XML и всем остальным как к Object'у |
ну так шум, если я правильно понял, начался именно с того, что лежит в основе визаульных элементов. но нюанс есть, согласен.
|
хорошо, не прав.
|
Хелп ми плз
Я начинающий флешер.
Мне нужна помощь в одном дельце... Как записать звук с микрофона во флеш, а потом его проиграть. Нид хелп |
| Часовой пояс GMT +4, время: 10:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.