Форум 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=149345)

Universe 24.01.2011 13:04

Цитата:

for( i = 0, a = 16; i < 9; i ++, a *= i ) {}
Интересная запись! Единственное что - можно её как то совместить с Strict Mode?

Psycho Tiger 24.01.2011 13:41

А что у Вас не получается?

Universe 24.01.2011 14:12

ну во первых говорит что переменные undefined (т.к. нет var), если писать var - вылазят другие ошибки и не работает даже без strictMode

Wolsh 24.01.2011 14:21

Код AS3:

for (var i:uint = 0, a:uint = 16; i < 9; i ++, a *= i ) 
{
        trace(i, a);
}

Код:

0 16
1 16
2 32
3 96
4 384
5 1920
6 11520
7 80640
8 645120


FlashCoder 24.01.2011 14:45

А как дублировать в Action Script 3 созданные мувиклипы с помощью Sprite?
Чтобы по сто раз одно и тоже не писать, т.к. есть эелементы похожые.


______________________________
Web-программирование

Universe 24.01.2011 14:48

а...понятно, а я просто писал var и для i и для a :) Спасибо!)
P.S. вопрос про спрайты как то не сюда.

FlashCoder 24.01.2011 15:00

Universe, вообще-то это моя тема и обсуждалась тут графика


______________________________
Web-программирование

bav 24.01.2011 15:32

Цитата:

А как дублировать в Action Script 3 созданные мувиклипы с помощью Sprite?
У класса Sprite нет метода дублирующего экземпляры класса MovieClip.
Цитата:

Чтобы по сто раз одно и тоже не писать, т.к. есть эелементы похожые.
Или описывайте элементы в отдельных классах, и далее создавайте их экземпляры, или создавайте методы, которые будут рисовать и возвращать необходимые вам элементы.

P.S. «похожые» – в каком классе проходят это правило?

FlashCoder 24.01.2011 20:49

Вот, например

Код AS1/AS2:

var backColor:uint = 0x000000;
var foreColor:uint = 0xFFFFFF;
 
var btn_play:Sprite = new Sprite();
btn_play.graphics.beginFill(backColor);
btn_play.graphics.drawRoundRect(0, 0, 35, 35, 8);
btn_play.buttonMode = true;
addChild(btn_play);
 
var bg_panel:Sprite = new Sprite();
bg_panel.graphics.beginFill(backColor);
bg_panel.graphics.drawRoundRect(0, 0, 400, 25, 8);
addChild(bg_panel);
bg_panel.x =40, bg_panel.y = 10;
 
 
var icon1:Shape = new Shape();
with (icon1.graphics)
{
        beginFill(foreColor), moveTo(0, 1);
        lineTo(00, 19)curveTo(0.5, 21, 3, 20);
        lineTo(18, 12), curveTo(20, 10, 18, 8);
        lineTo(03, 00), curveTo(0.5, -1, 0, 1);
}
btn_play.addChild(icon1);
icon1.x = 8, icon1.y = 7;
 
var btn_pause:Sprite = new Sprite();
btn_pause.graphics.beginFill(backColor);
btn_pause.graphics.drawRoundRect(0, 0, 35, 35, 8);
btn_pause.buttonMode = true;
addChild(btn_pause);
 
var icon2:Shape = new Shape();
icon2.graphics.beginFill(foreColor);
icon2.graphics.drawRoundRect(0, 0, 4, 20, 3);
btn_pause.addChild(icon2);
icon2.x = 11, icon2.y = 7;
 
var icon3:Shape = new Shape();
icon3.graphics.beginFill(foreColor);
icon3.graphics.drawRoundRect(0, 0, 4, 20, 3);
btn_pause.addChild(icon3);
icon3.x = 19, icon3.y = 7;

5 строчек для рисования фона для кнопки play и pause полностью одинаковые.
Неудобно будет потом код менять. Думаю, как-то класс написать для интерфейса. Но классы как создавать в Flash я еще не знаю. Как посоветуете красиво оформлять код такой?


______________________________
Web-программирование

Wolsh 24.01.2011 21:04

Цитата:

Но классы как создавать в Flash я еще не знаю.
Вот лучше с этого и начните, не засоряйте сознание кодом в кадрах. AS3 пишется в классах и отлично управляется концепциями ООП.
Естественно, все GUI-элементы должны быть отдельными классами - Button, ButtonIcon, SeekBar, VolumeBar.
Читайте Мука. Лучше пусть теория идет впереди. Не учите себя делать неправильно.


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

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