ما معنى القيم غير العددية في تعريف حافة XFL؟
سؤال
XFL هو ملف Adobe Flash (CS5) الجديد غير المضغوط (CS5) ، وهو يتكون من تعريفات XML ، ومعظمها واضح ولكن للأسف ، فإن المهم أمر غريب.
بالنظر إلى مختلف المصادر الحالية ، أستطيع أن أرى تعريفات حافة الشكل مثل:
<Edge strokeStyle="1" edges="!0 0S4|180 0"/>
<Edge strokeStyle="1" edges="!2720 2720S6|0 2720!0 2720|0 0!0 0/2720 2720"/>
<Edge fillStyle1="1" edges="!3532 1539.5S2[#BD9.4D #577.3C 2952.5 1756.5!2952.5 1756.5[#AF6.DA #4C6.1D 3584 1119!3584 1119|3532 1539.5"/>
إجراء بعض الاختبارات التي يمكنني قولها ، ذلك:
! == move to position
| == draw line from the position to the new position
/ == probably same like |
[ == draw curve
( == probably same like [
ولكن ماذا يعني القيم مثل 4 س أو #BD9.4D؟ لم يثبت ذلك بعد أن تخمن ، أن # يمكن أن تكون القيم مشفرة بطريقة أو بأخرى أعدادًا صغيرة جدًا. ليس لدي أدنى فكرة عما يمكن أن يكون 4 س.
المحلول
!(x,y)
الانتقال إلى
/(x,y)+
lineto
|(x,y)+
lineto
[(x1 y1 ex ey)+
Curveto (التربيعي)
](x1 y1 ex ey)+
Curveto (التربيعي)
((pBCPx pBCPy)? ; x1 y1 x2 y2 ex ey (({Q,q,P,p})? x y)+
Curveto (بداية مكعبة)
)(nBCPx nBCPy)? ;
Curveto (نهاية مكعبة)
Sn
الاختيار (n = bitmask ، 1: fillStyle0 ، 2: FillStyle1 ، 4: stroke)
#aaaaaa.bb
هو رقم ثابت موقّع 32 بت
نصائح أخرى
HM ... كنت مخطئا في التخمين إلى # القيم!
لقد قمت بإلغاء تجميع الشكل المنتجة ويمكنني القول ، على سبيل المثال القيمة #BD9.4D يجب أن يكون ترميزًا سداسيًا سخيفًا للعدد 3033.77. أود أن أعرف ، لماذا يستخدم Adobe شيئًا من هذا القبيل في الكود الذي يجب أن يكون قابلاً للقراءة البشرية؟
تحرير: ما سبق خطأ ، والنتيجة الصحيحة لـ #BD9.4D هي 3033.30078125
>> (to integer! #{000BD94D}) / 256
== 3033.30078125
لاحظ أيضًا أن الأرقام مثل #19F.2 هي #{00019F20}
حسب 4 س نوع القيم ، يمكن أن تكون مجرد معلومات إضافية لمحرر فلاش لأنه عندما أقوم بإزالتها يدويًا ، يمكنني تحميل المصدر والشكل نفسه.