Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Статьи (http://www.flasher.ru/forum/forumdisplay.php?f=101)
-   -   ActionScript 3 с нуля (http://www.flasher.ru/forum/showthread.php?t=92301)

milDude 25.11.2007 12:29

так работает:

Код:

package code {
        import flash.display.*;
        import flash.events.*;

        public class Answers extends Sprite{
               
                private var nameplate;
               
                public function Answers(){
                        nameplate = new Nameplate();
                        addChild(nameplate);
                        nameplate.x = 5;
                        addEventListener(Event.ENTER_FRAME, nameplatemoved);
                }
                public function nameplatemoved(e:Event):void{
                        nameplate.y = mouseY;
                }
        }
}
       
import flash.display.*;
import flash.events.*;
import flash.geom.Matrix;

class Nameplate extends Sprite {

        public function Nameplate(){
                        graphics.lineStyle(8,0x777777,1.0,false,"normal",CapsStyle.SQUARE,null,0);
                        graphics.lineTo(0, 40);
        }
       
       
}

так не работает (указатель мыши трясётся и не в тех координатах):

Код:

package code {
        import flash.display.*;
        import flash.events.*;

        public class Answers extends Sprite{
               
                private var nameplate;
               
                public function Answers(){
                        nameplate = new Nameplate();
                        addChild(nameplate);
                        nameplate.x = 5;
                        addEventListener(Event.ENTER_FRAME, nameplate.moved);
                }
               
        }
}
       
import flash.display.*;
import flash.events.*;
import flash.geom.Matrix;

class Nameplate extends Sprite {

        public function Nameplate(){
                        graphics.lineStyle(8,0x777777,1.0,false,"normal",CapsStyle.SQUARE,null,0);
                        graphics.lineTo(0, 40);
        }
       
        public function moved (e:Event):void {
                this.y = mouseY;
        }
}


etc 25.11.2007 12:35

Во втором коде где вы берете mouseY?

Andrianov 09.12.2007 17:54

Передо мной встала такая проблема: сделать так чтобы одно событие вызывалось только в том случае если уже вызвано 2-ое. в AS2 это могло бы выглядеть как-то так:
Код:

bla.onEnterFrame = function():Void {
bla_button.onMouseMove = function():Void {...}
}

Подскажите пожалуйста как сделать нечто подобное средствами AS3 :rolleyes:
З.Ы. проблему уже решил следующим образом:
Код:

bla.addEventListener(Event.ENTER_FRAME, bla_func);
private function bla_func(event:Event):void {
bla1.addEventListener(MouseEvent.MOUSE_MOVE, bla1_func);
}
private function bla1_func(event:Event):void { .. }


3ds 09.12.2007 18:52

Цитата:

Сообщение от DRAGOnoid
Извините если поднял ненужный вопрос - просто хотел бы создать топик в котором можно было бы сконцентрировать вопросы ну уж совсееем для тех кто не в теме.

При необходимости можете удалить тему...

Ну так вот - тема AS3 относительно молодая. Это видно хотя бы потому что документаций и примеров по ней не так и много, можно сказать практически нет.

но а что есть - не совсем понятно что для чего и откуда берётся.

Если позволите я буду задавать совсем глупые вопросы - которые возможно бы пролили свет на то что происходит...

итакс начну.
Поставил 9ю версию флеша, настроил Паблик на AS3 и открываю окно программирования.

первое что хочу сделать - написать 'Приветище мир!'
пишу
Код:

trace ("Приветище мир!");
жму Ctrl+Enter
работает!

натыкаюсь на пример в инете:
Код:

package main {
    import flash.display.Sprite;
 
    public class test1 extends Sprite {
          public function test1() {
                trace("Hello World");
          }
    }
}

пример взят отсюда http://www.timezero.ru/storm/

вот тут меня и понесло задавать вопросы...
например что ещё за package?
для чего нужна строчка ?
import flash.display.Sprite;
и что она означает ?

как разобраться с классами если раньше с ними никогда не работал
public class test1 extends Sprite { }
тем более что слов много и непонятно что для чего
и функция тоже
public function test1() { }
вроде как всё знакомо но непонятно какои образом она вызвалась, или как вызвался класс....
В общем совсем ничего не понятно....

я так же пытался почитать http://livedocs.adobe.com/flex/201/langref/index.html
но там тоже только описание операторов, но простейших примеров как они работают нет. Догадайся мол сам =(

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

Andrianov 09.12.2007 22:26

to 3ds Он вроди уже разобрался ;) У меня возник такой вопрос: звук в AS3 воспроизводится также как и в AS2 .play() а вот на .stop() ругается... и что делать?

DarkLight 09.12.2007 22:29

stop() - это метод SoundChanell-а связаннного с данным объектом Sound-а, у него его и надо вызывать

Andrianov 09.12.2007 22:31

2DarkLight спасибо большое уже сам разобрался :) обидно, что встроенный в ide хелп такой запутанный, часто спрашиваешь то, что есть, а не смог найти :(

Andrianov 09.12.2007 23:37

Возник еще один вопрос, а именно: вот в AS2 было у объекта Sound свойство duration... В AS3 я его не нашел :( Подскажите пожалуйста как его найти.

DarkLight 09.12.2007 23:42

а теперь оно называется length:)

Andrianov 09.12.2007 23:56

Спасибо тебе, добрый человек, помог! :) видел, но почему-то не соотнес, видимо голова уже устала :)


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

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