Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.06.2009, 15:56
Yimo вне форума Посмотреть профиль Отправить личное сообщение для Yimo Найти все сообщения от Yimo
  № 1  
Ответить с цитированием
Yimo

Регистрация: Jun 2009
Сообщений: 2
По умолчанию Как связать нарисованный во флэше объект с кодом?

Начал изучать AS3 сразу, без знания 1 и 2. Потею над одной проблемой. В поиске был, либо непонятно, либо не работает. Вобщем объясните человеческим языком, как уже нарисованный объект во флэше (у меня кнопка) связать с кодом, чтобы обращаться к нему, по пунктам.
Я пытался связать объект с переменной, но возникали проблемы с путём, соответственно null.
И достаточно ли просто нарисовать кнопку, чтобы к ней обращаться, т.е. нужно ли использовать linkage и прочее?

Добавлено через 36 минут
Так вроде немного разобрался с помощью документации MerlinTwi...

Цитата:
Появилась возможность реагировать на даблклик. Для теста попробуем создать кнопку, исчезающую по двойному клику. Создаем новую флешку (Ctrl-N), рисуем кнопку, превращаем ее в MovieClip (выделить, кликнуть правой кнопкой мыши «Convert to symbol»), в Linkage созданного мувика указываем название класса main.myButton
Создаем файл myButton.as в папке main с таким текстом
package main {
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;

public class myButton extends MovieClip {
public function myButton() {
doubleClickEnabled=true;
addEventListener(MouseEvent.DOUBLE_CLICK, onDblClick);
}
private function onDblClick(evt:MouseEvent):void {
trace("onDblClick");
visible=false;
}
}
}
... и небольшой статейки на английском сайте...

Цитата:
Assigning a Single Class to Multiple Library Symbols
So, in AS2 I used to use one single class with multiple different library items (for example, if you were creating an asteroid field and you had multiple asteroid symbols in your library, but wanted them all to behave the same using one single class). In AS3 if you try this, you get an error: "Please enter a unique class name that is not associated with other library symbols".

I finally came across a forum that had a simple elegant answer. In the Library/Linkage you simply put the name of your class into the Base Class field instead of the Class field.

So I tried that, and I still got an error and after tinkering a bit, I realized that something also needed to be in the Class field for everything to work. If you leave the Class filed blank, you will get the same error quoted above. To fix this, just type anything into the field. When you click OK to leave the Linkage dialog, flash will warn you that the gobbldygook you typed into the Class field doesnt exist as a class - but just ignore it.

You should now be able to have multiple different symbols using the same class. Just do the above for each item in the library.
...в которой говорится о том, что при вписывании в поле Linkage\Class класса объекта появляется ошибка "Please enter a unique class name that is not associated with other library symbols". Вместо этого класс объекта нужно вписать в поле Base Class, а в поле Class любой бессвязный набор букв, и проигнорировать последущее предупреждение.

Вроде все работает, но все это мне кажется как-то слишком мудрёно, кроме того возникает вопрос:

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

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

Цитата:
public function myButton() {
doubleClickEnabled=true;
путь_к_объекту_1.addEventListener(MouseEvent.DOUBLE_CLICK, onDblClick_1);
путь_к_объекту_2.addEventListener(MouseEvent.DOUBLE_CLICK, onDblClick_2);
}


Последний раз редактировалось Yimo; 16.06.2009 в 16:34.
Старый 16.06.2009, 16:33
Venya2007 вне форума Посмотреть профиль Отправить личное сообщение для Venya2007 Найти все сообщения от Venya2007
  № 2  
Ответить с цитированием
Venya2007
[+4 16.07.08]

Регистрация: Jul 2008
Адрес: Gamburg
Сообщений: 108
в либе на символе нажимаете правой клавише->linkage. ставим флажок Export for ActionScrip, в поле Сlass вводим название своего класа, а далее создаем екземпляры своего класса

Старый 16.06.2009, 16:37
kkin вне форума Посмотреть профиль Отправить личное сообщение для kkin Найти все сообщения от kkin
  № 3  
Ответить с цитированием
kkin
 
Аватар для kkin

Регистрация: Dec 2008
Адрес: Лапландия
Сообщений: 67
Не знаю на сколько понял ваш вопрос но можно сделать так.
Рисуете кнопку потом выделяете эту кнопку затем выбираете жмете ctrl+f3 потом в окшке в поле instance name задаете имя этой кнопки для обращения к ней.
далее пишите следующий код
Код AS3:
btn_start.addEventListener(MouseEvent.CLICK, StartMuvik);
StartMuvik название функции которая будет выполнятся после нажатия кнопки далее пишем функцию обработки
Код AS3:
function StartMuvik(event:MouseEvent):void{
trace ("Hello vasya");
}

Старый 16.06.2009, 16:44
Yimo вне форума Посмотреть профиль Отправить личное сообщение для Yimo Найти все сообщения от Yimo
  № 4  
Ответить с цитированием
Yimo

Регистрация: Jun 2009
Сообщений: 2
kkin, большое спасибо, как раз это мне и нужно было. Я не знал об Instance Name. И нигде об этом не нашел. Все оказалось намного проще, я слишком глубоко копнул.


Последний раз редактировалось Yimo; 16.06.2009 в 20:01.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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