Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   не могу запустить скрипт кнопки! (http://www.flasher.ru/forum/showthread.php?t=131547)

Alex Lexcuk 25.10.2009 11:16

Цитата:

Сообщение от Wolsh (Сообщение 860533)
Алекс, Вы не проводите различий между "правильно, в соответствии с международными конвенциями, удобочитаемо и расширяемо" и "работает, и хрен бы с ним" ? Работает-то в обоих случаях. Речь о том, как стóит делать, а как - нет.

Какая конвенция???:wacko:
Правильно весь дизайн запаковать в swc, и закодить во Flex-e все это дело.
А так и че потом писать в коде, типа
Код AS3:

//эти объектынаходятся на сцене
public var btn:SimpleButton;
public var mc:MovieClip;
 
//на мувике mc вставлена кнопка btnPlay
public var btnPlay:SimpleButton;
//кнопка goto2FrameBtn находится во втором кадре таймлайна
public var goto2FrameBtn :SimpleButton;
//конец нарисованным объектам

Бред какой-то, и печать все это, нафик оно надо
и если не снимать галочку, которая стоит по умолчанию (соответствии с международными конвенциями)
Код AS3:

/*эти объекты нарисованы на сцене ручками
public var btn:SimpleButton;
public var mc:MovieClip;
конец нарисованным объектам*/


etc 25.10.2009 12:04

Alex Lexcuk, когда вы начнете писать в нормальном AS3-редакторе, вы поймете, зачем нужно снимать эту галочку. А пока этого в течение ближайших трех лет не произойдет.

wvxvw 25.10.2009 12:42

Alex Lexcuk
Ну, смотрите, мотивы разработчиков Флеша вообще добавить такую возможность вполне понятны:
Флеш, как программа используется в подавляющем большинстве случаев людьми далекими от програмирования. Для них создавать AS файлы для каждого символа в библиотеке было бы очень неудобно. Но это не значит, что именно такой подход правильный для человека, который уже все равно создает эти самые AS файлы. Во Флеше есть еще очень много таких же автоматизаций рассчитаных на не-программистов: MovieClip сделан динамическим классом (хотя это абсолютно лишнее в плане функционала), у него есть "лишний" метод addFrameScript по той же самой причине и т.п.
Каким бы международным и общепризнаным не был бы источник, всегда последнее слово остается за здравым смыслом :) А здравый смысл говорит о том, что если мы хотим, чтобы свойства класса находились редактором кода, нам их нужно объявить.

Alex Lexcuk 25.10.2009 13:01

Цитата:

Сообщение от etc (Сообщение 860548)
Alex Lexcuk, когда вы начнете писать в нормальном AS3-редакторе, вы поймете, зачем нужно снимать эту галочку. А пока этого в течение ближайших трех лет не произойдет.

Если нарисовать все и вложенные кнопки и мувики и дать им instance name, присвоить классы главным объектам (а можно и весь таймлайн сделать как отдельный мувик и дать ему класс), экспортировать все в swc, то потом, Flash Develop (а это редактор) будет высвечивать как всплывающую подсказку, все инстансы вложенных мувиков и кнопок.


Отсюда вывод: ставим все флеш девелоп (весит 4 Метра) и не страдаем фигней.

etc 25.10.2009 13:06

Alex Lexcuk, речь не идёт об автоматической генерации классов. Вы опять нихрена не поняли. Жаль.

wvxvw 25.10.2009 15:18

Цитата:

Сообщение от Alex Lexcuk (Сообщение 860566)
Если нарисовать все и вложенные кнопки и мувики и дать им instance name, присвоить классы главным объектам (а можно и весь таймлайн сделать как отдельный мувик и дать ему класс), экспортировать все в swc, то потом, Flash Develop (а это редактор) будет высвечивать как всплывающую подсказку, все инстансы вложенных мувиков и кнопок.


Отсюда вывод: ставим все флеш девелоп (весит 4 Метра) и не страдаем фигней.

Речь идет не о том, как в дальнейшем использовать, а как использовать изначально ;)
Т.е. если вам нужно добавить какую-то логику в класс прилинкованый к символу из библиотеки, а не просто скомпилировать библиотечный символ с вложеными другими символами.
Наверняка вы захотите описать эту логику с удобством, а возможно, захотите потом использовать этот же класс-файл еще раз где-нибудь. В таком случае полагаться на автоматическое объявление переменных вредно, т.как этих символов в другом случае может просто не оказаться.

Xero201 25.10.2009 20:56

Цитата:

Сообщение от wvxvw (Сообщение 860592)
..если вам нужно добавить какую-то логику в класс прилинкованый к символу из библиотеки

Ага), пока не узнал о фишке "Automatically declare stage instances", делал вообще вот так:
Код:

//object1 - это то-то1
//object2 - это то-то2
//...

Т.к. "это" все же лучше, чем вообще никакой инфы. Теперь наконец-таки перевел эти рукописи в нормальный вид :)

amigomos 27.10.2009 21:00

Почему то все раво ошибка выскакивает :-(
галочку убрал в "Automatically declare stage instances"
код:
Код AS3:

package 
{
    import flash.events.MouseEvent;
    import flash.display.DisplayObject;
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
 
    public class Proba extends MovieClip
    {
        public var knopkr:SimpleButton;
        public var knop:SimpleButton;
    public function Proba():void
                          {
                        knop.addEventListener(MouseEvent.CLICK, btnClickHandler);
                        knopkr.addEventListener(MouseEvent.CLICK, btnClickHandler);
                }
                public function btnClickHandler(evt:MouseEvent):void
                {
                        trace("нажал кнопку");
 
                }
      }
}

ошибку пишет: TypeError: Error #1009: Cannot access a property or method of a null object reference. at Proba()
чего то такой премитивный пример а все никак не получаеться его сделать ((

Felicast 27.10.2009 21:22

вы инстанс нейм прописали для ваших knop и knopkr?

amigomos 27.10.2009 21:35

конечно в свойствах каждой кнопки прописал их названия


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

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